エクセルの便利な関数:MATCH関数の使い方
こんにちは、 篠原です。
今回の便利な関数、2回目は「MATCH関数」です。
便利な関数
これから解説の関数は以下のとおりです。
MATCH関数
MATCH関数は、指定したセル範囲の中から、検索値をもとに値を検索し、見つかった値の範囲内の位置を戻り値とする関数です。検索値が見つからない場合は「#NA」を返します。
MATCH(検索値,検索範囲,照合の型)
検索値 :検索範囲の中から探したい値を指定します。
検索値が文字列の場合は、「?」「*」のワイルドカードが使えます。
文字列を指定する場合は、検索値文字列をダブルクウォテ―ションでくくります。
検索範囲:B3:B14のようにセル範囲を指定する(一列または一行の範囲を指定する)。
照合の型の指定の仕方によって、この範囲内データは、昇順、降順、並び替え不要となっていなければなりません。
照合の型:「1または省略」。検索範囲内のデータが昇順になっていること。
検索値以下の最大値の位置を検索します。
:「0」。検索範囲内のデータは並び替え不要です(これいいですね)。
検索値に一致するの位置を検索します。
:「-1」。検索範囲内のデータが降順になっていること。
検索値以上の最小値の位置を検索します。
このMATCH関数とINDEX関数を組み合わせると、VLOOKUP関数もどきの機能を作ることが出来ます。
MATCH関数の使い方 その1
- 計算式
=MATCH(1.7,C3:C14,1)
この場合 検索範囲内の検索値「1.7」以下の最大値は「1.6」なので、検索範囲内では上から3番目になるので、戻り値は「3」となります。
MATCH関数の使い方 その2
- 計算式
=MATCH("5月",B3:B14,0)
この場合 検索範囲内の検索値「5月」に等しい値は「5月」で、検索範囲内では5番目になるので、戻り値は「5」となります。
MATCH関数の使い方 その3
- 計算式
=MATCH(1.7,D3:D14,-1)
この場合 検索範囲内の検索値「1.7」以上の最小値は「2」なので、検索範囲内では上から9番目になるので、戻り値は「9」となります。
MATCH関数の使い方 その4(検索値が文字列の場合:ワイルドカ-ドの使用)
- 計算式
=MATCH("?B*",E3:E14,0)
この計算式の使い方は、紹介の型が「0」のときにだけ使用可能です。
関数の式の意味は、
・E3:E14の検索範囲の中で
・先頭の1文字は任意の一文字
・2文字目は文字「B」
・3文字目以降は任意の文字列
である文字列を検索し、その検索範囲内で一致した検索値の位置を返す
という意味で、この場合 検索範囲内の検索値「?B*」に等しい値は「ABCD」なので、検索範囲内では上から1番目になるので、戻り値は「1」となります。
MATCH関数の使い方 その5(INDEX関数との組み合わせ)
- 計算式
=INDEX(F3:H14,MATCH(1.7,C3:C14,1),2)
この計算式を、VLOOKUP関数で表すと、
=VLOOKUP(1.7,C3:H14,5,TRUE) となります。
じゃあVLOOKUP関数一つでいいじゃないかということになりますが、これらの関数の組み合わせでないとできないこともあります。
それは、検索キー列の位置です。VLOOKUP関数の場合は、検索キー列は、必ず検索範囲の第1列目になくてはなりませんが、これらの関数の組み合わせでは、この制限はなくなります。これは、それぞれの関数が独立した機能を持ち、それらをうまく連携させているからこそ出来ることなのです。
上の、INDEX関数とMATCH関数の組み合わせの意味は、
・F3:H14の検索範囲の中で
・MATCH関数(C3:C14の範囲内で1.7以下の最大値の位置)の結果は「3行目」
・2列目
の参照を返す。結果は「75」となります。
以上、MATCH関数の使い方でした。
?
Tag: エクセル EXCEL MATCH関数 INDEX関数 関数の組み合わせコメント