【Excel】検索値の相対的な位置を返す(XMATCH関数)

Microsoft 365やExcel 2021など、最新のバージョンで利用できる検索系関数です。
これまで広く使われたMATCH関数の上位互換がXMATCH関数となります。

x_m_20250618_002.png
XMATCH関数

  「=XMATCH(検索値, 検索範囲, [一致モード], [検索モード]) 」
 XMATCH 関数は、指定した値を範囲内から検索して、その相対的な位置を返します。
 検索値 (必須):全角/半角は区別、英字の大文字/小文字は区別なし
 検索範囲 (必須):検索する配列または範囲
 [一致モード] (オプション):一致の種類を指定します
 [検索モード] (オプション):使用する検索モードを指定します

以下 操作例 XMATCH関数が学籍番号の上からの位置を返します  x_m_20250618_003.png

  1. 学籍番号(H4のセル)にA列を参照して値を反映させます
    セルH4をクリックし、「数式」タブ>「検索/情報」>「XMATCH」を選択し「OK」をクリックします。
    x_m_20250618_004.png
  2. 検索値:H4
    検索範囲:A2からA31を指定
    一致モード:省略すると「完全一致」
    検索モード:省略すると「先頭から末尾」
    「OK」をクリックします。
    x_m_20250618_005.png
  3. 上図だと入力した学籍番号「99x0017」はセルA2からA31の範囲で上から「14番目」なので順位「14」と表示されます

ほかの関数と組み合わせる

  指定した範囲から、行番号と列番号を元にデータを取得するINDEX関数を組み合わせてみましょう。
  「=INDEX(配列, 行番号, [列番号]) 」
 INDEX 関数は、指定した値を範囲内から検索して、値を返します。
 配列 (必須):セル範囲または配列定数を指定
 行番号 (必須):列番号が存在する場合を除き、必須
 [列番号] (オプション):取得したい値の列番号(省略した場合は、範囲の最初の列)

以下 操作例 XMATCH関数が学籍番号の行番号を返し、INDEX関数が値を返します  x_m_20250618_006_2.png

  1. セルG3をクリックし、「数式」タブ>「検索/情報」>「INDEX」を選択し「OK」をクリックします。
    x_m_20250618_007.png
  2. 引数の選択は規定のまま「OK」をクリックします。
  3. x_m_20250618_008.png
  4. 配列:D2からD31を指定します。
    x_m_20250618_009_2.png
  5. 行番号にXMATCH関数で学籍番号を検索(完全一致)を組み合わせていきます。
    x_m_20250618_010_2.png
  6. 検索値:G3
    検索範囲:A2からA31を指定
    一致モード:省略すると「完全一致」
    検索モード:省略すると「先頭から末尾」
    「OK」をクリックします。
    x_m_20250618_011_3.png
  7. 学籍番号を入力するとINDEX関数で指定した値が表示されます。
    x_m_20250618_012_3.png