とつぜん始まるExcelの使い方
INDEX関数と合わせて使われやすいMATCH関数。
今回はMATCH関数単体で機能を見ていきます。
MATCH関数の機能
指定した1列、または1行から値を検索し
対象が何番目にあるかを表示します。
関数
=MATCH(検査値,検査範囲,[照合の種類])
・検査値
検索する値や、値の入ったセルを指定する
・検査範囲
検索する範囲を1行か1列だけ指定する。
・照合の種類
「1」「0」「-1」のいずれかを選択。
入力を省略すると「1」を選んだことになる、
そういう意味なので[]がついています
※”照合の種類”の数字の意味
1 | 検査値がない場合それ以下の最大値を選択 検索対象を昇順に並べる必要がある |
0 | 完全一致のみを検索 |
-1 | 検査値がない場合それ以上の最小値を選択 検索対象を降順に並べる必要がある |
使用例
検索対象を確認
社員リストがこのようにあるとします。
ここからデータを検索します。
リストの横に検索欄を追加します。
ではMATCH関数を入力していきましょう
入力例
セルI5に「=MATCH()」と入力したら
ひだりの「fx」をクリック、引数を入力していきます。
④検査値
検索する値を直接入力か、値の入ったセルを指定します。
今回は前の画像の①の部分I3を指定します
⑤検査範囲
検索する対象の1行、または1列を指定します。
複数行列を指定するとエラーになります
今回は「B3:B49」を指定します
⑥照合の種類
検索方法を指定します。
今回は完全一致を検索するので「0」と入力します。
それぞれを入力してこのようになりました。
では表示はどうなったでしょうか?
はい、しっかり表示されました
これでMATCH関数は終了です。
とおもいきや…
リストの追加に対応しよう
リストをテーブル化していない場合
社員IDなので新入社員をリストに追加することになりますが、
このままリストに追加すると新入社員は検索対象外になります。
追加してみましょう。
このまま追加したデータを検索しようとすると…
エラーになります。
…というのも、
このせいです
新入社員が入るごとに指定し直すのも面倒ですし、
適当に下に長い範囲を指定するのもデータ管理的に
きれいではありません。
ということで検索対象をテーブル化します。
リストのテーブル化
社員IDリスト内のどのセルでもよいので選択した状態で
挿入タブ テーブル をクリック
すると次のようなウィンドウが開きます。
先頭行は見出しなので
先頭行をテーブルの見出しとして使用する
にチェックを入れます
すると表にフィルターが適応された状態になりました。
これでテーブルとしてExcelに認識されます。
わかりやすいようにテーブル名も
デザインタブから変更しておきます。
ここでは「社員リスト」としておきます。
それではMATCH関数の範囲を訂正しましょう。
MATCH関数の範囲をテーブル名[見出し名]で指定
MATCHの範囲はテーブル名と見出しで指定できます。
検索範囲を”テーブル名[見出し名]”と入力。
テーブル化したあとであれば、テーブル化前と同じ指定の仕方をしても
Excelが自動に認識し↓のようになってくれます。
この状態でリストを追加すると…
きちんと検索してくれました。
テーブル化することで新しく追加されたデータが
テーブルの一部として認識してくれます。
これによりこれ以降追加したデータも検索対象として
自動的に検索範囲を拡大してくれます。
照合の種類による違い
これまでは完全一致のみを対象にしました。
カンタンに別の照合による違いを記しておきます。
今回のような社員リストでは使いみちはありませんが、
例えばテストの点数によって5段階評価する場合など
自動評価するなどに使用できます。
照合の種類が「1」の場合
検索対象を昇順に並べる必要があります。
この場合は検査値「055000」が存在しないので
それ以下の最大の数字のである「050008」の
行数「5」を表示しています
照合の種類が「-1」の場合
検索対象を降順に並べる必要があります。
この場合では検査値「435000」が存在しないので
それ以上の最小の数字「440001」の
行数である「6」を表示しています
-Excel MOS対策講座-(順次追加作成中)
MOS2016 もくじへ
MOS2016 エキスパートもくじへ
MOS365&2019 もくじへ
-VBA講座-
未作成
-関数の使い方-
VLOOKUP関数の使い方
MATCH関数の使い方
INDEX関数の使い方
IFS関数の使い方
CLEAN関数の使い方
AND OR NOT 関数の使い方
PHONETIC関数の使い方
XLOOKUP関数の使い方
-条件付き書式-
土日祝日に条件付き書式で色をつけろ!