MATCH関数を複数条件にする方法|andとor|エラーの原因
ここでは、「MATCH関数を複数条件にする方法」を解説します。
「条件全てに一致」のAND条件と、「条件のどれかに一致」のOR条件の両方のやり方を確認します。
また、複数条件でエラーになる原因にも触れます。
1.複数条件をANDで指定する方法
まずは、MATCH関数で「複数条件をANDで指定する方法」から見てみます。
1-1.数式の形
数式の形は、次のようになります。
ポイントは、次の通りです。
- 「検査値」と「検査範囲」をそれぞれ「&」でつなぐ
- 「&」でつなぐ順番は揃える
- 「{ }」は手入力ではなく一定の操作で付ける
「『&』でつなぐ」とは、「検査値」は条件を、「検査範囲」は検索する範囲を「&」を挟んで指定することです。
この時、つなぐ順番は合わせるようにしてください。例えば、検査値が「日付」→「商品名」の順であれば、検査範囲も「日付の範囲」→「商品名の範囲」となります。
そして、「{ }」は「配列数式」であることを意味しますが、手入力ではなく一定の操作で付けます。付け方は、この後説明します。
1-2.数式を作ってみる
例の表をもとに、数式を作ってみます。
例に使うのは、上の「商品販売実績」です。
この表の「セルA3~C7」の範囲で、「販売日が4月2日」、「商品名がタオル」に該当するデータがどこにあるかを求めます。
以下、手順です。
(1)以下の数式をコピーし、セルに貼り付ける
【コピーする数式】
(2)「検査値1&検査値2…」の文字を消し、条件値を「&」で繋いで入れる
(3)「検査範囲1&検査範囲2…」の文字を消し、検索する範囲を「&」で繋いで入れる
(4)「Ctrlキー」と「Shiftキー」を押しながらEnterキーを押せば完了
結果、数式は次の通りです。
{=MATCH(E4&F4,A3:A7&C3:C7,0)}
これで、MATCH関数が「ANDの複数条件」になります。
2.複数条件をORで指定する方法
次に、MATCH関数で「複数条件をORで指定する方法」を見てみます。
2-1.数式の形
数式の形は、次のようになります。
ポイントは、次の通りです。
- 「IF関数」と「COUNTIF関数」を組み合わせる
- 「検査値1」の方が優先される
- 同じ検査範囲でのOR条件
- 複数該当の場合には「一番上」の場所が返ってくる
OR条件にするにはIF関数とCOUNTIF関数を組み合わせて、「検査値1」が1つでも検査範囲にあれば検査値1、なければ検査値2、という形にします。
そのため、検査値2よりも検査値1の方が優先されます。
なお、この数式は「検査範囲が同じ」のが前提です。また、複数該当がある場合には「一番上」の場所が返ってきます。
2-2.数式を作ってみる
例の表をもとに、数式を作ってみます。
例に使うのは、先ほどの「商品販売実績」です。
この表の販売先の中で、「CB」、または「C社」に該当するデータがどこにあるかを求めます。
以下、手順です。
(1)以下の数式をコピーし、セルに貼り付ける
【コピーする数式】
(2)「検査値1」と「検査値2」の文字を消し、条件値を入れる
(3)「検査範囲」の文字を消し、検索する範囲を入れる
(4)Enterキーを押せば完了
結果、数式は次の通りです。
=MATCH(IF(COUNTIF(B3:B7,E4)>0,E4,F4),B3:B7,0)
これで、MATCH関数が「ORの複数条件」になります。
3.複数条件のANDで#VALUE!エラーになる原因は
最後に、MATCH関数を複数条件のANDにした時「#VALUE!エラー」になる原因を確認します。
3-1.原因は「配列数式になってない」から
一番多いのは、「配列数式になっていない」からです。
配列数式には、数式入力後「Ctrlキー」と「Shiftキー」を押しながら「Enterキー」を押します。
一方で、ただEnterキーだけを押してしまうと配列数式になりません。
結果、#VALUE!エラーになります。
3-2.数式に「{ }」が付いているか確認する
配列数式になっているかは、「数式に『{ }』が付いているか?」で確認することができます。
これで一目で判断することができます。
以上、参考になれば幸いです。
【口コミ・評判のいいExcel本の紹介】