Excel使いこなしの基礎と応用

IF関数の使い方|基本|「論理式」の書き方いろいろ

使用関数:IF
IF関数は「もし、こうであれば~」という条件式「論理式」を指定して、相違する2つの結果を導き出す関数です。比較演算子(<、>、<=など)を使って数値の大小や日付の前後を指定し、「論理式」を組み立てる基本例を挙げて詳しく図解していきます。

目次


IF関数の基本構造

IF関数の基本構造を知るために、まず、「数式」タブ「関数ライブラリ」にある「論理」リストから「IF」を選択してみましょう。
数式ライブラリの「論理」からIF関数を開く
「IF関数の引数」ダイアログボックスが開き、「論理式」「真の場合」「偽の場合」という3つの引数で構成されていることがわかります。
IF関数のダイアログボックス
一番最初の引数「論理式」で「もし~だったら」という条件を指定します。実例については後述しますが、たとえば「A1セルの値が5以上だったら」という条件を指定したいなら「A1>=5」と入れます。
引数「論理式」に「もし~だったら」を入れる
2番めの引数「真の場合」には、上記の論理式条件「もし~だったら」の答えが肯定だった場合の結果を指定します。「その通りなら、こうする」という答えの「こうする」内容を入れるわけです。「A1>=5(A1セルの値が5以上だったら)」に「5以上であれば合格と表示します」と答えるのであれば、この引数に「“合格”」と入れます。
引数「真の場合」に「その通りならこうする」を入れる
最後の引数「偽の場合」には最初の論理式条件「もし~だったら」の答えが否定だった場合の結果を指定します。「違ってたら、こうする」という答えの「こうする」内容が入ります。「A1>=5(A1セルの値が5以上だったら)」に「5以上でなかったら、不合格と表示します」と答えるとするなら、この引数に「“不合格”」と入れます。
引数「偽の場合」に「違ってたら、こうする」を入れる
実際の入力値は以下のようになるわけですね。
IF関数の引数の説明
これを数式にすると、「=IF(A1>=5,“合格”,“不合格”)」となります。

文字列を引数の入力値にする時の作法

IF関数に限ったことではありませんが、引数の値として文字列を入力する時はダブルクォーテーション「」(半角)で括るという決まり事があります。上記例で言えば「合格」「不合格」と記述するってことです。これを忘れると「#NAME?」とエラー値が返されます。「その関数、間違って書いてますよ」っていう警告ですね。

論理式の組み立て方

第一引数「論理式(条件式とも呼ばれる)」「もし~だったら」を実際どう組み立てればいいのか、基本的な記述法について解説します。

「論理式」を構成するには2つの値が必要です。より正確に言葉に置き換えるなら、「もし、◯と△を比較して~だったら」という組み立てをします。◯と△は比較演算子で繋ぎます。

比較演算子(ひかくえんざんし)の一覧

スポンサーリンク

= 等しい。一致する。
【表記例:セル番地】 A1=B1 (A1セルの値がB1セルの値に等しい)
【表記例:数式】 A1=(B1*C1) (A1セルの値がB1×C1の値に等しい)
【表記例:文字列】 A1=”決定” (A1セルの入力値が「決定」と一致)
<> 異なる。一致しない。
【表記例:セル番地】 A1<>B1 (A1セルの値がB1セルの値と異なる)
【表記例:数式】 A1<>(B1*C1) (A1セルの値がB1×C1の値と異なる)
【表記例:文字列】 A1<>”決定” (A1セルの入力値が「決定」と不一致)
> 大きい。一致を含まない。
【表記例:セル番地】 A1>B1 (A1セルの値がB1セルの値より大きい)
【表記例:数式】 A1>(B1*C1) (A1セルの値がB1×C1の値より大きい)
【表記例:数値】 A1>0 (A1セルの値が正数
< 小さい。未満。一致を含まない。
【表記例:セル番地】 A1<B1 (A1セルの値がB1セルの値より小さい)
【表記例:数式】 A1<(B1*C1) (A1セルの値がB1×C1の値より小さい)
【表記例:数値】 A1<0 (A1セルの値が負数
>= 以上。一致を含む。
【表記例:セル番地】 A1>=B1 (A1セルの値がB1セルの値以上)
【表記例:数式】 A1>=(B1*C1) (A1セルの値がB1×C1の値以上)
【表記例:数値】 A1>=5 (A1セルの値が5以上)
<= 以下。一致を含む。
【表記例:セル番地】 A1<=B1 (A1セルの値がB1セルの値以下)
【表記例:数式】 A1<=(B1*C1) (A1セルの値がB1×C1の値以下)
【表記例:数値】 A1<=5 (A1セルの値が5以下)

 

数値の大小を比較してランク付けする

IF関数は正解(TRUE=トゥルー)と不正解(FALSE=フォールス)の相反する答えを切り替えて表示してくれるので、点数や金額の大小(多寡)を比較してランク判定するのに使われます。このページの最初に上げた「=IF(A1>=5,“合格”,“不合格”)」という数式もシンプルなランク判定の例です。

もう少し具体的な例で図解してみましょう。
試験結果の表に「判定」という列項目を新たに設け、5科目総合点の平均を基準に合否の判定を表示させます。「判定」の最初のセル「I3」を選択して、
IF関数でランク判定する例題
IF関数のダイアログを開き、「論理式」にカーソルを置いて「H3」セル(総合点)をクリック、比較演算子の「>=」を入力して「H13」セル(総合点の平均点)をクリック、F4キーを一つ押して絶対参照にしておきます。
ランク判定の論理式
「真の場合」に「及第」と入力。Tabキーを押せば自動で文字列であることを示唆するダブルクォーテーションが前後に挿入されます。「偽の場合」には「再試験」と入力。同様にTabキーを押せばダブルクォーテーションで括られます。Enterを押して数式を確定。
IF関数でランク判定するダイアログボックス
人数分の範囲までフィルコピーして、判定が適正に表示されたか確認します。
ランク判定する数式をフィルコピー
数式は「=IF(H3>=$H$13,“及第”,“再試験”)」。

以前、以降の日付を比較する

比較演算子は日付の前後を表すのにも使えます。「A1<TODAY()」と書けば、「今日より以前」ということ、「A1>TODAY()」なら「今日より以後」です。

スポンサーリンク

ネットオークション取引の管理表を例にしてみましょう。支払期限内に決済されたかどうかを判定し、「違約状況」というフィールドに表示させることにします。「違約状況」の最初のセル「J3」を選択し、
違約状況のフィールド
IF関数のダイアログボックスを開き、「論理式」にカーソルを置いて「決済日」の最初のセル「I4」をクリック、「以下」を表す比較演算子の「<=」を入力して「支払期限」の「H4」セルをクリックします。引数「論理式」に入った「I4<=H4」の意味は「決済された日付(I4)が支払期限の日付(H4)より以前なら・・・」即ち、「支払期限内に決済が完了していたら・・・」ということです。
違約状況を判定する論理式
引数「真の場合」には「期限内に決済が完了していたら、どうするか」を入れるので、「OK」という文字列が表示されるようにします。「OK」と入力してTabキーを押し、ダブルクォーテーションでくくります。引数「偽の場合」には「決済されていなかったら、どうするか」を入れるので、「警告」という文字列を入力してTabキー。
違約状況のダイアログ
件数分の範囲までフィルコピーして、適正に表示されたか確認します。※下図は分かりやすくするために「条件付き書式」で色分けしています。
IF関数の結果を確認
数式は「=IF(I4<=H4,“OK”,“警告”)」。

日付の以前以後を判定するIF関数の解説としてはここまでですが、上記例で「決済日」の記載がない場合=入金が為されていない場合、空欄にしてあると期限より以前と見做されて「違約状況」の判定は「OK」になってしまいます。こうした不具合を解消するには、IF関数を入れ子して複数条件を指定する方法を採ります。その実装方法は、▶ IF関数を入れ子して複数条件を指定|数式の組み立て方の手順とコツへ。

▶ IF関数を使って0を出現させずに計算式を適用する
▶ IF関数ネスト(AND関数・OR関数)で複数条件を設定してランク判定させる


高機能の表計算ソフトExcelを活用すれば、仕事や私生活で、今あなたが必要とするいろいろなモノが作れます。その作成手順とデザイン、アイデアのヒントまでを可能な限り詳細にわかりやすくナビします。基本操作や関数、グラフに関する解説記事とともにご利用下さい。