スプレッドシートで検索した値の相対的な位置を返してくれるMATCH関数について解説します。
MATCH関数とは、指定した値と一致する範囲内のアイテムの相対的な位置を返す関数です。構文は下記の通りです。
=MATCH(検索キー, 範囲, 検索の種類)
検索キーは検索する値、範囲は検索する範囲、検索の種類は省略可能で、デフォルトは1となり、昇順で並べ替えられていると想定し、検索キー以下の最も大きい値を返す。0の場合は完全一致を示し、範囲が並べ替えられていない場合に必須。-1の場合は範囲が降順で並べ替えられていると想定し、検索キー以上の最も小さい値を返す。
それでは実際にMATCH関数を使ってみましょう。名前と点数の表から佐々木さんの位置を調べます。
=match(“佐々木”,B3:B9,1)
佐々木さんは上から4番目なので4という数値が表示されます。なお検索値は文字列ではなくセルを指定することも可能なので『佐々木』の代わりに佐々木が入ったセルである「B6」を指定しても同様の結果となります。セルを指定することで検索窓のように打ち込んだ値を検索値とできるためより実践的な運用ができます。
match関数で別のシートを読み込むにはどうすればいいでしょうか。
例えば『成績表』というシートから読み込みたい場合は下記の様に記述します。
=match(“佐々木”,’成績表’!B3:B9,1)
別シートのデータを読み込むことで、変更を加えて欲しくないセルやシートを保護しながら第三者と共有するなんてこともしやすくなります。
MATCH関数の検索値を部分一致にするにはワイルドカードを使用します。
例えば文字列に『?』を入れると任意の1文字が挟まれた文字だけが条件に一致するようになります。
間に任意の数文字を条件として指定したい場合は『*』(アスタリスク)を使用します。
例:下記のテキスト範囲に『?』と『*』を用いて条件付き書式を設定してみました。
アイス
アリス
アムス
アキレス
アリストテレス
アリとキリギリス
match関数はindex関数と使われることが多く、一緒に使うことで簡易検索のような仕組みを作ることも可能です。
検索した値の相対的な位置を返してくれるMATCH関数について解説しました。
スプレッドシートの関数の基本的なものを紹介しています。
スプレッドシートの使い方については下記の記事でまとめていますので併せてお読みください。