前回の記事『IF関数の使い方と解説 -単一条件の場合 –』では、単一条件でのIF関数の使用法を説明しました。
複数条件でIFを使用したいシーンがあります。
前回記事の未拝読の方向けに、前回記事『IF関数の使い方と解説 -単一条件の場合 –』を再掲している個所があります。
なので、前回記事の拝読者は、適宜読み飛ばしていただければと思います。
IF関数は、Microsoft社が発表している「よく使われている関数トップ 10」
にランクインするほどの大人気の関数です。
関数 | 説明 |
---|---|
IF 関数 | この関数を使うと、条件が true または false の場合に、それぞれ別の値を返すことができます。 IF 関数の使い方についてのビデオはここから確認することができます。 |
IF関数は、論理関数の一種で、Microsoft Excel の最初のバージョンから使用できます。
機能別(大分類) | 機能別(中分類) | 説明 |
---|---|---|
組み込み関数 | 論理関数 | IF関数、AND関数、OR関数などの論理関数を扱うことができる |
類似関数としては、CHOOSE関数、SWITCH関数などがあります。
前回は、IF関数の単一条件の使用法を紹介しました。
今回は、IF関数の複数条件の使用法を説明します。
Contents
問題
「Genre – ゲームのジャンル」が”Sports”であれば”スポーツ”、
「Genre – ゲームのジャンル」が”Puzzle”であれば”パズル”、
「Genre – ゲームのジャンル」が”Simulation”であれば”シミュレーション”、
上記以外であれば「その他」としてください。
という新しい項目を追加してみましょう。
サンプルデータ
今回利用するサンプルデータは、Kaggleで公開されているビデオゲームの売上データ「vgsales.csv」です。
vgsales.csv Video Game Sales
以下、データ項目(変数)です。
- Rank – 全体の売上高ランキング
- Name – ゲームの名前
- Platform – ゲームが発売されたプラットフォーム(例:PC、PS4、など)
- Year – 発売された年
- Genre – ゲームのジャンル
- Publisher – ゲームのパブリッシャー
- NA_Sales – 北米での売上高 (単位: 百万円)
- EU_Sales – 欧州での売上高(単位:百万ドル)
- JP_Sales – 日本での売上(単位:百万ドル)
- Other_Sales – その他の地域での売上高(単位:百万ドル)
解答付きサンプルデータ
解答付きサンプルデータが欲しい方は、下記からダウンロードしてください。
解答
IF関数を使用します。
=IF(E2="Sports","スポーツ",IF(E2="Puzzle","パズル",IF(E2="Simulation","シミュレーション","その他")))
解説
解説を読む前に、下記の前提知識に自信のない方は記事末尾の参考記事をご覧ください。
前提知識
- Excel関数の構文(引数や戻り値など)については、理解していること
- 絶対参照、複合参照、相対参照についても、理解していること
ざっくり解説
関数の構文は以下です。
構文:
IF(論理式, 論理式の結果が真の場合, 論理式の結果が偽の場合)
説明:
- 論理式の結果(真または偽)に応じて、指定された値を返す
引数:
- 論理式(必須)
- 評価する論理式を指定
- この式が真である場合、IF関数はTrue(真)を返し、偽である場合はFalse(偽)を返す
- 論理式と一致した場合
- 論理式が真である場合に返される値を指定。指定しない場合は0を返す
- 論理式の結果が偽の場合
- 論理式が偽である場合に返される値を指定。指定しない場合は0を返す
くわしく解説
記事『Excel関数の検索テクニック』で説明した通り、
Excel標準機能の[関数の挿入]ダイアログ/[関数の引数]ダイアログを大体のことは書かれています。
活用して詳しく解説します。
ダイアログの使い方は、上記記事を参照していただければと思います。
IF関数とは
論理式の結果(真または偽)に応じて、指定された値を返します
[関数の挿入]ダイアログより一部改変
論理式の結果(真または偽)に応じて、指定された値を変更していることが分かります。
そもそも、
IF関数は、IFを訳すと、「もしも」であり、条件を示す関数です。
「もしも、〇〇〇ならば、〇〇。もしも、違うなれば、〇〇」といったように、
条件に応じて処理を変更したい場合に使用されます。
(条件分岐とも言います)
したがって、
条件に応じて、処理を変更したいときにIF関数を使用します。
Excel関数名が分からない場合は日本語訳してみると、Excel関数の機能を推察できるかもしれません。
IF関数の構文
IF(論理式, 値が真の場合, 値が偽の場合)
つまり、下図のようなことです。
論理式が真のときは第2引数、論理式が偽のときは第3引数の処理を実施する、
といったように処理を変えています。
第1引数
論理式 には結果が真または偽になる値、もしくは、数式を指定します
[関数の挿入]ダイアログより、一部改変
論理式 を記述します。
ここでは、「E2=”Sports”」という論理式を記述します。
E2がSportsであれば、True(真)を返します。
そうでなければ、False(偽)を返します。
第2引数
値が真の場合 には論理式の結果が真であった場合に返される値を指定します。
[関数の挿入]ダイアログより
省略された場合、TRUEが返されます。最大7つまでのIF関数をネストすることができます。
論理式の結果が真の場合の処理を記述します。
ここでは、「”スポーツ”」と記述します。
また、第2引数は省略可能で、その場合はTRUEが返されます。
第3引数
値が偽の場合 には論理式の結果が偽であった場合に返される値を指定します。
[関数の挿入]ダイアログより
省略された場合、FALSEが返されます。
条理式の結果が偽の場合の処理を記述します。
本問題では、論理式の結果が偽の場合に、さらに条件が増えるため、第3引数の設定がポイントになります。
(論理式の結果が真の場合に条件が増える場合は、第2引数の設定を工夫します)
具体的には、第2引数と第3引数に「値(”その他”など)」の代わりに、別のIF式を設定されているイメージです。
結果、IF関数の入れ子構造になりました。
巷でよく言う「ネスト」はこのようなプロセスを経た結果、そう呼ばれているだけです。
最後に、)))の終わり括弧が3つ連続で記述されています。
下記のIF式に対応しているだけです。
第2引数と第3引数の追加情報
第2引数と第3引数の追加情報です。
ネストという謎の言葉が登場しました。次回解説します。
- ネストは入れ子という意味で、IF関数を複数記述できる
- 第2引数と第3引数は省略可能
- 第2引数を省略すればTRUE、第3引数を省略可能ずればFALSEが返される
小話
ダブルクォーテーション
文字列は、半角のダブルクォーテーション(“)で囲みます。
なので、
”スポーツ”と”スポーツ以外”となっているわけです。
外観上は数値のケース
SUM関数では、引数に文字列を設定してならないとルールがあります。
ただし、外観上は数値の場合には正常に動作します。
例えば、以下の2つのケースではどちらも「999」という値が数値に見えます。
しかし、2行目の「999」は書式が文字列です。
本来ならばルール違反であり、SUM関数はエラーを返すべきですが、
実際には正常に動作します。
おそらく、裏で数値変換が行われているものと考えられます。
そのため、書式が文字列でも外観上数値であれば、SUM関数は正常に動作するようです。
最後に
前回はIF関数の単一条件でしたが、
今回はIF関数で複数条件を指定する方法を紹介しました。
いかがでしたでしょうか。
入れ子構造、ネストといった言葉を聞いた経験はあったかもしれません。
第2引数の論理式が真のとき、
第3引数の論理式が偽のときの特性を上手に利用しただけに過ぎないことが
分かって頂けたら嬉しいです。
裏を返せば、第2引数と第3引数の起点に、
IF式を要素分解すれば、ネストの解読もそう難しくないことが体感いただけたら幸いです。