Excelで複数の条件を同時に評価: IF & AND 関数の活用法
データ分析や日々の業務で利用するExcel。特定の条件に基づいてデータを分類したり、評価したりする場面は非常に多いですね。特にIF関数とAND関数、および論理式をうまく組み合わせることで、複数の条件を柔軟に取り扱うことができます。今回は、異なる3つのパターンを通じて、このテクニックを詳しくご紹介します。
テーマ表は以下のものとします(範囲はA1:I9)。
受験者番号 | 英語 | 国語 | 数学 | 理科 | 社会 | ラインA | ラインAA | ラインS |
10001 | 49 | 72 | 51 | 51 | 66 | |||
10002 | 40 | 63 | 68 | 57 | 62 | |||
10003 | 45 | 46 | 52 | 69 | 76 | |||
10004 | 49 | 51 | 59 | 77 | 68 | |||
10005 | 52 | 64 | 63 | 49 | 40 | |||
10006 | 46 | 45 | 57 | 69 | 46 | |||
10007 | 50 | 71 | 58 | 68 | 62 | |||
ラインS基準点 | 48 | 51 | 54 | 57 | 60 |
個別に1つずつ式を評価させるパターン
最も基本的な利用法です。各条件を個別に指定し、それらをAND関数で結合します。ここでは合格基準に以下のリストの値を採用します。
英語 41
国語 45
数学 49
理科 53
社会 57
以下の式では、5つの科目のスコアがそれぞれの基準値以上であるかをチェックしています。セルG2へ作成して、8行目までコピーする式となります。
=IF(AND(B2>=41,C2>=45,D2>=49,E2>=53,F2>=57),"〇","×")
この式は、各科目のスコアが設定した基準をクリアしているか(TRUEかFALSEか)をAND関数で評価し、すべてがTRUEがあれば「〇」を、1つでもFALSEであれば「×」を表示します。以下で詳しく概要を確認します。
条件の評価
AND(B2>=41,C2>=45,D2>=49,E2>=53,F2>=57)
: この部分は、5つの条件式をAND
関数で評価しています。それぞれの条件の意味は次の通りです:
- B2が41以上
- C2が45以上
- D2が49以上
- E2が53以上
- F2が57以上
論理式を並べて確認すると以下のようになります(他の論理式のサンプルはリンク先で確認してください)。
- B2>=41
- C2>=45
- D2>=49
- E2>=53
- F2>=57
これらの条件式のうち、すべてが真(つまり、該当する)であれば、AND
関数はTRUE
を返します。それ以外の場合(すなわち、いずれか1つでも偽である場合)はFALSE
を返します。
IF関数の実行
=IF(AND(.....),"〇","×")
:IF
関数は、最初の引数が真(TRUE
)であるか偽(FALSE
)であるかを評価し、それに応じて2番目の引数(ここでは「〇」)または3番目の引数(ここでは「×」)の値を返します。- 具体的には、上記で評価された
AND
関数の結果がTRUE
であれば、「〇」がセルに表示され、FALSE
であれば、「×」がセルに表示されます。
言い換えれば、受験者が上記で設定された5つの科目の合格ライン(英語:41点、国語:45点、数学:49点、理科:53点、社会:57点)のうち、すべての条件を満たしていれば「〇」(合格)が、1つでも満たしていなければ「×」(不合格)が、その受験者に対応するセル(例えば、G2)に表示されます。そして、この式を下にオートフィル(ドラッグまたはコピー&ペースト)することで、他の受験者についても同様の評価が行われ、各受験者が合格基準を満たしているかどうかが一目でわかるようになります。
1つの配列と定数を評価させるパターン
次に、配列と定数を比較するケースです。これはすべての科目に同じ基準点を適用したい場合などに有効です。例えば、全ての科目で48点以上を取っているかを確認する場合の式は次の通りです。
=IF(AND(B2:F2>=48),"〇","×")
この場合、B2からF2までの各セルが48以上であるかを一度に評価し、すべてが48以上であれば「〇」を返し、どれか1つでも48未満であれば「×」を返します。セルH2へ作成して、8行目までコピーする式となります。
なお、この論理式のように「複数のセルを一括で評価する」場合には注意点があります。
- Excel 2019 以前のバージョンを利用しているならば「
Ctrl+Shift+Enter
」キーを使って「配列数式」として認識させる必要があります。 - Excel 2021 以降のバージョン、およびExcel 365では自動的に「動的配列数式」として認識されるため特別な操作は不要です。
条件の評価
B2:F2>=48
: この部分は、B2からF2までの各セルについて、それぞれが70以上であるかを真偽値(TRUE/FALSE)の配列として評価します。B2:F2は5セルあります。内部的には以下のような5つに分割されて真偽判断されます。
- B2>=48
- C2>=48
- D2>=48
- E2>=48
- F2>=48
ただしこのような自動分割式はExcel 2019 以前のバージョンには備わっていません。Excel 2019 以前のバージョンを利用しているならば最終確定時に「Ctrl+Shift+Enter
」キーを使います。
AND関数の適用
AND(B2:F2>=70)
: AND関数は、提供された上記の5つの配列の中ですべてがTRUE
かどうかを評価します。もしTRUE
でない配列、すなわちFALSE
が1つでもあれば、AND
関数はTRUE
を返し、そうでなければFALSE
を返します。
IF関数の実行
=IF(AND(B2:F2>=70),"〇","×")
: 最後に、IF
関数がAND
関数の結果を評価し、TRUE
であれば「〇」を、FALSE
であれば「×」を返します。
この式は、B2からF2の範囲のすべてのセルの値が48以上である場合、「〇」を返し、それ以外の場合「×」を返します。
ただしExcel 2019 以前のバージョンを利用しているならば「Ctrl+Shift+Enter
」キーを使って確定してください。
配列同士を評価させるパターン
3つ目のパターンは、配列同士の比較です。これは、科目ごとに異なる基準値を設けたい場合に便利です。以下の式では、各科目のスコアがそれぞれの科目の基準点を上回っているかをチェックしています。セルI2へ作成して、8行目までコピーする式となります。
=IF(AND(B2:F2>=$B$9:$F$9),"〇","×")
ここでは、B2からF2のスコアが、B9からF9のラインS基準点以上であるかを一度に比較しています。いずれかの科目で基準をクリアしていれば「〇」、全ての科目で基準をクリアしていなければ「×」が返ります。
条件の評価
B2:F2>=$B$9:$F$9
: 各セル(B2, C2, D2, E2, F2)が、対応する合格ライン(B9, C9, D9, E9, F9)と比較され、それぞれのセルについて、スコアが合格ライン以上であるかを真偽値(TRUE/FALSE)で評価します。ここでは、セルごとの比較が行われていて、その結果が真偽値の配列として生成されます。
B2:F2は5セル、B9:F9も5セル、と5セル同士の配列があります。内部的には以下のような5つに分割されて真偽判断されます。
- B2>=$B$9
- C2>=$C$9
- D2>=$D$9
- E2>=$E$9
- F2>=$F$9
ただしこのような自動分割式はExcel 2019 以前のバージョンには備わっていません。Excel 2019 以前のバージョンを利用しているならば最終確定時に「Ctrl+Shift+Enter
」キーを使います。
AND関数の適用
AND(B2:F2>=$B$9:$F$9)
: AND
関数は、前述の真偽値の配列を引数として受け取り、配列内の論理値がすべてTRUE
であればTRUE
を返し、1つでもFALSE
であればFALSE
を返します。言い換えれば、5つの科目のスコアのうち、すべてが合格ライン以上であった場合に限りTRUE
になります。1つでも合格ラインを下回った場合はFALSE
になります。
IF関数の実行
=IF(AND(B2:F2>=$B$9:$F$9),"〇","×")
: IF
関数は、AND
関数の結果を評価します。AND
関数の結果がTRUE
であれば「〇」を、FALSE
であれば「×」を返します。
したがって、この式はB2からF2の各セルについて、対応する合格ライン(B9からF9)と比較し、すべてが合格ライン以上のスコアであれば「〇」を、それ以外の場合は「×」を返します。この結果がセルI2に表示され、オートフィルにより他の行にも同じロジックが適用されます。
このような配列数式は、特に多くのデータを一度に評価する場面や、複数の条件を同時にチェックしたい場合に非常に便利です。
ただしExcel 2019 以前のバージョンを利用しているならば「Ctrl+Shift+Enter
」キーを使って確定してください。
以上、3つのパターンを通じて、IF関数とAND関数を活用する方法をご紹介しました。これらの基本的なテクニックをマスターすることで、Excelでのデータ処理がよりスムーズかつ効率的になります。是非、日々の業務に活かしてみてください。
参考学習:関数の中に関数を組み込み際の基本的な流れ(関数のネスト)
セルG2へ以下の式を作成する際の操作手順を簡単に解説します。
=IF(AND(B2>=41,C2>=45,D2>=49,E2>=53,F2>=57),"〇","×")
最初に一番外側のIF関数を作成します。セルG2をアクティブにして「関数の挿入」をクリックします。
IF関数を選択しましょう。
「論理式」にAND関数を組み込みます。カーソルを合わせてから左上の関数一覧より「その他の関数」を選びます。
AND関数を選びましょう。
AND関数に必要な設定を登録します。登録後は数式バーでIF関数の部分をクリックします。IF関数の再調整ができるようになります。
真の場合、偽の場合を指定して完成です。
コメント