INDEX+MATCH関数 検索条件のポイント|日付、空白等
ここでは、INDEX+MATCH関数の検索条件(検査値)指定のポイントを解説します。
日付や空白、空白以外、文字列、数値といった条件にするためには、どうすればいいかを説明します。
1.数式の形と検査値入力の注意点
INDEX+MATCH関数の数式の形は、次の通りです(行方向への検索の場合)。
そして、検索する条件値は、この中の「検査値」に入れます。
ただし、入れ方は「指定の仕方」と「条件値の型」で違ってきます。
指定の仕方とは、「数式内に直接条件値を入力する」か、「条件値を入れたセルを参照する」かといったことです。
条件値の型とは、条件値が「文字列」か「数値」か「日付」か…といったことです。
まずは、なんでもそのまま入力すればいいわけではない、ということに注意しましょう。
2.数式内に直接条件値を入力するケース
始めに、「数式に条件値を直接入力する」ケースから見てみます。
2-1.日付の場合
INDEX+MATCH関数の条件で、日付を数式内に直接入力する場合のポイントは「DATEVALUE関数を使う」 ことです。
この関数を使わずに「"4/1"」などとしても、うまく検索されません。
2-1-1.DATEVALUE関数とは
DATEVALUE関数は「日付データをシリアル値に変換する」関数です。
数式の形は、次の通りです。
=DATEVALUE(日付文字列)
日付文字列は、文字列状態の日付を指定します。
2-1-2.数式全体の形は
すると、数式全体の形は、次のようになります。
では、一つ例を見てみましょう。
上の表から、B列の開催日を検査範囲として、「2020年4月1日」の2列目を値を抜き出したい時、数式は次のようになります。
=INDEX(B2:C7,MATCH(DATEVALUE("2020/4/1"),B2:B7,0),2)
- 範囲:B2:C7
- 検査値:DATEVALUE("2020/4/1")
- 検査範囲:B2:A7
- 照合の種類:0
- 列番号:2
このようにすれば、INDEX+MATCH関数で日付を条件にすることができます。
2-2.空白を条件値にする方法
条件値を「空白」にするためのポイントは「MATCH関数の検査値に『TRUE』を、検査範囲にINDEX関数を使う」ことです。
検査値を「""」としても、#N/Aエラーになってしまいます。
2-2-1.数式全体の形は
数式全体の形は、次のようになります。
では、一つ例を見てみます。
上の表から、B列の都道府県名を検査範囲として、空白のセルの2列目を値を抜き出したい時、数式は次のようになります。
=INDEX(B2:C7,MATCH(TRUE,INDEX(B2:B7="",0),0),2)
- 範囲:B2:C7
- 検査範囲:B2:A7
- 列番号:2
このようにすれば、INDEX+MATCH関数で空白を条件にすることができます。
2-3.空白以外を条件値にする方法
条件値を「空白以外」にするためのポイントは「MATCH関数の検査値に『FALSE』を、検査範囲にINDEX関数を使う」ことです。
つまり、空白と同じような数式で、検査値だけ「FALSE」に変えるといいのです。
2-3-1.数式全体の形は
数式全体の形は、次のようになります。
では、一つ例を見てみます。
上の表から、B列の都道府県名を検査範囲として、空白のセルの2列目を値を抜き出したい時、数式は次のようになります。
=INDEX(B2:C7,MATCH(FALSE,INDEX(B2:B7="",0),0),2)
- 範囲:B2:C7
- 検査範囲:B2:A7
- 列番号:2
このようにすれば、INDEX+MATCH関数で空白以外を条件にすることができます。
2-4.文字列を条件値にする方法
条件値を文字列にするためのポイントは「文字列を『"』で囲む」ことです。
2-4-1.数式全体の形は
数式全体の形は、次のようになります。
では、一つ例を見てみます。
上の表から、B列の都道府県名を検査範囲として、「岩手県」の2列目を値を抜き出したい時、数式は次のようになります。
=INDEX(B2:C7,MATCH("岩手県",B2:B7,0),2)
- 範囲:B2:C7
- 検査値:"岩手県"
- 検査範囲:B2:A7
- 照合の種類:0
- 列番号:2
このようにすれば、INDEX+MATCH関数で文字列を条件にすることができます。
2-5.数値を条件値にする方法
条件値を数値にするためのポイントは「そのまま入れる」ことです。
2-4-1.数式全体の形は
数式全体の形は、次のようになります。
では、一つ例を見てみます。
上の表から、A列の№を検査範囲として、「3」の2列目を値を抜き出したい時、数式は次のようになります。
=INDEX(A2:C7,MATCH(2,A2:A7,0),2)
- 範囲:A2:C7
- 検査値:3
- 検査範囲:A2:A7
- 照合の種類:0
- 列番号:2
このようにすれば、INDEX+MATCH関数で数値を条件にすることができます。
3.条件値を入れたセルを参照するケース
最後に、条件値を入れたセルを参照(セル参照)するケースを確認します。
結論から言うと、セル参照の場合には条件値がどの形であっても「検査値にセル番号をそのまま入れる」でOKです。
数式全体の形は、次のようになります。
では、一つ例を見てみます。
上の表から、A列の№を検査範囲、条件値「3」を入れたセルA9を検査値として、その2列目を値を抜き出したい時、数式は次のようになります。
=INDEX(A2:C7,MATCH(A9,A2:A7,0),2)
- 範囲:A2:C7
- 検査値:A9
- 検査範囲:A2:A7
- 照合の種類:0
- 列番号:2
このようにすれば、INDEX+MATCH関数でセルに入った値を条件にすることができます。
以上、参考になれば幸いです。
次のページではINDEX+MATCH関数で「含む」条件の指定の仕方を解説しています。よかったら参照してください。
【口コミ・評判のいいExcel本の紹介】
INDEX+MATCH関数の、他の記事へのリンクはこちらです。
- INDEX+MATCH関数その他の記事へのリンクはこちら