MATCH(マッチ)関数の使い方
関数概要
MATCH(マッチ)関数は、一行または一列の範囲から、条件に適合する位置が何番目にあるのか、または何番目までなのか? を数字で指定してくれます。
構文 | =MATCH(検査値, 検査範囲, 照合の種類) |
---|---|
使用例 |
=MATCH(“榊裕次郎”, B2:B10, 0) =MATCH(30000,D2:D10,-1) =MATCH(30000,D2:D10,1) |
[char no=”1″ char=”さえちゃん1”]MATCH関数はVLOOKUP関数の救世主としても使うことができて、私はとっても感謝している関数です。ただ、単体で使うことはあまりなく、どうしてもMATCH関数を使う数式は複雑になりがちなので、必ずコメントやメモ機能を使って、どういうことをしているのか、チームで共有できるよう説明書きを入れておくことをおすすめします[/char]
動画解説
関数説明
この関数は、第3引数が覚えにくいので3つの例でご説明します。
MATCH関数は[数式]タブ→関数ライブラリの中の[検索/行列]にあります。
第3引数を「0」で使用するケース
以下の範囲で、「Shiori Soma」さんが上から何番目にあるのか? をカウントします。
検査値:Shiori Soma
検索範囲:D3:D9
照合の種類:0
結果は選択範囲の「Yuka Mizouchi」さんから数えて「6」番目と出力されます。
第3引数を「0」にして使用する場合は、完全一致する場合に扱うため利用頻度は最も高いです。
第3引数を「-1」で使用するケース
以下の表で、180,000円以上の売り上げを出した人は何人いるのかを求めてみましょう。
まず、表に対してMATCH関数を使用する準備を行います。売上データ「Total JPY」の列を「降順」に並び替えをします。
MATCH関数は、以下の入力を行います。
検査値:180000
検査範囲:E3:E9
照合の種類:-1
データ位置は「3」となりました。
この照合は、上から数えて3番目という意味となります。そのため、データを降順に並び替えをしておかないと、うまく探せない仕組みのため#N/A(ノーアサイン)エラーが出力されます。
第3引数を「1」で使用するケース
最後に1で使用するケースです。前述の逆なので、細かいキャプチャは割愛します。
検査値:180000
検査範囲:E3:E9
照合の種類:1
この場合、180,000円以下の人は何人か? を数えることができます。
「数える」というと語弊があるかもしれませんが、180,000円までのデータを探し、選択した範囲の上から何番目か? を知らせてくれます。
第3引数を「-1」「1」で使用するケースは、事前にデータの「降順」・「昇順」の並び替え操作が必要であることを覚えておいてください。
さえちゃんのMATCH関数ワンポイントアドバイス
[char no=”4″ char=”さえちゃん3”]VLOOKUP関数で参照しているデータ範囲のカラムが変動する場合、MATCH関数を使うことで回避することができます。[/char]
普通にVLOOKUP関数を使うとこのようになります。
ただ、誰かがAとBの列の間に別のカラムを挿入した場合、VLOOKUP関数は変わらず2列目を選択します。B列を挿入したとしても、VLOOKUP関数の第3引数は「2」のままだからです。
相対参照のように「3」とはなってくれないんですね。
この列番号をMATCH関数で回避します。列番号に「MATCH()」と入力します。
数式バーでMATCH()のかっこの中をクリックしましょう。「MATCH()」の文字列内であればどれでも構いませんが、正確な操作はかっこの中がベストです。
引数ダイアログがMATCH関数に切り替わります。
「Name」という見出し番号を取得するため、このように入力します。
VLOOKUP関数に戻ります。関数に関数を入れる操作のことを、ネストというのですが、これがネスト操作になります。数式バーで引数ダイアログを切り替えます。
そしてポイントは、一番外の関数でOKボタンをクリックする、ということです。
これで名前の列をしっかり取得することができました。
列を削除してもきちんとVLOOKUP関数の列番号はName列を取得してくれます。
このデータはどこにあるか? VLOOKUP関数のみならず、MATCH関数はこのようにしてほかの関数をサポートする役目があります。
アイデア次第で困難なワークシートを改善してくれるので、絶対に覚えておきたい関数ですね。
関数ステータス
関数ライブラリの種類
検索/行列
数式の構文
=MATCH(検査値, 検査範囲, 照合の種類)