MATCHで位置を見つける
行または列の中で値がある位置を特定します。
「MATCHで位置を見つける」はCoddyKit上の無料Excel Formulas Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはExcel Formulas Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Excel Formulas Academyコースには全4レッスンが含まれています。
MATCH関数を知る
INDEXが位置によって値を取得するのに対し、MATCHは反対に、値がどの位置にあるかを返します。
MATCHに検索する値と検索範囲を渡すと、その値が見つかった位置を数値で返します。
MATCHは値そのものではなく、位置だけを返します。この数値が、INDEXが処理を行うために必要なものです。
MATCHの構文
MATCHには3つの引数があります。
- lookup_value — 検索する値
- lookup_array — 検索対象の範囲
- match_type — 照合方法:0、1、または -1
一般的な使用例は=MATCH("Cherry", B2:B6, 0)です。末尾の0は「完全一致を検索する」という意味です。
通常の検索では、ほとんどの場合0を使用します。
=MATCH("Cherry", B2:B6, 0)結果を読み取る
B2:B6にApple、Banana、Cherry、Date、Figが入っているとします。=MATCH("Cherry", B2:B6, 0)を実行すると3が返されます。
なぜ3なのでしょうか。Cherryは範囲内の3番目の項目だからです。MATCHはB2:B6の先頭から数え、Cherryを位置3で見つけました。
答えはCherryという単語ではなく、位置を表す数値であることに注目してください。この位置が、次のレッスンでINDEXに渡す橋渡しになります。
=MATCH("Cherry", B2:B6, 0)match_type 0が重要な理由
3番目の引数によって、MATCHの検索方法が決まります。
- 0 — 完全一致。値が正確に見つかる必要があり、順序は問いません
- 1 — 検索値以下の最大値。データは昇順に並んでいる必要があります
- -1 — 検索値以上の最小値。データは降順に並んでいる必要があります
商品コードや名前のような特定の項目を検索する場合は、必ず0を使用してください。他のモードは、並べ替えられた数値範囲に使用します。
=MATCH("East", A2:A20, 0)数値も照合する
MATCHはテキストだけでなく、数値にも同じように使用できます。C2:C8に注文IDが入っていて、ID 5042がどこにあるかを調べたい場合は、=MATCH(5042, C2:C8, 0)と入力します。
5042がその範囲の4番目の行にある場合、MATCHは4を返します。
検索値にはセル参照も使用できます。=MATCH(E1, C2:C8, 0)はE1に入力されたIDを検索するため、E1を変更すると検索結果も更新されます。
=MATCH(E1, C2:C8, 0)行を横方向に検索する
MATCHは、範囲が縦方向か横方向かを問いません。位置を数えるだけです。
1行目のB1:M1にJan、Feb、Marなどの月の見出しが入っているとします。「Mar」がどの列にあるかを調べるには、=MATCH("Mar", B1:M1, 0)と入力します。結果は3です。
この横方向の使い方は、行の位置と列の位置を別々に照合する、2方向の検索に欠かせません。
=MATCH("Mar", B1:M1, 0)MATCHで見つからない場合
検索した値が範囲内に存在しない場合、MATCHは#N/Aエラーを返します。これは単に「利用できない」という意味です。
たとえば、Mangoを含まないリストに対して=MATCH("Mango", B2:B6, 0)を実行すると、#N/Aが返されます。
これは正常な動作であり、数式が壊れているわけではありません。後で検索をIFNAやIFERRORで囲み、生のエラーの代わりにわかりやすいメッセージを表示する方法を学びます。
=MATCH("Mango", B2:B6, 0)完全一致では順序を問わない
match_type 0の大きな利点は、データを並べ替える必要がないことです。MATCHは範囲を検索し、最初に見つかった完全一致の位置を返します。
そのため、地域のリストがアルファベット順でも、完全に順不同でも、=MATCH("West", A2:A20, 0)はWestを正しく見つけます。
この自由度があるため、完全一致はほとんどすべての実用的な検索でデフォルトの選択肢になります。
=MATCH("West", A2:A20, 0)並べ替えられたデータで近似一致を使う
A2:A6に0、100、500、1000、5000が入っていて、=MATCH(750, A2:A6, 1)を実行すると、結果は3です。750を超えないしきい値のうち、500が最大だからです。
成績表や価格表で、値を適切な区分に割り当てるときに使われる方法です。
=MATCH(750, A2:A6, 1)MATCH単独では不十分なことが多い
MATCH単独では位置番号しかわからないため、最終的な答えとしてはあまり役に立ちません。「顧客は7行目にいます」という情報は、あくまで途中の結果です。
通常必要なのは、その位置にあるデータ、つまり顧客のメールアドレス、残高、またはステータスです。
そのため、MATCHが単独で使われることはほとんどありません。次のレッスンでは、MATCHが返した位置をそのままINDEXに渡し、必要な実際の値を取得します。
=MATCH(E1, A2:A100, 0)2つの次元に2つのMATCHを使う
MATCHを2回実行すると、行と列をそれぞれ独立して特定できます。一方のMATCHでラベルの列を検索して行の位置を見つけ、もう一方のMATCHで見出しの行を検索して列の位置を見つけます。
たとえば、=MATCH("East", A2:A10, 0)で「East」がある行を見つけ、=MATCH("Q3", B1:E1, 0)で「Q3」がある列を見つけます。
この2つの数値を組み合わせると、INDEXに渡せる正確なセルを指定できます。
=MATCH("East", A2:A10, 0)理解度チェック
MATCHが何を返すのか、理解できているか確認しましょう。
まとめ:MATCHは位置を検索する
MATCHは、範囲内にある値の位置を返すことを学びました。
=MATCH(lookup_value, lookup_array, match_type)- 完全一致には0を使用します。データを並べ替える必要はありません
- 昇順のデータで1を使用すると、適切な区分や段階を見つけられます
- 縦方向にも横方向にも使用でき、一致するものがない場合は
#N/Aを返します
MATCHが位置を見つけ、INDEXがその位置を値に変換します。次は、この2つを組み合わせて強力な検索数式を作成します。
=MATCH("Cherry", B2:B6, 0)よくある質問
「MATCHで位置を見つける」レッスンは無料ですか?
はい。「MATCHで位置を見つける」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Excel Formulas Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Excel Formulas Academyコースには全4レッスンが含まれています。
「MATCHで位置を見つける」で何を学びますか?
行または列の中で値がある位置を特定します。 ブラウザで直接実行するハンズオンコードでExcel Formulas Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Excel Formulas Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのExcel Formulas Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「MATCHで位置を見つける」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このExcel Formulas Academyレッスンでコードを書いて実行できますか?
はい。すべてのExcel Formulas Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。