今回は、Excel(エクセル)関数の中でもメジャーなIF(イフ)関数を取り上げてみたいと思います。テキストなどでは初級関数のカテゴリに入れられる事が多いですが、Excelを使った業務やプログラミングの場でも大活躍する汎用性の高い関数です。
※解説画像はMicrosoft365を使用しています
IFはどんな事ができる関数?
「IF」は英語では「もし〇〇だったら」、つまり「その事が起こった場合」を仮定して話を進める時に使う文法でしたよね。
例えばスーパーに買い出しに向かっている最中にこんな事を考えていたとします。
もし肉が特売だったら夕飯は肉にしよう。
特売じゃなかったら魚にしよう。
と、よくある日常の1コマですが、これがIF関数の仕事です。て余計わからんて(笑)
要は、「ある条件を仮定」して、「条件を満たしている」か「満たしていない」かで異なった処理を行ってくれる、という事です。
IFはそれ単体では目的を持っていません。「SUMなら合計」とか「AVERAGEなら平均」とか、最初から何をやるか明確にわかっているタイプの関数と異なり、条件も実行する内容もすべてこちらで決めてやる必要があります。
使い方がよくわからない・・・という方は、おそらくこの「何をやれば良いのだろう?」という点に迷ってしまわれているのかもしれません。そんな時は、まずは王道の「条件を満たした時は特定の値を表示させる」から始めてみましょう。使い込んでいくうちに、きっと色々アイディアも生まれてくるのではと思います。
ではここから関数の構成を見ていきましょう。
IFの引数
こちらがIF関数の引数の構成になります。
=IF(論理式,値が真の場合,値が偽の場合)
論理式
まず論理式の部分ですが、ここには判定を行うための条件を数式で入力します。Excelにはもちろん「特売」といった漠然とした概念はありませんので、具体的に明確な基準を示してやる必要があります。
一例を挙げるとこのような感じです。
条件 | 論理式 |
---|---|
セルB3の値が500だったら | B3=500 |
セルA1の値が80以上だったら | A1>=80 |
セルC2の値がD1よりも大きかったら | C2>D1 |
セルA3とA4の値が異なっていたら | A3<>A4 |
論理式でよく使う「>」や「=」の意味合いがよくわからない・・・という方は、
【Excel】関数や条件付き書式で使える等号・不等号の回を参考にしてください。
また、下記もごくごく一例ですが、他の関数を組み合わせる事でより複雑な条件指定が行えるようになります。特に同じ論理関数の仲間である「AND」と「OR」は、条件式の幅を広げてくれる便利なもので、IFとセットで使われる事も多いです。
条件 | 数式例 |
---|---|
D2の値がD2~D6の平均より下だったら | AVERAGE($D$2:$D$6)>D2 |
A2の値が「東京都」か「神奈川県」だったら | OR(A2=”東京都”,A2=”神奈川県”) |
B3の値が「東京都」「神奈川県」以外だったら | AND(B3<>”東京都”,B3<>”神奈川県”) |
「値が真の場合」と「値が偽の場合」
次に「値が真の場合」と「値が偽の場合」ですが、論理式で設定した条件を満たしている場合(真の場合)と満たしていない場合(偽の場合)でどのような処理を行うかを指定します。
「真」と「偽」という言い方をするのはなぜ?と時々聞かれる事があるのでちょこっと触れておきますと、これは特に深い意味があるわけではなく単にExcel言葉の直訳です。
Excelにセルの値を参照する数式を入れた場合、数式と参照先のセルの値が合っていれば「TRUE(トゥルー)」、違っていれば「FALSE(フォールス)」のどちらかの結果を返すようにできています。
こちらはセルC2に「=B2=100」(セルB2の値が100である)という数式を入れ、B2に実際に値を入力してみたところです。C2の条件と合っている場合は「TRUE」、合っていない場合「FALSE」という値を返しています。
これが元になっているだけの話なので、わかりづらい時は心の中で「合っている」「合っていない」などと読み替えてもいいと思います。
それではここから具体的な使い方の例を見ていきますが、この回ではあくまで「1つの条件」を基準にして処理分岐を行うケースを想定します。その他にもIFを入れ子にして複数条件で分岐を行う方法もありますが、そのやり方は下記の回で解説していますのでご参考にしていただければと思います。
https://www.anadigilife.com/excel-kansuu-if2/
IFの使用例
条件が「真の場合」と「偽の場合」で表示する値を変える
IFと言ったらまずはこれ、と言っていいくらい王道の使い方例です。指定した条件を満たしている時と満たしていない時で表示する値を変更する方法です。
こちらに簡単な表を用意しました。「点数」B3~B6にはすでに数値が入力されています。
右隣りの「判定」C3~C6にIF関数を入れ、B列の値が70以上であれば〇、そうでない場合(69以下)は×と表示するように式を設定します。
では関数を入れていきますが、ここでは[数式]タブ経由で[関数の引数]ダイアログボックスを使用する手順で行います。
IF関数はC3~C6に入れてゆきますが、C4以降は数式をコピーすれば良いので一旦置いといて、まずC3にカーソルを置き[数式]タブをクリック⇒「論理」をクリック⇒一覧から「IF」を選択します。
「関数の引数」ダイアログボックスが開いたら、まず「論理式」のボックスに条件を入力します。B3の値が70以上という条件にしますので、「B3>=70」と入力しましょう。
次は「値が真の場合」と「値が偽の場合」それぞれに表示したい値を指定します。(ボックス内のカーソル移動はTabキーを使いましょう)
数式の中で文字列(数値、数式、セル番地以外の文字)を指定する時は「”」(半角ダブルクォーテーション)で前後をはさむのがお約束なので、「値が真の場合」のボックスには「“〇”」、「値が偽の場合」のボックスには「“×”」と入力します。終わりましたら[OK]をクリックしダイアログボックスを閉じましょう。
結果、このような数式ができあがります。
あとは、セルC3のフィルハンドルをC6までドラッグし数式をコピーすればOKです。※C列はあらかじめ配置「中央揃え」を適用しています
70以上は「〇」、そうでない場合は「×」が表示されました。
例題の「〇」「×」の部分は任意で色々な文字列に変更する事ができます。こちらは70以上なら「合格」、そうでない場合は「不合格」の表示にしてみたものです。
=IF(B3>=70,”合格”,”不合格)
また、値が真の場合のみ「合格」と表示し、それ以外は空白(何も表示しない)にしたいという時は、「値が偽の場合」のボックスに「“”」(半角ダブルクォーテーション2つ)を入力しましょう。
=IF(B3>=70,”合格”,””)
逆に、70以上は何も表示せず、69以下は「再試験」と表示させるのであればこうなります。
=IF(B3>=70,””,”再試験”)
「値が真の場合」と「値が偽の場合」のどちらも何かしらの文字列を表示させてしまうと表の見た目が少しごちゃごちゃしてしまう場合もあります。そんな時は、どちらかを「””」の空白表示にして強調したい値だけを表示するとだいぶすっきりすると思います。
空白表示にしたいからと「値が真の場合」もしくは「値が偽の場合」のボックスに何も入れずに数式を確定すると、「TRUE」「FALSE」という表示になってしまいます。空白表示にしたい時は必ず「””」を入力するようにしましょう。
条件を満たす場合のみ計算を実行する
次は一定の条件を満たす時だけ計算を実行するという使い方例です。
こちらの表を使い、
・「購入金額」(B3~B6)が3000円以上なら[購入金額×20%]の金額を「割引額」(C3~C6)に表示する
・購入金額が3000円に満たない時は割引なしなので「0」と表示する
というように数式を設定してみましょう。
セルC3にカーソルを合わせ、[数式]タブ⇒「論理」⇒「IF」を順番にクリックします。
「関数の引数」ダイアログボックスが開いたら、まず論理式に「購入金額3000円以上」という条件を定めるので「B3>=3000」と入力します。
「値が真の場合」に割引額を算出する数式を入れます。購入金額の20%が割引額になるので、「B3*20%」と入力します。
「20%」の部分は小数点で「B3*0.2」と入力しても大丈夫ですよ
「値が偽の場合」は、割引なしなので「0」と入力します。(「0」は数値なので「””」は不要です!)
[OK]をクリックしてダイアログボックスを閉じます。このような式ができあがりました。
ついでに「割引後金額」D3に「=B3-C3」(購入金額-割引額)という式も追加しました。
あとはC列、D列とも6行目まで数式をコピーすれば完成です。
このような感じで、ご自身でも色々条件を設定して試してみてください。IFが使えるようになると、ちょっとしたプログラミングの疑似体験が味わえ、きっと「関数って面白い」と感じていただけるのではないかと思います。