MATCH分類:検索/行列 2009.02.06
MATCH関数は「検索/行列」に分類される関数で、範囲・配列から値を検索し、相対的な位置を数値で返します。INDEX関数と組み合わせたり、配列数式として応用でき大変便利な関数です。
「氏名と教科名からその人物の成績を抽出する」といった用途が考えられます。
MATCHの機能と構成
機能:照合の型に従い検査範囲内を検索し、検査値と一致する要素の配列内位置を数値で返す。
構成:=MATCH(検査値,検査範囲,照合の型)
引数
検査値には、値 (数値、文字列、論理値)、又ははこれらの値に対するセル参照を指定できます。
検査範囲には、検査値が入力されている連続した1次元セル範囲や、値の配列を指定します。
照合の型には、検査範囲の中で検査値を探す方法を「1,0,-1」の数値で指定します。この引数は省略可能で省略した場合は「1」と見なされます。
次は、照合の型の違いによって、関数が値を検索する方法の違いの記載です。
●「1」又は省略
検査値以下の最大の値が検索されます。このとき検査範囲のデータは、昇順に並べ替えておく必要があります。
昇順の並べ替えでは、数値は 1 ~ 9、アルファベットは A ~ Z、かなは "あ" ~ "ん"、ブール型の値は FALSE から TRUE に配置されます。
●「0」
検査値に一致する値のみが検索の対象となります。このとき検査範囲を並べ替えておく必要はありませんが、検査値が見つからない場合は、エラーになります。
又、「0」を設定した場合は、ワイルドカード文字を使用できます。
●「-1」
検査値以上の最小の値が検索されます。このとき検査範囲のデータは、降順に並べ替えておく必要があります。
降順の並べ替えでは、数値は 9 ~ 1、アルファベットは Z ~ A、かなは "ん" ~ "あ"、ブール型の値は TRUE から FALSE に配置されます。
引数を指定する例
配列{2,3,4}から「3」を検索し位置を返す。(結果は「2」):
=MATCH(3,{2,3,4},0)
配列{"小矢部","庄川","神通"}から「神通」を検索し位置を返す。(結果は「3」):
=MATCH("神通",{"小矢部","庄川","神通"},0)
セル範囲[A1:A10]からセル[B1]の値を検索し位置を返す。:
=MATCH(B1,A1:A10,0)
[DataArea]と名前を定義したセル範囲[A1:A10]から「6」を検索し、位置を返す。
「6」が見つからない場合は「6」以下の最大の値が検索されます。:
=MATCH(6,DataArea)
下図は名簿を利用したMATCH関数の使用例です。
セル[D2]の値を、セル範囲[B3:B9]から検索し、相対的な位置をセル[F2]に表示します。
MATCH関数の特徴
MATCH関数は便利で使用しやすい関数です。その特徴をしっかりと把握しておきましょう。
「検査範囲」内に空白セルが含まれている場合
検査範囲内に空白セルが含まれている場合、そのセルは無視された状態で検索が行われます。
「照合の型」の違い
【照合の型が「0」】「完全一致」しない検査値はエラーになります。
【照合の型が「1」】「検査値以下の最大値」を検索します。
検査範囲は、昇順に並べ替えておく必要があります。
【照合の型が「-1」】「検査値以上の最少値」を検索します。
検査範囲は、降順に並べ替えておく必要があります。
「検査範囲」に同じ値が複数存在する場合
検査範囲内に同じ値が複数存在した場合は、最も上の値が優先されます。
MATCH関数の応用(1)
MATCH関数はその特性からINDEX関数と相性が良く、組み合わせての使用すると便利です。ここでは、その代表的な使用法を例に挙げます。
●行・列の値を、それぞれMATCH関数で検索し、それらを基にINDEX関数で指定したセル範囲から値を取り出します。
MATCH関数の応用(2)
MATCH関数は配列数式として利用することの出来る関数です。
●性別が男で、かつ英検が2級の人物の位置を返します。
上図では、該当人物は一人ですが、複数の場合は、「照合の型」で結果が異なります。
・照合の型が「0」:検査範囲の中で、最も上位の人物の相対位置を返す。
・照合の型が「1」又は省略:検査範囲の中で、最も下位の人物の相対位置を返す。
・照合の型が「-1」:エラー