指定した値の位置を特定したいMATCH関数-GSS/Excel/関数

指定した値の位置を特定したいMATCH関数-GSS/Excel/関数

データの位置を検索するMATCH関数

大量のデータの中から特定の値がどの位置にあるかを知りたいことってありますよね。商品一覧から特定の商品名の行番号を知りたい、従業員リストから特定の人の位置を特定したいなど、日常的な業務でよく遭遇する場面です。

今回はMATCH関数をご紹介します。MATCH関数は指定した値が範囲内のどの位置にあるかを返してくれる便利な関数です。INDEX関数と組み合わせて使われることも多く、データ分析の基本として覚えておきたい関数の一つです。

【サンプルデータの表示画像】
A列に商品名、B列に価格、C列に在庫数が入力されたスプレッドシートの例

いつものように、サンプルデータを使って説明していきます。A列に商品名、B列に価格、C列に在庫数が入力されています。このデータから特定の商品名が何行目にあるかを調べてみましょう。

MATCH関数の構文

=MATCH(検索値, 検索範囲, 照合の型)

パラメータの詳細は以下の通りです:

  • 検索値:探したい値(文字列や数値)
  • 検索範囲:検索を行う範囲(通常は1列または1行)
  • 照合の型:検索方法を指定(0:完全一致、1:以下の最大値、-1:以上の最小値)
重要: 照合の型は通常「0」(完全一致)を使用します。これが最も一般的で安全な使い方です。

基本的な使用例

具体的な例を見てみましょう。商品名「ノートパソコン」が商品リストの何行目にあるかを調べる場合:

A列(商品名) B列(価格) C列(在庫数)
1 デスクトップPC 80000 5
2 ノートパソコン 65000 12
3 タブレット 35000 8
4 スマートフォン 25000 20
=MATCH("ノートパソコン", A1:A4, 0)

この関数は「2」を返します。なぜなら「ノートパソコン」は検索範囲A1:A4の2番目の位置にあるからです。

実践的な活用例

実際の業務では、検索値を別のセルから参照することが多いです。例えば、E1セルに検索したい商品名を入力し、F1セルでその位置を取得する場合:

=MATCH(E1, A:A, 0)
ポイント: A:Aのように列全体を指定することで、データが増えても対応できる柔軟な関数になります。

【実践例の表示画像】
E1セルに「タブレット」、F1セルに=MATCH(E1,A:A,0)が入力され、結果として「3」が表示されている例

エラーハンドリングの重要性

MATCH関数は検索値が見つからない場合、#N/Aエラーを返します。これを防ぐために、通常はIFNA関数やIFERROR関数と組み合わせて使用します:

=IFNA(MATCH(E1, A:A, 0), "見つかりません")

この書き方により、検索値が見つからない場合でも「見つかりません」というメッセージが表示され、エラーによる計算の中断を防げます。

照合の型の使い分け

照合の型(3番目の引数)には以下の3つのオプションがあります:

照合の型 動作 使用場面
0 完全一致 一般的な検索(最も推奨)
1 検索値以下の最大値 昇順にソートされたデータでの近似検索
-1 検索値以上の最小値 降順にソートされたデータでの近似検索
注意: 照合の型に1や-1を使用する場合は、データが適切にソートされている必要があります。ソートされていないデータでは予期しない結果になる可能性があります。

INDEX関数との組み合わせ活用

MATCH関数は単独でも便利ですが、INDEX関数と組み合わせることで真価を発揮します。例えば、商品名から価格を取得する場合:

=INDEX(B:B, MATCH(E1, A:A, 0))

この組み合わせにより、以下のような流れで値を取得できます:

  1. MATCH関数でE1セルの商品名がA列の何行目にあるかを特定
  2. INDEX関数でその行番号のB列(価格列)の値を取得
実用例: この組み合わせは「動的な検索機能」として非常に強力で、VLOOKUP関数の代替としても活用できます。

【INDEX+MATCH組み合わせ例の表示画像】
E1に「スマートフォン」、F1に=INDEX(B:B,MATCH(E1,A:A,0))が入力され、結果として「25000」が表示されている例

まとめ

MATCH関数の使い所

  • 大量のデータから特定の値の位置を特定したいとき
  • INDEX関数と組み合わせて柔軟な検索機能を作りたいとき
  • データの並び順や位置を調べたいとき

構文

=MATCH(検索値, 検索範囲, 照合の型)

実用的な例文

基本形:=MATCH("検索したい値", A:A, 0)
エラー対応:=IFNA(MATCH(E1, A:A, 0), "見つかりません")
INDEX組み合わせ:=INDEX(B:B, MATCH(E1, A:A, 0))

覚えておきたいポイント

  • 照合の型は基本的に「0」(完全一致)を使用
  • エラーハンドリングを忘れずに実装
  • INDEX関数との組み合わせで検索機能が大幅に向上
  • 列全体指定(A:A)でデータ増加に対応

MATCH関数をマスターすることで、データ分析の効率が大幅に向上します。ぜひ実際のデータで試してみて、使いこなせるようになってくださいね!

コメントを残す