スプレッドシートのMATCH関数で指定値の相対的な位置を返す

スプレッドシートのMATCH関数

スプレッドシートで検索した値の相対的な位置を返してくれるMATCH関数について解説します。

MATCH関数とは

MATCH関数とは、指定した値と一致する範囲内のアイテムの相対的な位置を返す関数です。構文は下記の通りです。

=MATCH(検索キー, 範囲, 検索の種類)

検索キーは検索する値、範囲は検索する範囲、検索の種類は省略可能で、デフォルトは1となり、昇順で並べ替えられていると想定し、検索キー以下の最も大きい値を返す。0の場合は完全一致を示し、範囲が並べ替えられていない場合に必須。-1の場合は範囲が降順で並べ替えられていると想定し、検索キー以上の最も小さい値を返す。

MATCH関数のポイント
  • 検索値の範囲内での相対的な位置を返す
  • 検索値が文字列の場合は""(ダブルクォーテーション)で括る
  • 検索値はセルを指定すること可能
  • index関数と組み合わせることが多い

MATCH関数の使い方

それでは実際にMATCH関数を使ってみましょう。名前と点数の表から佐々木さんの位置を調べます。

=match(“佐々木”,B3:B9,1)

佐々木さんは上から4番目なので4という数値が表示されます。なお検索値は文字列ではなくセルを指定することも可能なので『佐々木』の代わりに佐々木が入ったセルである「B6」を指定しても同様の結果となります。セルを指定することで検索窓のように打ち込んだ値を検索値とできるためより実践的な運用ができます。

スプレッドシートのmatch関数で範囲内の相対的な位置を返す

MATCH関数で別シートを読み込む

match関数で別のシートを読み込むにはどうすればいいでしょうか。

例えば『成績表』というシートから読み込みたい場合は下記の様に記述します。

=match(“佐々木”,’成績表’!B3:B9,1)

スプレッドシートで別シートの値を参照する方法
スプレッドシートで別シートのデータを参照する方法について画像を交えてわかりやすく説明します。

別シートのデータを読み込むことで、変更を加えて欲しくないセルやシートを保護しながら第三者と共有するなんてこともしやすくなります。

MATCH関数で部分一致

MATCH関数の検索値を部分一致にするにはワイルドカードを使用します。

?(疑問符)で任意の1文字

例えば文字列に『?』を入れると任意の1文字が挟まれた文字だけが条件に一致するようになります。

*(アスタリスク)で任意の数文字

間に任意の数文字を条件として指定したい場合は『*』(アスタリスク)を使用します。

例:下記のテキスト範囲に『?』と『*』を用いて条件付き書式を設定してみました。

アイス
アリス
アムス
アキレス
アリストテレス
アリとキリギリス

ワイルドカードを用いた文字列の判定

index関数と組み合わせる

match関数はindex関数と使われることが多く、一緒に使うことで簡易検索のような仕組みを作ることも可能です。

スプレッドシートでindex関数とMATCH関数を組み合わせる
スプレッドシートのINDEX、MATCH関数で簡易検索を実装
スプレッドシートのINDEX関数とMATCH関数を組み合わせて、検索した値に紐づいた別の値を取り出す方法について解説します。

まとめ

検索した値の相対的な位置を返してくれるMATCH関数について解説しました。

スプレッドシートの関数の基本的なものを紹介しています。

便利な数式と関数
スプレッドシートで最初に覚えたい便利な基本関数一覧
スプレッドシートで最初に覚えると便利な使い勝手のいい基本的な関数を紹介します。

スプレッドシートの使い方については下記の記事でまとめていますので併せてお読みください。

スプレッドシートの使い方完全マニュアル
スプレッドシートの使い方 完全マニュアル
スプレッドシート初心者が一通り使えるようになるまでの知識を体系的にまとめました。