私の数式でかなり使用しているExcel関数の1つがIF関数です。 IF関数は論理条件をテストし、論理条件がTRUEまたはFALSEのどちらを返すかに応じて2つの異なる結果を生成するために使用されます 。
例として、以下の携帯電話の売上表を使用しましょう。 サンプルファイルはこちらからダウンロードできます。
![](http://gadget-info.com/img/windows-help/170/how-use-if-nested-if-statements-excel.png)
単一条件付きIF関数
売上が発生した場所に応じて、各売上行の手数料を計算する必要があるシナリオを考えてみましょう( 列D )。 米国で販売された場合、 手数料は10%です。それ以外の場合、残りの地域の手数料は5%になります。
セルF2に入力する必要がある最初の数式は、次のとおりです。
= IF(D2 = "USA"、E2 * 10%、E2 * 5%)
![](http://gadget-info.com/img/windows-help/170/how-use-if-nested-if-statements-excel-2.png)
公式の内訳:
- = IF( - “ =”はセル内の数式の始まりを示し、 IFは現在使用しているExcelの関数です。
- D2 =” USA” - 実行する論理テスト(つまり、列D2のデータがUSAの場合 )。
- E2 * 10% - 最初の論理テストの結果がTRUE (つまり、 D2列の値がUSA )の場合に計算式によって返される結果。
- E2 * 5% - 最初の論理テストの結果がFALSEの場合 (つまり、 D2列の値がUSAではない場合)、数式によって返される結果。
- ) - 式の終わりを示す閉じ括弧。
その後、 セルF2から列Fの残りの行に式をコピーすると、 IF論理テストでTRUEまたはFALSEが返されるかに応じて、各行の手数料手数料が10%または5%計算されます。行。
![](http://gadget-info.com/img/windows-help/170/how-use-if-nested-if-statements-excel-3.png)
複数の条件を持つIF関数
各条件に対して異なる結果が返される複数の論理条件をテストする必要がある場合に、ルールがもう少し複雑になったとしたらどうでしょうか。
Excelはこれに対する答えを持っています! 同じセル内で複数のIF関数を組み合わせることができます。これは入れ子IFとも呼ばれます。
以下のように、各販売拠点で コミッションが異なるという同様のシナリオを考えます。
- アメリカ 10%
- オーストラリア 5%
- シンガポール 2%
セルF2 (後で同じ列Fの残りの行にコピーされます)に、次のように数式を入力します。
= IF(D2 = "USA"、E2 * 10%、IF(D2 = "オーストラリア"、E2 * 5%、E2 * 2%))
公式の内訳:
- = IF( - IFステートメントを使用した式の始まり
- D2 =” USA” - 最初に実行した論理テスト(つまり、列D2のデータがUSAの場合 )。
- E2 * 10% - 最初の論理テストの結果がTRUE (つまり、 D2列の値がUSA )の場合に計算式によって返される結果。
- IF(D2 = "オーストラリア"、E2 * 5%、E2 * 2%) - 最初の論理テストの結果がFALSEである場合に評価される2番目のExcel IFステートメント(つまり、列D2の値が米国以外 )。 これは、 セル D2の値がオーストラリアの場合、 E2 * 5%の結果が返される、この記事の前半で説明した「単一条件のIF関数 」と似た構文です。 それ以外の場合、値がオーストラリアではない場合、関数はE2 * 2%の結果を返します。
- ) - 最初のIF関数の式の終わりを示す閉じ括弧。
Excelでは論理式が左から右に評価されるため、論理テストが満たされると(例: D2 = "USA") 、関数は停止して結果を返します。その後の論理テストは無視されます(例: D2 = "Australia") 。 )
そのため、最初の論理テストでFALSEが返された場合 (つまり、場所がUSAではない場合 )、2番目の論理テストの評価が続行されます。 2番目の論理テストでもFALSEが返された場合 (つまり場所がオーストラリアではない場合)、 セルD2で唯一可能な値はシンガポールであることがわかっているため、さらにテストする必要はなく、 E2 * 2%の結果が返されます。
わかりやすくするために、3番目の論理テストIF(D2 = "Singapore"、 "value if TRUE"、 "value if FALSE")を追加できます 。 したがって、完全な拡張式は次のようになります。
= IF(D2 = "米国"、E2 * 10%、IF(D2 = "オーストラリア"、E2 * 5%、IF(D2 = "シンガポール"、E2 * 2%)))
![](http://gadget-info.com/img/windows-help/170/how-use-if-nested-if-statements-excel-4.png)
前述したように、上記は最初の式と同じ結果を返します。
= IF(D2 = "USA"、E2 * 10%、IF(D2 = "オーストラリア"、E2 * 5%、E2 * 2%))
クイックヒント
- すべての単一のIF(関数、開始および終了の丸括弧が必要です。上記の例の1つに従って3つのIF関数がある場合、式には3つの終了括弧「))が必要です。対応する開始IF(ステートメント
- 論理テストの2番目の結果(論理テストの結果がFALSEの場合 )を指定しなかった場合、Excelによって割り当てられたデフォルト値は"FALSE"というテキストになります。 つまり、formula = IF(D2 = "USA"、E2 * 10%)は、 D2が"USA"ではない場合、 "FALSE"というテキストを返します 。
- それぞれ異なる結果を持つ複数の異なる論理テストがある場合は、上記の例のように、 IF関数を次々に組み合わせて/入れ子にすることができます。