【スプレッドシート】XMATCH関数の使い方

GoogleスプレッドシートのXMATCH関数は、MATCH関数の上位互換として使える関数です。引数が省略可能になったことで数式がよりシンプルになり、末尾からの検索やバイナリ検索など、柔軟なデータ検索が可能になりました。この記事では、XMATCHの基本的な使い方と、具体的な使用例をご紹介します。

スポンサーリンク

XMATCH関数の基本

XMATCH関数の使い方

【スプレッドシート】XMATCH関数の使い方

XMATCH関数は、指定した範囲の中で、検索キーの相対的な位置(数値)を返します。

たとえば、指定した範囲(例:A2:A4)から、「ばなな」が何番目にあるかを検索したい場合、数式は次のようになります。

例:=XMATCH("ばなな",A2:A4)

【ポイント】

  • XMATCH関数は、第3引数の「一致モード」を省略した場合でも完全一致(0を検索するため、MATCH関数よりもシンプルに記述できます。

XMATCH関数の引数:(検索キー, 検索範囲, [一致モード], [検索モード])

一致モード(第3引数)

【スプレッドシート】XMATCH関数の使い方

XMATCH関数の一致モードには、一致させる条件を、0-112の数字で指定します。

たとえば、ワイルドカードを使用して「~を含む」を検索したい場合、数式は次のようになります。

例:=XMATCH("*みかん*",A2:A4,2)

【一致モード】

  • 0(省略時):検索値と完全に一致する値のみ、一致とみなします。
  • -1:完全一致する値がない場合に、検索値より小さい次に近い値を検索します。
  • 1:完全一致する値がない場合に、検索値より大きい次に近い値を検索します。
  • 2:ワイルドカード(?*)を使用した文字列に一致する値を、一致とみなします。

ワイルドカードとは、あいまい検索をする時に用いる、任意の文字列を示す特殊な記号です。基本的な解説は「ワイルドカードの使い方」の記事をご覧ください。

検索モード(第4引数)

【スプレッドシート】XMATCH関数の使い方

XMATCH関数の検索モードには、検索する方向を、1-12-2の数字で指定します。

たとえば、検索値を範囲の末尾から検索したい場合、数式は次のようになります。

例:=XMATCH("りんご",A2:A4,0,-1)

【検索モード】

  • 1(省略時):先頭から末尾に向かって検索します。
  • -1:逆方向(末尾から先頭)に向かって検索します。
  • 2:昇順に並べ替えられたデータを、バイナリ検索します。
  • -2:降順に並べ替えられたデータを、バイナリ検索します。

バイナリ検索とは、まず中央値と検索値を比較し、検索範囲を2分割しながら検索していく方法のことです。二分探索法と言い、データ量が多いときに処理を高速化できます。

スポンサーリンク

よくある質問

MATCH関数とXMATCH関数の違いは?

主な違いは以下の通りです。

  • 一致モード:MATCH関数は、完全一致とするために0の指定が必要です。 一方、XMATCH関数は、引数を省略した場合に完全一致となるため、数式がシンプルになります。
  • 検索モード:XMATCH関数は、MATCH関数ではできなかった「末尾からの検索」や、「バイナリ検索」が可能です。 これにより、より柔軟な検索や処理の高速化が可能です。

条件に一致するデータをすべて抽出したい

結果として複数の値を抽出したい場合、FILTER関数が便利です。

  • FILTER関数:条件に一致する値を、すべて抽出します。(詳細はコチラ
  • XLOOKUP関数:条件に一致する最初の行を、指定の範囲から抽出します。(詳細はコチラ

別シートのデータを参照したい

別シートを参照したい場合、'シート名"!A2:B4のように範囲の前にシート名を追加します。

例:=XMATCH(A2,'データ'!A2:A4)


別のスプレッドシートを参照したい場合は、IMPORTRANGE関数を使ってデータを取り込む必要があります。詳しくは「IMPORTRANGE関数の使い方」をご覧ください。

具体的な使用例を知りたい

  • クロス抽出する:INDEX関数と組み合わせて、行と列の2つの条件を指定し、クロスする位置の値を抽出します。(詳細記事はコチラ
  • 検索値の1つ下のセルを抽出する:索値の位置を特定した後、そのセルから相対的にずれた位置の値(例:1つ下のセル)を抽出できます。(詳細記事はコチラ
  • 文字列の最頻値を求める:複雑なデータから特定の値が最も多く出現する位置を特定するために応用できます。(詳細記事はコチラ
タイトルとURLをコピーしました