Excel XMATCH関数で条件に一致するセルの位置を特定する

Excel

XMATCH関数は、指定した範囲で条件に一致するセルの位置を特定することができます。この関数は単体で使うことはほとんどありませんが、他の関数と組合せると便利な関数です。

INDEX関数と組合せることで、条件に一致したデータを抽出することができます。

VLOOKUP関数の列番号をXMATCH関数を使って見出しのセルの位置を特定することもできます。

また、INDIRECT関数の参照範囲をXMATCH関数を使って動的に変更することもできます。

XMATCH関数の使い方

XMATCH関数の書式は下記である。

XMATCH関数

=XMATCH(検索値, 検索範囲, [一致モード], [検索モード],)

検索値:特定したいセルの値
検索範囲:検索する配列や範囲
一致モード(省略可):一致の種類。規定値は0。
 0:検索値と完全一致したセルの位置を返す。
 -1:検索値と完全一致したセルの位置を返す。見つからなければ次に小さい値のセルの位置を返す。
 1:検索値と完全一致したセルの位置を返す。見つからなければ次に大きい値のセルの位置を返す。
 2:ワイルドカード(*や?)を使用した検索値と一致したセルの位置を返す。
検索モード(省略可):検索モード。規定値は1
 1:先頭から検索を実行する。
 -1:末尾から検索を実行する。
 2:検索範囲が昇順で並べられているばあい、バイナリ検索を行う。
 -2:検索範囲が降順で並べられているばあい、バイナリ検索を行う。

基本的な使い方

XMATCH関数の範囲は列と行のどちらも指定することができます。

XMATCHの結果は、選択範囲の先頭と一致すれば「1」となります。それ以降は先頭からの1つずつ数が大きくなります。

完全一致で先頭から検索する場合は、第3引数(一致モード)と第4引数(検索モード)は省略できます。

列を指定した場合

検索範囲に列を指定した時の例は下記です。関数は結果に入力した数式です。

検索値を③にして、検索範囲を「A1:A5」を指定します。
③は先頭から3番目のセルなので、結果は「3」が返ります。

行を選択した場合

検索範囲に列を指定した時の例は下記です。関数は結果に入力した数式です。

検索値を④にして、検索範囲を「A1:E1」を指定します。
④は先頭から4番目のセルなので、結果は「4」が返ります。

一致モードの指定

第3引数の一致モードのを使用した時の例を示します。関数は結果に入力した数式です。

一致モード「0」

一致モード「0」は規定値なので省略しても同じ結果となります。検索値と完全一致したセルの位置を返します。

検索範囲はA列(A1:A5)で検索値は「3」とすると、検索範囲の3番目のセルと一致するので「3」を返します。

一致モード「-1」

一致モード「-1」は完全一致しなければ、検索値の次に小さい値が入力されたセルの位置を返します。

検索範囲はA列(A1:A5)で検索値は「6」とします。検索範囲には6はないので次に小さい値である「5」のセルの位置を返します。

一致モード「1」

一致モード「1」は完全一致しなければ、検索値の次に大きい値が入力されたセルの位置を返します。

検索範囲はA列(A1:A5)で検索値は「0」とします。検索範囲には0はないので次に大きい値である「1」のセルの位置を返します。

一致モード「2」

一致モード「2」はワイルドカードを使った条件と一致したセルの位置を返します。

検索範囲はB列(B1:B5)で検索値は「C?」とします。「?」は任意の1文字という意味なので、Cから始まる2文字が検索値となります。これと一致するのは先頭から3番目のセルの「CC」なので「3」を返します。

検索モード

第4引数の検索モードのを使用した時の例を示します。関数は結果に入力した数式です。

検索モード「1」

検索モード「1」は規定値なので省略しても同じ結果となります。先頭から検索し検索値と一致したセルの位置を返します。

検索範囲はA列(A1:A5)で検索値は「3」とすると、検索範囲の先頭から数えて最初のに「3」が現れる3番目のセルと一致するので「3」を返します。

検索モード「-1」

検索モード「-1」末尾から検索し検索値と一致したセルの位置を返します。

検索範囲はA列(A1:A5)で検索値は「3」とすると、検索範囲の末尾から数えて最初のに「3」が現れるのは、末尾から2番目、つまり先頭から4番目セルと一致するので「4」を返します。

検索モード「2」

検索モード「2」は検索範囲の値が昇順でなければ、正しい結果が得られません。先頭から検索し検索値と一致したセルの位置を返します。検索方法はバイナリ検索で実施するため、データ量が大量のときは検索モード「1」よりも短時間で処理ができます。

検索範囲はA列(A1:A5)で検索値は「3」とすると、検索範囲の先頭から数えて最初のに「3」が現れる3番目のセルと一致するので「3」を返します。(結果は検索モード「1」と同じとなります。)

検索モード「-2」

検索範囲はA列(A1:A5)で検索値は「3」とすると、検索範囲の末尾から数えて最初のに「3」が現れるのは、末尾から3番目、つまり先頭から3番目セルと一致するので「3」を返します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です