ExcelのIF AND:入れ子式、複数のステートメント、その他

  • これを共有
Michael Brown

このチュートリアルでは、ExcelでIFとAND関数を併用し、1つの計算式で複数の条件をチェックする方法を紹介します。

世の中には有限のものと無限のものがありますが、IF関数もその一つです。 当ブログでは、すでに数多くのExcel IFチュートリアルを用意していますが、毎日新しい使い方を発見しています。 今日は、IFとAND関数を併用して、2つ以上の条件を同時に評価する方法を紹介します。

    ExcelのIF ANDステートメント

    IF AND文を作るには、当然ながらIF関数とAND関数を1つの式にまとめる必要があります。 その方法は次の通りです。

    IF(AND)(アンド) 条件1 , 条件2 ,...), value_if_true, value_if_false).

    条件1が真で条件2が真なら、あることをしなさい、さもなくば他のことをしなさい、という式である。

    例として、B2が "delivered "でC2が空でないかを調べ、その結果に応じて次のいずれかの処理を行う数式を作ってみましょう。

    • 両方の条件が「TRUE」の場合、注文を「Closed」とマークする。
    • どちらかの条件が FALSE の場合、または両方が FALSE の場合は、空文字列 ("") を返す。

    =IF(AND(B2="delivered", C2""), "Closed", "")

    下のスクリーンショットは、ExcelのIF AND関数を表示したものです。

    論理テストがFALSEと評価された場合に何らかの値を返したい場合は、その値を value_if_false の引数です。 例えば

    =IF(AND(B2="delivered", C2""), "Closed", "Open")

    修正した計算式は、B列が「納品」、C列が任意の日付(空白以外)の場合、「クローズ」を出力する。 それ以外の場合は、「オープン」を出力する。

    注意:ExcelでIF AND式を使用してテキスト条件を評価する場合、小文字と大文字は同じ文字として扱われることに留意してください。 大文字小文字を区別するIF AND式をお探しの場合は、リンク先の例で行われているようにANDの1つ以上の引数をEXACT関数に折り曲げてください。

    ExcelのIF AND文の構文がわかったところで、どのような課題を解決できるかを紹介します。

    Excel IF: より大きく、より小さい

    前の例では、2つの異なるセルで2つの条件をテストしていました。 しかし、時には同じセルで2つ以上のテストを実行する必要があるかもしれません。 典型的な例としては、セルの値が かずかず ExcelのIF AND関数で簡単にできますよ。

    例えば、B列に売上高があり、50ドル以上100ドル未満の金額を表示するように要求されたとします。 これを実行するには、C2に次の数式を挿入し、列の下にコピーします。

    =IF(AND(B2>50, B2<100), "x", "")

    を含める必要がある場合は 境界値 (50と100)を使用します。 以下 演算子(<=)および 以上 (>=)演算子です。

    =IF(AND(B2>=50, B2<=100), "x", "")

    数式を変更せずに他の境界値を処理するには、2 つの別のセルに最小値と最大値を入力し、数式でそれらのセルを参照します。 すべての行で数式が正しく機能するように、境界セル (この例では $F$1 と $F$2) には必ず絶対参照を使用してください。

    =IF(AND(B2>=$F$1, B2<=$F$2), "x", "")

    同様の計算式を用いることで、「1. 年月日 一定範囲内 .

    例えば、2018年9月10日から2018年9月30日までの日付をフラグにしよう。 小さなハードルとして、論理テストに直接日付を与えることはできない。 Excelが日付を理解するためには、以下のようにDATEVALUE関数で囲む必要がある。

    =IF(AND(B2>=DATEVALUE("9/10/2018"), B2<=DATEVALUE("9/30/2018")), "x", "")

    または、単純に入力する から への の日付を2つのセル(この例では$F$1と$F$2)に入れて、すでにおなじみのIF AND式を使って、これらのセルから「引き出す」のです。

    =IF(AND(B2>=$F$1, B2<=$F$2), "x", "")

    詳しくは、Excelの2つの数値や日付の間のIF文をご覧ください。

    IF this AND that, then calculate something

    ExcelのIF AND関数は、あらかじめ定義された値を返す以外にも、指定した条件がTRUEかFALSEかによって異なる計算を実行することができます。

    このアプローチを示すために、金額が100ドル以上の「Closed」売上に対して5%のボーナスを計算することにします。

    B列に金額、C列に注文状況を想定すると、以下のような式になる。

    =IF(AND(B2>=100, C2="閉")), B2*10%, 0)

    上記の式では、残りのオーダーに0を代入しています( value_if_false = もし、条件を満たさない注文に対して、3%などの少額のボーナスを与えるのであれば、それに対応する方程式を value_if_false の議論になります。

    =IF(AND(B2>=100, C2="閉"), B2*10%, B2*3%)

    Excelで複数のIF ANDステートメントを使用する

    お気づきのように、上記の例では2つの条件しか評価していませんが、Excelの一般的な制限に従う限り、3つ以上のテストをIF AND式に含めることを妨げるものは何もありません。

    • Excel 2007 以降では、数式内で最大 255 個の引数を使用でき、数式の合計が 8,192 文字を超えないようにすることができます。
    • Excel 2003以下では、引数は30個まで、総文字数は1,024文字までとなります。

    複数のAND条件の例として、このようなものを考えてみてください。

    • 金額(B2)は100ドル以上であること。
    • 注文状況(C2)が "Closed "の場合
    • 納期(D2)が当月内であること

    さて、3つの条件がすべて「TRUE」である注文を特定するためには、IF AND文が必要です。 そして、その文は以下の通りです。

    =IF(AND(B2>=100, C2="Closed", MONTH(D2)=MONTH(TODAY()))), "x", "")

    本稿執筆時点の「当月」が10月であったとすると、この計算式は以下のような結果をもたらす。

    IF AND ステートメントのネスト

    大きなワークシートを扱う場合、一度に数セットの異なるAND条件をチェックする必要がある場合があります。 この場合、次のようにExcelの伝統的なIF式を入れ子にして、その論理テストをAND文で拡張します。

    IF(AND(...), 出力1 , IF(AND(...), 出力2 , IF(AND(...), 出力3 , アウトプット4 )))

    大まかなイメージをつかむために、次の例をご覧ください。

    例えば、出荷コストと配送予定時間(ETD)に基づいてサービスを評価したいとします。

    • 優秀 発送費用20ドル以下、到着予定日3日以下
    • 悪い 30ドル以上の送料と5日以上のETDが必要です。
    • 平均値 : その間にあるもの

    それを実現するために、2つの個別のIF AND文を書きます。

    IF(AND(B2<20, C2<3), "優秀", ...)

    IF(AND(B2>30, C2>5), "貧乏", ...)

    ...そして、1つを他のものに入れ込む。

    =IF(AND(B2>30, C2>5), "Poor", IF(AND(B2<20, C2<3), "Excellent", "Average"))

    結果はこのような感じになります。

    その他の計算式の例は、ExcelのネストされたIF ANDステートメントで見ることができます。

    Excelで大文字と小文字を区別するIF AND関数

    このチュートリアルの冒頭で述べたように、ExcelのIF AND式は、AND関数がもともと大文字と小文字を区別しないため、大文字と小文字の区別ができません。

    で作業している場合 ケースセンシティブ のデータで、テキストケースを考慮した AND 条件を評価したい場合は、EXACT 関数内で個々の論理テストを行い、これらの関数を AND 文にネストしてください。

    IF(AND(EXACT()の場合 セル ," 条件1 "), EXACT( セル ," 条件2 ")), value_if_true, value_if_false).

    この例では、特定の顧客(例えば、会社名が サイバースペース ) を、ある一定の数値、例えば100ドルを超える金額で設定する。

    下のスクリーンショットにあるように、B列の会社名の中には、大文字と小文字が同じに見えるものがあり、それにもかかわらず、別の会社であるため、名前を確認する必要があります。 まさに C列の金額は数字なので、通常の「より大きい」テストを実行します。

    =IF(AND(EXACT(B2, "Cyberspace"), C2>100), "x", "")

    この数式をより柔軟にするために、対象となる顧客名と金額を2つのセルに分けて入力し、それらのセルを参照することができます。 ただ、セル参照を$記号で固定し(ここでは$G$1と$G$2)、他の行に数式をコピーしても変更されないようにすることを忘れないようにしてください。

    =IF(AND(EXACT(B2, $G$1), C2>$G$2), "x", "")

    これで、参照するセルに任意の名前と金額を入力すると、数式がテーブルの該当する注文にフラグを立てます。

    ExcelのIF OR AND式

    ExcelのIF式では、論理関数を1つだけ使うという制限はありません。 複数の条件のさまざまな組み合わせをチェックするために、IF、AND、ORなどの関数を自由に組み合わせて必要な論理テストを実行できます。 ここでは、ANDの中にいくつかのOR条件をテストするIF AND OR式の例を示します。 そして次に、ORの中に複数のANDテストを行う方法を説明します。関数を使用します。

    例えば、2人の顧客の注文に、ある数字より大きい金額、例えば100ドルをマークすることを希望するとします。

    Excel言語では、私たちの条件はこのように表現されます。

    OR(アンド) お客様1 , 金額 >100)、AND( お客様2 , 金額 >100)

    顧客名がB列、金額がC列、2つの対象名がG1、G2、対象金額がG3であるとすると、この式を使って対応する注文に「×」印をつけるのである。

    =IF(OR(AND(B2=$G$1, C2>$G$3), AND(B2=$G$2, C2>$G$3)), "x", "ー")

    よりコンパクトな構文で同じ結果を得ることができます。

    =IF(AND(OR(B2=$G$1,B2= $G$2), C2>$G$3), "x", "")

    計算式のロジックを完全に理解しているかどうかは、Excel IF with multiple AND/OR conditionsに詳細が記載されています。

    以上、エクセルでIF関数とAND関数を併用する方法でした。 読んでくださってありがとうございました!また来週お会いしましょう。

    練習用ワークブック

    IF AND Excel - 数式の例 (.xlsx ファイル)

    Michael Brown は、ソフトウェア ツールを使用して複雑なプロセスを簡素化することに情熱を注ぐ熱心なテクノロジー愛好家です。テクノロジー業界で 10 年以上の経験があり、Microsoft Excel と Outlook、さらに Google Sheets と Docs のスキルを磨いてきました。 Michael のブログは、彼の知識と専門知識を他の人と共有することに特化しており、生産性と効率を向上させるためのわかりやすいヒントとチュートリアルを提供しています。経験豊富なプロフェッショナルであろうと初心者であろうと、Michael のブログでは、これらの重要なソフトウェア ツールを最大限に活用するための貴重な洞察と実践的なアドバイスを提供しています。