IF関数は「判定」する関数であると説明することがあります。当サイトでも説明の便宜上、「IF関数を用いて判定する」などと表現することがありますが、厳密に言えば間違いです。
マイクロソフトによると、IF関数は、「論理式の結果がTRUEまたはFALSEの場合に別の値(指定した値)を返すことができる」と説明しています。実は、判定そのものは論理式(第1引数)の部分だけですでに終わっています(参考:【Excel】真と偽の意味と比較演算のメリットを知らずしてIF関数を語ってはいけない)。IF関数は、判定結果であるTRUEとFALSEをセルに表示する代わりに、別の値に「変換」して表示しているだけなのです。
そこで、今回は、IF関数の本当の意味を理解したうえで、IF関数の入力と修正をする練習をしましょう。
目次
- 1.TRUEとFALSEの意味(復習)
- 2.IF関数は変換である
- 3.論理式の先頭にイコールがいらない理由
- 4.セルの値を比較する
- 5.IF関数の入力練習
- 6.元の値がはじめから分かっているとは限らない
- 7.動画版はこちら(無料)
1.TRUEとFALSEの意味(復習)
IF関数を知るにはまず、真と偽(TRUEとFALSE)の意味を理解しなければなりません。詳しくはこちらの記事をご覧ください。
- 【Excel】真と偽の意味と比較演算のメリットを知らずしてIF関数を語ってはいけない - わえなび ワード&エクセル問題集
- 【Excel】IF関数が使えない原因は「比較演算」の練習不足である - わえなび ワード&エクセル問題集
2.IF関数は変換である
問題
A列の数値が60より大きければTRUE、そうでなければFALSEと表示しなさい。また、60より大きければ「A」、そうでなければ「B」と表示しなさい。
解説
60より大きいかどうかを基準として、TRUEとFALSEを表示しようとしています(参考:【Excel】真と偽の意味と比較演算のメリットを知らずしてIF関数を語ってはいけない)。
比較演算によって60より大きいことの判定をします。
88は60より大きいのでTRUEの判定となります。60より大きい場合だけTRUEとなり、それ以外はFALSEとなります。
判定結果はTRUEまたはFALSEで表示されますが、別の文字で表示することもできます。イコールの後に「IF」と入力します(「IF」は小文字の「if」でもよい)。
IF(イフ)関数は、判定結果が真または偽の場合に、TRUEまたはFALSEではなく、それぞれ別の値を指定することができる関数です。
- =IF(論理式,真の場合,偽の場合)
論理式とは、判定するための比較演算のことであり、TRUEまたはFALSEを求める計算のことです。
カッコを入力します。
カンマ、A、カンマ、Bと入力して、カッコを閉じます。
- =IF(A1>60,"A","B")
これでTRUEとFALSEの代わりに、AとBを表示することができます。
判定するための式、真の場合に表示する値、偽の場合に表示する値の間にはカンマが必要です。
A列の数値と60を比較して、60より大きいか?について判定をすると、その判定結果はTRUEまたはFALSEになります。
60より大きい場合は、論理式の判定がTRUEとなり、Aと表示します。論理式の判定がFALSEであれば、Bと表示します。
IF関数は、TRUEとFALSEをそれぞれ別の文字列に変換する関数といえます。
3.論理式の先頭にイコールがいらない理由
問題
論理式の直前にイコールが不要である理由を述べなさい。
解説
比較演算の先頭につけるイコールは、数式の始まりを表し、計算結果をセルに表示させるための記号です。比較演算をした結果がTRUEであれば、その結果をセルに表示させます。
IF関数の場合も最初に比較演算をしますが、その結果であるTRUEをそのままセルに表示させるのではなく、「A」という文字列に変換してセルに表示させます。
したがって、論理式の前ではなく、IF関数全体の前にイコールをつけます。
4.セルの値を比較する
問題
A列とB列の数値を比較してA列の数値のほうが大きければTRUE、そうでなければFALSEと表示しなさい。また、A列の数値のほうが大きければ「A」、そうでなければ「B」と表示しなさい。
解説
IF関数を考える前に必ず比較演算を考えます。A列とB列の数値を比較してA列の数値のほうが大きいことを判定します。
- =A1>B1
A列とB列の数値を比較してA列の数値のほうが大きい場合だけTRUEとなり、それ以外はFALSEとなります。このTRUE、FALSEを、AとBに置き換えます。
イコールの後に、「IF(」をつけます。
カンマ、A、カンマ、Bと入力して、カッコを閉じます。
これでTRUEとFALSEの代わりに、AとBを表示することができます。
A列とB列の比較をし、A列のほうが大きいか?について判定をすると、その判定結果はTRUEまたはFALSEになります。
論理式の判定がTRUEであればA、FALSEであれば、Bと表示します。
5.IF関数の入力練習
(1)全角と半角が混ざった数式の入力
問題
セルB1に商品代金を入力した。この金額が10000円未満の場合に送料550円を加算し、そうでない場合は送料無料としたい。セルB2に、送料を加算する場合は「必要」と表示し、送料無料の場合は「無料」と表示しなさい。
解説
この問題の場合、送料が必要な場合と不要な場合の2通りしかなく、それが商品代金で決まることが分かっています。
このように、1つの基準で、2通りにわけて表示をする場合、2通りのうちの一方について判定すればよいです。
1万円未満であることの判定をします。
TRUEであれば1万円未満であることが分かり、FALSEであればその逆で1万円以上であることが分かります。
この場合はFALSEなので1万円以上、つまり送料無料となります。
前述のとおり、TRUEまたはFALSEの表示を、別の表示にする場合はIF関数を使います。IF関数のカッコの中に、論理式と、真の場合の表示、偽の場合の表示をカンマで区切って入力します。
「if(」と入力します。
「カンマ、"必要"、カンマ、"無料"」と入力してカッコを閉じます。必要と無料にはそれぞれダブルクォーテーションが必要です。
ヒントをクリックしてみましょう。ヒントが表示されないときは「IF」の部分をクリックします。
真の場合が必要、偽の場合は無料となります。
このように、全角と半角を切り替えて入力しますので、「半角/全角」キーの使用は必須です。
慣れるまで何回も繰り返し練習しましょう。
別解その1
全角と半角の切り替えが面倒な場合は、先に半角文字だけ入力するという方法もあります。
「if(」と入力します。
「カンマ、ダブルクォート、カンマ、ダブルクォート」と入力してカッコを閉じます。
全角に切り替えて、必要と無料を入力します。
別解その2
関数の挿入[fx]のボタンを押します。
IF関数を探して、IF関数の画面を表示します。既に数式バーには、先頭のイコールとIFとかっこが入力されていることに注意します。
論理式には商品代金が1万円未満であることの判定を入力します。判定結果はFALSEです。
この時点で「偽」であることは分かっていますが、代金が変わる可能性があるので、真の場合も入力します。必要と入力し、他の場所をクリックすると自動的にダブルクォートが入力されます。
偽の場合は無料です。
他の場所をクリックすると自動的にダブルクォートが入力されます。
判定結果がFALSEなので、数式の結果は「無料」となります。
(2)IF関数の式の修正
問題
さきほどの問題で、商品代金と送料の合計が計算できるように数式を修正しなさい。
解説
合計金額を求めるとエラーになります。日本語の場合は足し算ができません。
そこで、金額を表示するようにIF関数を修正します。必要と表示するところを550、無料と表示するところを0にします。真の場合が550、偽の場合は0となります。これらは数値なのでダブルクォートを消さなければなりません。
これで0となります。
商品代金が10000円未満の場合は自動的に送料550円の加算となります。
別解
数式バーにIF関数を表示した状態で、関数の挿入[fx]のボタンを押します。
IF関数の画面が表示されます。
必要と表示するところを550、無料と表示するところを0にします。判定結果がFALSEなので、数式の結果は「0」となります。
6.元の値がはじめから分かっているとは限らない
問題
セルB1の金額がセルB2の金額より大きい場合は「不足」と表示し、そうでない場合は「支払可能」と表示しなさい。ただし、セルB1、B2は空欄とする。
解説
商品代金が所持金を超えていれば支払うことができないのですから、「不足」と表示します。
しかし、商品代金と所持金が入力されていません。
比較演算を数式で行うのは、判定しているセルの値が変わることを前提としています。
はじめから代金と所持金が分かっていれば、わざわざExcelで判定する必要はないのです。
比較演算も、それを用いたIF関数も、比較する数値が確定していない状態で入力するのが普通です。したがって、空欄の状態で数式を入力することもあります。
商品代金が所持金より大きいかどうかの判定をします。FALSEと表示されますが、空欄なので何らかの判定をしたわけではありません。
IF関数にします。商品代金が所持金より大きければ「不足」と表示し、そうでない場合は「支払可能」とします。
支払可能と表示されますが、これも意味のない判定です。
仮の金額を入力してみます。商品代金が100円で、所持金が50円しかなければ不足です。
所持金が200円あれば支払可能です。
空欄のままIF関数を入力したときは、仮の値を実際に入力して、判定がTRUEになる場合とFALSEになる場合で正しい表示になることを確認します。
解説は以上です。
7.動画版はこちら(無料)
この記事は、わえなび実力養成講座「ファンダメンタルExcel13」Program 13-3、13-4、13-4-2 のYoutube動画を書き起こして、加筆修正したものです。
- ファンダメンタルExcel 13-3 IF関数は変換である【わえなび】(ファンダメンタルExcel Program13 IF関数の基本)
- ファンダメンタルExcel 13-4 IF関数の入力練習【わえなび】(ファンダメンタルExcel Program13 IF関数の基本)
- ファンダメンタルExcel 13-4-2 補講 元の値がはじめから分かっているとは限らない【わえなび】(ファンダメンタルExcel Program13 IF関数の基本)