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