エクセルで扱える関数は多数ありますが、その中でもif関数をマスターしておくとワークシート上でできることが格段にレベルアップします。
if関数に必要な要素は「論理式」、「論理式の結果が真の場合の値」、「論理式の結果が偽の場合の値」の3つです。
後者2つは分岐先が異なる場合にどちらが表示されるかという対の関係ですね。
本記事では分岐先の値にフォーカスして「エクセルでif関数を扱う場合に重要な分岐先の値の組み方」について解説します。
論理式の作り方については別記事「エクセルでif関数を使う方法!重要な論理式4パターンを解説!」で詳しく解説していますので、そちらもご参照ください。
この記事の内容
1.if関数の構文
こんにちは。エクセルマン・ブリーダーのしもむぎ(@re_znd13)です。
if関数の構文をもう一度おさらいしましょう。
=if(論理式,論理式が真の場合の値,論理式が偽の場合の値)
論理式と2つの値で構成されることがわかりますね。
if関数は与えられた論理式の結果に応じて、2つの状態(値)を示すのです。
次章以降で、この状態(値)の組み方にフォーカスを当てて見ていきます。
2.分岐先の値の組み方
2.1 数値を入れる場合
分岐先に新たな数値を設定する例を見てみましょう。
A列には0~10の数値を入力してあります。
B列はif関数で式を組んでいて、A列の数値が5以上の場合に「5」という数値を表示させる、という内容になっています。
グラフを見てもらえるとわかりやすいかと思いますが、数値に上限を設けた形になります。
このような場合、論理式「A1 >= 5」が真の場合に、固定値の「5」を入力します。
“5”と入力してしまうと、5という「文字列」になることにご注意。
偽の場合にはもともとのセルの値を表示させています。
2.2 文字列を入れる場合
次に、分岐先に文字列を設定する例を見てみましょう。
2.1節での例と同様、A列には0~10の数値を入力してあります。
B列はif関数で式を組んでいて、A列の数値が5以上の場合に”上限値”という文字列を表示させる、という内容になっています。
このような場合には、論理式「A1 >= 5」が真の場合に”上限値”と入力します。
文字列を表示させる場合は「”(ダブルクォーテーション)」で囲うことに注意しましょう。
また下の画像のC列は、もともとのセルの値を文字列を組み合わせて表示させる例です。
C6セル以降で、もともとのセル(ここではA6セル)の値と”(上限値を超えています)”という文字列が表示されていることがわかるでしょうか。
このように表示させるには「A1&”(上限値を超えています)”」というように&でセルの番地と文字列を繋いで設定してあげます。
2.3 空欄を入れる場合
次に分岐先を空欄にする例を見てみましょう。
この例は、文字列を表示させる場合と似ています。
下の画像では、A列に0~10の数値を入力してあります。
B列はif関数で式を組んでいて、A列の数値が5以上の場合に空欄を示し、そうでない場合にもともとのセルの値を表示させる、という内容になっています。
空欄は「””」と設定します。
ここで「” ”」のようにスペースを入れてしまうと、スペースという文字が表示されてしまうのでご注意。
2.4 数式・関数を入れる場合(1)
次に分岐先に新たな数式を表示させる例を見てみましょう。
下の画像の例では、A列に0~10の数値を入力してあります。
B列はif関数で式を組んでいて、A列の値が5以上となった場合にA列の2倍の数値を表示させる、という内容になっています。
C列もif関数で式を組んでいて、A列の値が5以上となった場合にA列を二乗した数値を表示させる、という内容になっています。
いずれの場合でも論理式「A1 >= 5」が真の場合に新たな数式を入れてありますね。
2倍の場合は「A1*2」とします。
「*(アスタリスク)」は掛け算の×を表します。
二乗の場合は「A1^2」とします。
「^(ハット)」は累乗の意味です。
2.5 数式・関数を入れる場合(2)
if関数の分岐先に数式や関数を入れる場合として、知っておきたいのが「if関数の入れ子(ネスト)」です。
別記事「エクセルでif関数を使う方法!重要な論理式4パターンを解説!」の中で、複数条件の論理式について触れていますが、そちらとは少し違った複数条件の作り方として、この「if関数の入れ子(ネスト)」があります。
下の画像の例では、A列に0~20の数値を入れてあります。
B列はif関数で式を組んでいて、A列の数値が3以下の場合に”小”、A列の数値が6以下の場合に”中”、A列の数値が10以下の場合に”大”、それ以外の場合に”極大”と表示させる、という内容になっています。
青吹き出しにあるように、最初の論理式「A1 <= 3」が偽の場合に、新たなif関数を設定していますね。
それに続いて、2番目のif関数の論理式「A1 <= 6」が偽の場合に、3つめのif関数を設定しています。
このようにif関数の分岐先にif関数を新たに設定していくのが、入れ子(ネスト)というテクニックです。
このテクニックで複雑な条件を組むことができますが、少し煩雑な式になってしまいますね。
このような煩雑な式は、他の人とファイルを共有して使用する場合はもちろん、自分だけで使用するファイルの場合にも時間が経つと読み解くのに手間取ってしまうことがあります。
if関数の入れ子(ネスト)に代わるものとしてifs関数というものがあるので、そちらもぜひマスターしておきましょう。
C列は、B列と同様の処理を、ifs関数で記述したものです。
ifs関数の構文は以下です。
=IFS(論理式1,論理式1が真の場合の値,[論理式2,論理式2が真の場合の値],[論理式3,論理式3が真の場合の値],・・・)
論理式と真の場合の値をひとつのセットとして、あとに続けて複数条件を記述できるのです。
ここで注意したいことが2点あります。
まずひとつに、論理式の順序。
今回の例ではランク分けをする数値を3、6、10としていますが、「3以下か」、「6以下か」、「10以下か」と小さい順に判定をさせています。
これを「10以下か」、「6以下か」、「3以下か」と判定させるのでは、結果が変わってしまうので注意が必要です。
もし順序を変えたい場合には「10より大きいか」、「6より大きいか」、「3より大きいか」というように論理式も変える必要があります。
ふたつめに、ifs関数では偽の場合(条件を満たさない場合)の設定がif関数よりも特殊です。
緑吹き出しの記述で説明すると、論理式1~3の条件に当てはまらない場合は、論理式4「A8 > 10」という新たな論理式を用意して、それが真の場合の値”極大”を設定してあげます。
もしくは、論理式4の代わりにTRUEを入れてもよいです。
このようなすべての論理式が偽の場合の処理を怠ると「#N/A」というエラーが出てしまいます。
これは検索値が見つからない場合に表示されるエラーです。
上記の方法で回避しましょう。
3.まとめ
本記事では分岐先の値にフォーカスして「エクセルでif関数を扱う場合に重要な分岐先の値の組み方」について解説しましたが、いかがでしたか?
if関数を使いこなして、ワークシートでできることのレベルアップを目指しましょう。
今回触れなかった論理式の作り方については別記事「エクセルでif関数を使う方法!重要な論理式4パターンを解説!」もぜひご参照ください。