ExcelのIF関数
IF関数は、Excelワークブックで最もシンプルで有用な関数の1つです。これは簡単な論理テストを実行し、比較結果に基づいてTRUEの場合には1つの値を、FALSEの場合には別の値を返します。

構文:
ExcelにおけるIF関数の構文は次の通りです:
引数:
- 論理式: 必須です。テストしたい条件を指定します。
- 真の場合: オプションです。論理式の結果がTRUEの場合に返される特定の値を指定します。
- 偽の場合: オプションです。論理式の結果がFALSEの場合に返される値を指定します。
注意:
1. 真の場合が省略された場合:
- IF関数で真の場合の引数が省略された場合(例えば、論理式の後にカンマのみがある場合)、条件が満たされたときにゼロが返されます。例: =IF(C2>100,, "Low ")。
- 条件が満たされた場合にゼロの代わりに空白セルを使用したい場合は、二重引用符""を第2パラメータに入力する必要があります。例: =IF(C2>100, "", "Low")。
![]() | ![]() |
2. 偽の場合が省略された場合:
- IF関数で偽の場合の引数が省略された場合、指定された条件が満たされなかったときにFALSEが返されます。例: =IF(C2>100, "High")。
- 真の場合の引数の後にカンマを入れると、指定された条件が満たされなかったときにゼロが返されます。例: =IF(C2>100, "High" ,)。
- 第3パラメータに二重引用符""を入力すると、条件が満たされなかった場合に空白セルが返されます。例: =IF(C2>100, "High" , "").
![]() | ![]() | ![]() |
戻り値:
特定の条件をテストし、TRUEまたはFALSEに対応する値を返します。
例:
例1: 数値に対する単純なIF関数の使用
例えば、一連の値をテストし、その値が特定の値100より大きい場合、「Good」というテキストを表示し、そうでない場合は「Bad」を返したいとします。
以下の数式を入力すると、必要な結果が得られます。
例2: テキスト値に対するIF関数の使用
ケース1: 大文字小文字を区別しないテキスト値に対するIF関数:
ここでは、タスクと完了状況の一覧を持つテーブルがあります。どのタスクが進行中で、どれが必要ないかを知りたいとします。列Cのテキストが「completed」の場合、「No」が表示され、それ以外の場合は「Yes」が返されます。
次の数式を適用すると、列Cのテキストが「completed」(大文字小文字に関係なく)の場合、「No」が返されます。他のテキストの場合は「Yes」が返されます。スクリーンショットをご覧ください:
ケース2: 大文字小文字を区別するテキスト値に対するIF関数:
テキスト値の大文字小文字を区別してテストするには、IF関数をEXACT関数と組み合わせる必要があります。以下の数式を適用すると、完全一致するテキストのみが認識され、希望する結果が得られます:
ケース3: 部分一致のテキスト値に対するIF関数:
場合によっては、部分的なテキストに基づいてセル値をチェックする必要があります。この場合、IF、ISNUMBER、SEARCH関数を一緒に使用します。
例えば、「comp」というテキストを含むセルをチェックし、対応する値を返したい場合は、以下の数式を適用してください。以下のような結果が得られます:
注意:
- 1. SEARCH関数は大文字小文字を区別しません。大文字小文字を区別してテキストをチェックする場合は、SEARCH関数をFIND関数に置き換えてください。例: =IF(ISNUMBER(FIND("comp",C2)), "No", "Yes")
- 2. IF数式内のテキスト値のパラメータは、必ず"二重引用符"で囲む必要があります。
例3: 日付値に対するIF関数の使用
ケース1: 特定の日付と日付を比較するためのIF関数:
日付を比較して、特定の日付よりも前または後であるかどうかを確認したい場合、IF関数も役立ちます。ただし、IF関数は日付形式を認識できないため、DATEVALUE関数と組み合わせる必要があります。
この数式を適用すると、日付が2019年4月15日より後の場合、「Yes」が返され、それ以外の場合は「No」が返されます。スクリーンショットをご覧ください:
注意: 上記の数式では、DATEVALUE関数を使用せずに直接セル参照を使用することもできます。例: =IF(D4>$D$1, "Yes", "No")。
ケース2: 30日以上前または後の日付をチェックするためのIF関数:
現在の日付から30日以上前または後の日付を識別したい場合は、TODAY関数をIF関数と組み合わせて使用します。
次の数式を入力してください:
30日以上前の日付を識別する: =IF(TODAY()-C4>30,"Older date","")
30日以降の日付を識別する: =IF(C4-TODAY()>30, "Future date", "")
![]() | ![]() |
注意: 両方の結果を1つの列にまとめたい場合は、次のようにネストされたIF関数を使用する必要があります:
例4: AND、OR関数と組み合わせたIF関数の使用
ExcelでIF、AND、OR関数を組み合わせて使用することは一般的です。
ケース1: すべての条件が真であることを確認するためのIFとAND関数の使用:
設定したすべての条件が満たされているかどうかを確認したいとします。例えば、B4が「Red」、C4が「Small」、D4>200の場合、すべての条件がTRUEであれば「Yes」をマークし、いずれかの条件がFALSEであれば「No」を返します。
次の数式を適用すると、以下のスクリーンショットのような結果が得られます:
ケース2: いずれかの条件が真であることを確認するためのIFとOR関数の使用:
また、IFとOR関数を使用して、いずれかの条件が真であるかどうかを確認することもできます。例えば、列Bに「Blue」または「Red」のテキストが含まれているかどうかを識別し、該当するテキストがあれば「Yes」を表示し、それ以外の場合は「No」を返します。
ここで、次の数式を適用すると、以下の結果が表示されます:
ケース3: ANDおよびOR関数と組み合わせたIF関数の使用:
この例では、IF関数をANDおよびOR関数の両方と同時に組み合わせます。次の条件を確認する必要があるとします:
- 条件1: 列B = 「Red」かつ列D > 300;
- 条件2: 列B = 「Blue」かつ列D > 300.
上記のいずれかの条件が満たされた場合、「Match」が返され、それ以外の場合は「No」が返されます。
次の数式を使用すると、必要な結果が得られます:
例5: ネストされたIF関数の使用
IF関数は、条件をテストし、条件が満たされた場合に1つの値を返し、満たされなかった場合に別の値を返します。しかし、時には複数の条件を同時にチェックし、異なる値を返す必要がある場合があり、そのような場合にはネストされたIFを使用して解決できます。
ネストされたIFステートメントは、複数のIF条件を組み合わせたもので、IFステートメントの中にさらにIFステートメントを入れ、それを複数回繰り返すことを意味します。
ExcelにおけるネストされたIF関数の構文は次の通りです:
注意: Excel 2007以降では、1つの数式に最大64個のIF関数をネストでき、Excel 2003以前では7個のネストされたIF関数しか使用できません。
ケース1: 複数の条件をチェックするためのネストされたIF関数:
ネストされたIF関数の典型的な使用例は、学生の成績に基づいて評価を割り当てることです。例えば、生徒と試験の点数が記載された表があり、以下の条件に基づいて点数を分類したいとします:
次の数式を適用すると、点数が90以上の場合「Excellent」、80以上の場合「Good」、60以上の場合「Medium」、それ以外の場合「Poor」という結果が得られます。
上記の数式の説明:
![]() |
|
ケース2: 数量に基づく価格計算のためのネストされたIF関数:
ネストされたIF関数は、数量に基づいて製品価格を計算するためにも使用できます。
例えば、顧客に数量に基づいた価格割引を提供したい場合、購入数量が多いほど割引が大きくなります(下のスクリーンショットを参照)。
総価格は数量×価格なので、指定された数量にネストされたIFが返す値を掛ける必要があります。次の数式を使用してください:
注意: スタティックな価格の数字の代わりにセル参照を使用することもできます。元データが変更された場合、数式を更新する必要はありません。次の数式を使用してください: =D2*IF(D2>=101, B6, IF(D2>=50, B5, IF(D2>=25, B4, IF( D2>=11, B3, IF(D2>=1, B2, "")))))
ヒント: IF関数を使用してテストを構築する際、次の論理演算子を使用できます:
演算子 | 意味 | 例 | 説明 |
> | より大きい | =IF(A1>10, "OK",) | セルA1の数値が10より大きい場合、数式は"OK"を返します。それ以外の場合は0が返されます。 |
< | より小さい | =IF(A1<10, "OK", "") | セルA1の数値が10より小さい場合、数式は"OK"を返します。それ以外の場合は空白セルが返されます。 |
>= | 以上 | =IF(A1>=10, "OK", "Bad") | セルA1の数値が10以上の場合、"OK"が返されます。それ以外の場合は"Bad"が表示されます。 |
<= | 以下 | =IF(A1<=10, "OK", "No") | セルA1の数値が10以下の場合、"OK"が返されます。それ以外の場合は"No"が返されます。 |
= | 等しい | =IF(A1=10, "OK", "No") | セルA1の数値が10に等しい場合、"OK"が返されます。それ以外の場合は"No"が表示されます。 |
<> | 等しくない | =IF(A1<>10, "No", "OK") | セルA1の数値が10と等しくない場合、数式は"No "を返します。それ以外の場合は"OK"が返されます。 |
最高のオフィス生産性ツール
Kutools for Excel - 群衆から一歩抜け出すためのお手伝い
🤖 | KUTOOLS AI アシスタント: 次の基盤でデータ分析を革新: スマート実行 | コード生成 | カスタム数式を作成 | データを分析しチャートを生成 | Kutools 機能を呼び出し… |
人気機能: 重複を検索、ハイライト、または特定 | 空白行を削除 | データを失うことなく列やセルを結合 | 数式を使わずに丸める ... | |
スーパーVLookup: 複数条件 | 複数値 | 複数シート間 | ファジーマッチ... | |
高度なドロップダウンリスト: 簡単ドロップダウンリスト | 依存ドロップダウンリスト | 複数選択ドロップダウンリスト... | |
列マネージャー: 特定の数の列を追加 | 列を移動 | 非表示列の可視性ステータスを切り替え | 列を比較して同じおよび異なるセルを選択 ... | |
注目機能: グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ (オートテキスト) | 日付ピッカー | ワークシートを統合 | セルの暗号化/復号化 | リストによるメール送信 | スーパーフィルター | 特殊フィルタ(太字、斜体、取り消し線のフィルタリング...) ... | |
上位15のツールセット: 12個の テキストツール(テキストの追加、特定の文字を削除 ...) | 50以上の チャート タイプ(ガントチャート ...) | 40以上の実用的な 数式(誕生日に基づいて年齢を計算 ...) | 19個の 挿入ツール(QRコードの挿入、パスからの画像挿入 ...) | 12個の 変換ツール(単語に変換する、通貨変換 ...) | 7つの マージ&分割ツール(高度な行のマージ、Excelセルの分割 ...) | ... など |
Kutools for Excelは300以上の機能を誇り、必要なものがクリック一つで利用可能です...
Office Tab - Microsoft Office(Excel含む)でタブ形式の読み書きを可能に
- 数十の開いている文書間を1秒で切り替え!
- 毎日数百回のマウスクリックを減らし、マウス疲れとはおさらば!
- 複数の文書を閲覧・編集する際の作業効率を50%向上します。
- Chrome、Edge、Firefoxのように、Office(Excel含む)に効率的なタブをもたらします。