INDEX+MATCH関数を複数のOR条件にする|IFと組合わせ
ここでは、エクセルのINDEX+MATCH関数を「複数のOR条件にする方法」を解説します。
IF関数と組み合わせた、短く分かりやすい数式の紹介です。
なお、「どちらも満たす」のAND条件の数式の作り方は、次のページで紹介しています。
1.まずはやりたいことを確認
まずは、やりたいことを例を含めて確認します。
1-1.INDEX+MATCH関数を複数のOR条件にしたい
やりたいことは、「INDEX+MATCH関数を複数のOR条件する」です。
ポイントは、次の通りです。
- 複数の条件を指定できる
- 優先度の高い順から判定される
- 条件に一致したデータが抽出される
そもそもOR条件とは、「『どれかに当てはまるか?』を判定したい条件」のことです。
なので、条件は複数指定できる必要があります。
また、条件には優先度があり、高い順から判定されます。
そして、最終的に条件に一致するデータが抜き出されます。
1-2.例で確認
一つ例を見てみましょう。
上の表は「商品販売実績の一覧表」です。
販売日や売れた商品名、販売先や個数、単価などが入力されています。
例えばこの表から「商品名に『タオル』か『定規』のどちらか」が入ったデータを抜き出したい時には、「INDEX+MATCH関数で複数条件をORで指定する」と、正しく抽出することができます。
例では商品名に「タオル」の入ったデータの方が先にあったため、そのデータがセルA15からF15に抜き出されています。
このように、通常条件を一つしか指定できない「INDEX+MATCH関数」で、複数条件をORで指定する方法を、この後解説します。
なお、条件に合うデータをOR条件で、1件だけでなく全部抽出したいといった場合には、また数式が異なります。
別のページで解説していますので、そちらを参照してください。
2.数式は「抽出元の範囲が同じか?」で変わる
INDEX+MATCH関数をOR条件にする場合、数式の形は「抽出元の範囲が同じか?」で変わります。
上は、抽出元の範囲が同じ場合の例です。
条件のどちらに該当しても、抽出元の範囲は変わらないパターンです。
これに対して、一致する条件によって抽出元の範囲を変えたい場合もあります。
これら2つのパターンは、数式が異なります。
3.抽出元範囲が同じ→IF関数
まずは、抽出元の範囲が同じ場合の数式から見てみましょう。
3-1.数式の形は
どの条件に該当しても抽出元の範囲が同じ場合、数式の形は次の通りです。
※ 条件が2つの場合
このように、IF関数とCOUNTIF関数を組み合わせます。必要なのは全部で6項目(引数)で、次の通りです。
- 配列:抽出元の範囲
- 検査範囲:条件一致を確認する範囲
- 検査値1:一つ目の条件
- 検査値2:二つ目の条件
- 照合の種類:完全一致/近似値一致
- 列番号:抽出する列の位置
検査値は2つですが、各引数の指定の仕方は「INDEX+MATCH関数」と全く同じです。
そのため指定の仕方は、ここでは詳しく解説しませんが、もし確認したい場合には次のページを参照してください。
ちなみに、条件値が3つの場合には次のようになります。
このように、条件を増やす場合にはIF関数を重ねるとOKです。
3-2.数式の作り方
次に、数式の作り方を見てみます。
上の表から「商品名が『タオル』か『定規』」の一連のデータを抜き出します。
つまり条件は、「タオル」と「定規」です。
以下手順です。
(1)以下の数式をコピーし、セルに貼り付ける
【コピーする数式】
(2)「配列」の文字を消し、抽出元の範囲を指定後、F4キーを1回押す
(3)「検査範囲」の文字を消し、条件一致を確認する範囲を指定後、F4キーを1回押す(2ヶ所)
(4)「検査値1」の文字を消し、最優先の条件値を指定後、セル番号の場合にはF4キーを1回押す(2ヶ所)
(5)「検査値2」の文字を消し、2番目に優先の条件値を指定後、セル番号の場合にはF4キーを1回押す
(6)「照合の種類」の文字を消し、「0」を入れる
(7)「列番号」の文字を消し、「COLUMN(A1)」と入れる
(8)Enterキーを押す
(9)セルの右下にカーソルを当て、ポインタが「+」になったら左ドラッグして数式をコピーすれば完了
これで、INDEX+MATCH関数をOR条件にすることができます。
なお、(7)のところでCOLUMN関数を入れるのは、(9)の数式コピー時に列番号を手直ししなくていいようにするためです。
もし他のセルに数式をコピーしない場合、列番号にはCOLUMN関数ではなく数値を入れるとよいでしょう。
なお、条件が3つの場合は以下をコピーして使ってください。
【コピーする数式】
【口コミ・評判のいいExcel本の紹介】
4.抽出元範囲が異なる→IFERROR関数
次に、抽出元の範囲が異なる場合の数式を見てみましょう。
4-1.数式の形は
どの条件に該当したかで抽出元の範囲が異なる場合、数式の形は次の通りです。
※ 条件が2つの場合
このように、IFERROR関数と組み合わせます。必要なのは全部で5項目(引数)で、次の通りです。
- 配列:抽出元の範囲
- 検査範囲:条件一致を確認する範囲
- 検査値:条件
- 照合の種類:完全一致/近似値一致
- 列番号:抽出する列の位置
ポイントは、「INDEX+MATCH関数が2組ある」ことです。始めのINDEX+MATCH関数の条件に該当しない場合、次のINDEX+MATCH関数の条件を判定する、といった動きになります。
なお、引数の指定の仕方はINDEX+MATCH関数の普段の使い方と一緒なので、ここでは省略します。
確認したい場合には、以下のページを参考にしてください。
ちなみに、条件値が3つの場合には次のようになります。
このように、条件を増やす場合にはIFERROR関数を重ねるとOKです。
4-2.数式の作り方
次に、数式の作り方を見てみます。
上の2つの表から「A店の『ふせん』、またはB店の『鉛筆』」の販売実績の一連のデータを抜き出します。
以下手順です。
(1)以下の数式をコピーし、セルに貼り付ける
【コピーする数式】
(2)「配列」の文字を消し、抽出元の範囲を指定後、F4キーを1回押す(1と2の両方)
(3)「検査値」の文字を消し、最優先の条件値を指定後、セル番号の場合にはF4キーを1回押す(1と2の両方)
(4)「検査範囲」の文字を消し、条件一致を確認する範囲を指定後、F4キーを1回押す(1と2の両方)
(6)「照合の種類」の文字を消し、「0」を入れる(1と2の両方)
(7)「列番号」の文字を消し、「COLUMN(A1)」と入れる(1と2の両方)
(8)Enterキーを押す
(9)セルの右下にカーソルを当て、ポインタが「+」になったら左ドラッグして数式をコピーすれば完了
こちらも他のセルに数式をコピーしない場合、列番号にはCOLUMN関数ではなく数値を入れるとよいでしょう。
なお、条件が3つの場合は以下をコピーして使ってください。
【コピーする数式】
INDEX+MATCH関数の、他の記事へのリンクはこちらです。
- INDEX+MATCH関数その他の記事へのリンクはこちら