- IF関数とCOUNTIF関数を併用して、リストを使った複数条件(OR、または)の判定ができます。
手順
次の画像では左の表に判定対象となる商品名が並んでおり、右側には条件となる商品名のリストがあります。
左の表の商品名のそれぞれについて、リストに含まれるものかどうか○×で判定するものとします。
まずC3セルに次のように入力します。
C3セル
=IF(COUNTIF(E3:E5,B3),"○","×")
IF関数の第1引数(条件式)にCOUNTIF関数を使い「COUNTIF(E3:E5,B3)」とします。
B3セルの値(りんご)がリストE3:E5内にあればこの値は1(以上)になるので結果は「○」となり、なければ「×」となります。
条件は「COUNTIF(E3:E5,B3)>0」と書いた方がわかりやすいですが「>0」は省略可能です。
さらにCOUNTIF関数の第2引数(検索条件)を「B3:B9」とすれば一括判定ができます(スピル)。
C3セル
=IF(COUNTIF(E3:E5,B3:B9),"○","×")
スピルを使わない場合は絶対参照を使うのが適当です。
C3セル(下方にフィルコピー)
=IF(COUNTIF(E$3:E$5,B3),"○","×")
スピルを使った応用として、次の画像ではリストに該当するものと同じ行にある数値の合計を求めています。
G3セル
=SUM(IF(COUNTIF(E3:E5,B3:B9),C3:C9,0))
「COUNTIF(E3:E5,B3:B9)」によりB3からB9セルまでの商品名がリストに(いくつ)存在するかを一括して求めています。そしてIF関数によりその値が0でなければC列の数値をそのまま抽出し、0なら0を返しています。
あとはSUM関数でそれらの値を合計すれば求める値となります。
この式だけ見ると意味がわかりにくいかもしれませんが、最初の式(2番目の画像)から順番に実行してみればやっていることが理解しやすいと思います。
なお、上の式のSUM関数を外すと次のようになります。
条件に該当する行の数値はそのままに、該当しない行の数値が0に変換されているのがわかります。