MicrosoftExcelで複数のIFステートメントを使用する方法

オフィスでコンピューターを使用している混血のビジネスマン

MicrosoftExcelで複数のIFステートメントを使用する方法

画像クレジット: Monkeybusinessimages / iStock / GettyImages

ExcelのIFステートメントは、条件が満たされた場合に1つの値を返し、満たされていない場合に別の値を返す論理テストを実行します。 単一のExcelIFステートメントを使用すると、基本的な操作しか対応できませんが、複数のIFステートメントをネストすると、複雑なタスクを実行できます。 唯一の欠点は、数式を作成するときにエラーが発生しないように注意する必要があることです。 代替のExcel関数は、エラーのリスクを抑えて同じ仕事をすることができます。 ExcelでネストされたIFステートメントの基本と、ニーズに最適なアプローチを見つけるための代替案を学びます。

ExcelIFステートメントを理解する

ExcelのIF関数は、基本的に「これが真の場合はx値を返しますが、そうでない場合はy値を返します」と言います。 たとえば、ビジネスのさまざまな部門が 予算を下回っている、または上回っている場合は、関数を使用して支出を予算と比較し、部門の支出が多すぎる場合は「予算超過」を返し、予算内の場合は「予算内」を返すようにすることができます。 しませんでした。 一般的に、次のような比較演算子を使用してステートメントを作成します。

今日のビデオ

  • =(等しい)
  • (より大きい)

  • =(以上)

  • <=(以下)
  • <>(等しくない)

Excel IFステートメントの構文を理解することは、それを適切に使用する方法を学ぶための重要なステップです。 関数の形式は次のとおりです。 IF(logical_test、value_if_true、[value_if_false]) ここで、角括弧は、この最後の引数がオプションであることを示します。 これらは簡単に解釈できます。 logic_test テストしたいステートメントを意味します。 value_if_true テストが真であるかどうかをExcelに表示する場所です。 [value_if_false] テストがfalseの場合にExcelに表示するオプションのスポットです。

これは、if-thenステートメントにExcelの数式を使用するのに十分です。これは、前の「予算超過/予算内」の例を使用して示すことができます。 列Bにさまざまな部門が費やした金額があり、列Cに予算があり、値が2行目から始まっているとします。 セルD2に、次のように入力します

= IF(B2> C2、 "予算超過"、 "予算内") 探している結果を返すため(内部のテキストを返すには引用符を使用する必要があることに注意してください)。 最初の部分は「B2の値がC2の値よりも大きい場合」(支出が予算よりも大きい場合)、2番目の部分は「テキストを返す 予算オーバー そして3番目の部分は「そうでない場合は、 予算内."

複数のIFステートメントのネスト

Excel IFステートメントツールを最大限に活用するということは、それに適したタスクがあるときに複数のIFステートメントを組み合わせることができることを意味します。 元のIFステートメント内に2番目のIFステートメントを含めることができ、その中に別のIFステートメントを含めることができます。 これは、単一の数式を使用して何かを複数のグループの1つに分類する場合に特に便利です。 たとえば、ネストされたIFステートメントを使用して、テストで学生が達成したスコアを成績に変換できます。

複数のIFステートメントを正しく使用するには、Excelに実行するように要求していることのロジックについて考えてください。 基本的に、条件(関数の最初の引数)の後に、別のIFステートメントをに追加できます。 value_if_true また value_if_false スペース、Excelに次に何をするかを指示します。 これは、問題のセルがチェックしない場合に、Excelに2番目の基準に対してセルをチェックさせることと考えてください。 最初の基準を満たしている(または、実際に最初の基準を満たしている場合)。このプロセスを長時間続けることができます。 時間。 言い換えれば、あなたは「これなら、それなら」を「これなら」に変えているのです。 これ、それからそれ」または「これではなくこれ、それからそれ」。

ネストされたIF関数の例

85パーセント以上のスコアがA、70〜85パーセントであるテストを学生に与えたと想像してください。 はB、55〜70パーセントはC、40〜55パーセントはD、それより低いものはAです。 失敗。 スコアは、行2から行11までの列Bにあります。 慎重に作成されたExcelIF関数を複数の条件で使用して、生徒のスコアを分類できます。

最初の部分は簡単です(この例では、B2のスコアの場合): = IF(B2> = 85、 "A") 生徒のスコアが85以上の場合、ExcelにAを返すように指示します。 ネストを使用すると、3番目の引数(条件がfalseの場合の対処方法)を使用して他のグレードを追加し、条件を追加できます。 = IF(B2> = 85、 "A"、IF(B2> = 70、 "B"))、これは、85以上のスコアの場合はAを返すようにExcelに指示しますが、そうでない場合は、スコアが70を超える場合はBを返します。 毎回新しいIFステートメントの3番目の引数を使用して、この方法で式を完成させます。 = IF(B2> = 85、 "A"、IF(B2> = 70、 "B"、IF(B2> = 55、 "C"、IF(B2> = 40、 "D"、 "Fail")) ))

これは複雑に見えるので、分解するとアイデアが固まるはずです。 最初の2つの引数は、「B2のスコアが85以上の場合、学生はAを取得します」と言い、3番目の引数は、「それ以外の場合は、次の条件を確認します」と言います。 The 2番目のIFは、「(スコアが85未満の学生の場合)B2のスコアが70以上の場合、学生はBを取得し、そうでない場合は、 次の条件。」3番目のIFは、「(70未満のスコアの学生の場合)B2のスコアが55以上の場合、スコアされた学生はCを取得し、そうでない場合はチェックします。 次の条件」と4番目の条件は「(55未満のスコアの学生の場合)B2のスコアが40を超える場合、学生はDを取得します。そうでない場合、学生はDを取得します。 失敗します。」

IFステートメントのエラーコード

IFステートメントの数式を正しく入力すると、Excelに指定したオプションの1つが返されます。 ただし、間違えると、数式が 0 また #名前? 数式を含むセル内。

A 0 エラーは、 value_if_true また value_if_false 引数は空です。 値が両方の引数に入力されていること、または少なくとも、 value_if_true 口論。 The value_if_false 引数は完全に削除できます。2番目のカンマを入力しないとFALSEが返されます。 value_if_true 分野。

A #名前? エラーは、数式のスペルを間違えたか、入力を間違えた可能性があることを示しています。 これは数式の一部である可能性があるため、修正するのが少し難しいかもしれませんが、すべてを再確認するか、数式をもう一度書き出すことをお勧めします。

ネストされたIFステートメントに関する一般的な問題

前の例のネストされたIF関数の数式は非常に長くなりました。これは、Excelで複数のIFステートメントを使用することの主な欠点の1つです。 それらは複雑になる可能性があり、すべてが意図したとおりに機能していることを確認するためにロジックを注意深く実行する必要があるため、間違いを犯しやすくなります。 Microsoftは、誤ってネストされた数式はほとんどの場合正しい結果を返す可能性があると指摘していますが、まれに誤った結果を返すことがあります。 これらを見つけるのは難しいです。

条件を正しい順序に並べないことはよくある間違いです。 段階的なテストの例では、低いスコアから始めた場合 = IF(B2> = 40、 "D"、… " そして、他の人を昇順でリストし始めました。スコアが100の場合でも、Dが返されます。 これは、最初の条件が最初にチェックされるためです。したがって、「セルB2が40以上の場合、 D "40以上のスコアは、最初のスコアを満たしているため、他に何もチェックせずにDとして分類されます。 調子。 これは、数式のロジックに従う必要がある理由の完璧な例です。

また、数式を正しく閉じるには、複数のIFステートメントの最後に正しい数の角かっこを追加する必要があります。 Excelは、作業中に角かっこを色で調整して強調表示することにより、これを支援します。

ネストされたIFの最大数

技術的には、1つの数式に最大64個のIF関数をネストできますが、Microsoftは、上記の理由から、このような関数の使用を推奨していません。 物事はすぐに複雑になり、10を超えるIFステートメントをネストしようとしている場合は、Excelに含まれているジョブに適したツールがすでに存在する可能性があります。

ExcelのIFS関数

IF関数の最も便利な代替手段は、IFS関数です。これは、 単一の関数でネストするのと同じタスクを実行し、最大127を処理できる関数 条件。 IFS関数の構文は単純です。 = IFS(logical_test1、value_if_true1、[logical_test2、value_if_true2]、[logical_test3、value_if_true3]…) 等々。 基本的に、これはネストされたIFステートメントのように機能しますが、後続のIFステートメントが「trueの場合の値」の後のスペースを占有し、関数を再度起動する必要がない点が異なります。

テストグレードの例の式は、IFS関数を使用してはるかに簡単に記述できます。 それ以外の:

= IF(B2> = 85、 "A"、IF(B2> = 70、 "B"、IF(B2> = 55、 "C"、IF(B2> = 40、 "D"、 "Fail")) ))

単に書く

= IFS(B2> = 85、 "A"、B2> = 70、 "B"、B2> = 55、 "C"、B2> = 40、 "D"、TRUE、 "失敗")

The TRUE 最後の前のスポットで、「他の値が満たされない場合は、次の値を返します」と表示されます。

この機能は、Excel2019またはExcelfor Office365でのみ使用できます。

VLOOKUP関数

ExcelのVLOOKUP関数は、多くの場合、複数のIFステートメントのより簡単な代替手段であり、2007年以降のすべてのバージョンのExcelで使用できます。 完全一致または完全一致の結果を返すため、すべての状況に理想的ではありません。 最も近い 番号なので、前の例のようなグレードには使用できませんでした。 ただし、多くの場合、1つの可能な値を使用してテーブルを作成する必要がありますが、数式を作成する手間を大幅に節約できます。 ストアが販売する商品などの列、および商品の価格などの関数に返すものを別の列に入力します。 例。

VLOOKUPの構文は次のとおりです。 = VLOOKUP(lookup_value、table_array、col_index_num、[range_lookup]) 各コンポーネントを学習すると、その使用方法がわかります。 The 参照値 引数はチェックする値であり、チェックするテーブルの先頭と同じ列のセルである必要があります。 The テーブル・アレイ 製品とそれに対応する価格などの情報のテーブルを含むセルの範囲であり、 col_index_num 返される値を見つけるためにExcelで調べたい列です。 1 左端の列を示し、 2 次のものを示します。 ついに、 [range_lookup] はオプションですが、Excelで最も近い値に基づいて回答する場合は「TRUE」と入力し、完全一致のみが必要な場合は「FALSE」と入力します。