【Excel:INDEX関数・MATCH関数】VLOOKUPより柔軟!初心者でも使える検索テクニックを徹底解説 | どこでもパソコン教室

【Excel:INDEX関数・MATCH関数】VLOOKUPより柔軟!初心者でも使える検索テクニックを徹底解説

【Excel:INDEX関数・MATCH関数】 Excel 実務効率化

こんにちはどこでもパソコン教室 四日市です。

今回の授業は、VLOOKUPよりも柔軟で実務向きの「INDEX関数」「MATCH関数」の組み合わせを、初心者の方にもわかりやすく解説します!
大量データの検索がグッと楽になりますよ。

最近、VLOOKUPを使っているんですが、列が増えるたびに数式を直すのが大変で……。

もっと楽にできる方法ってないんでしょうか

その悩み、よくわかります。

実務では列追加データ更新が頻繁に起こるので、VLOOKUPだけだと限界を感じますよね。

まさにそれです 毎回修正するのがストレスで……。

そこで提案したいのが INDEX関数 × MATCH関数 の組み合わせです。
実務講座でも「柔軟性が高い」「列追加に強い」と受講生から高評価のテクニックなんですよ。

そんなに便利なんですか

はい。今回の授業をひとことでまとめると、
INDEXMATCHを組み合わせると、VLOOKUPより柔軟でメンテナンスしやすい検索ができる」
ということです。

なるほど… 受講するメリットは何ですか

• 列が増えても数式を直さなくていい
左側の列も検索できる
• 大量データでも高速
VLOOKUP弱点をすべてカバーできる
という点ですね。

すごい…

最終的にはどう使いこなせばいいんでしょう

結論としては、
VLOOKUPを理解している人こそ、INDEX+MATCHを覚えると実務効率が一気に上がる」
ということです。
授業の手順通りに進めれば、誰でも使えるようになりますよ。

VLOOKUP関数が初めての方や、経験者の方の
思い出し作業
におススメの授業です!
広告

INDEX関数とMATCH関数でVLOOKUPの弱点を解消しよう

VLOOKUPを使っていると、 列が増えるたびに数式を修正 したり、 左側の列を検索できなかったり と不便を感じることがあります。

そこで今回の授業では、INDEX関数とMATCH関数を組み合わせた柔軟な検索方法を、初心者の方にもわかりやすく解説します。

 

VLOOKUP関数のおさらい

VLOOKUP(ブイ・ルックアップ)関数について、実際の例を使いながらわかりやすく解説します。
下図は、 都道府県別・年ごとのコンビニ店舗数 をまとめた表です。

【Excel:INDEX関数・MATCH関数】

※統計ダッシュボード (https://dashboard.e-stat.go.jp/)のデータを加工して作成


47都道府県の中から、 お住まいの地域のコンビニ数を知りたい とき、
別表に都道府県名を入力するだけで、その行のデータを一瞬で取り出せるのがVLOOKUP関数です。

【Excel:INDEX関数・MATCH関数】

VLOOKUPVVertical(バーティカル)=垂直の頭文字
• LOOKUP「調べる」という意味
縦方向に同じ項目が並んでいる表から値を検索する関数です。


数式を見てみましょう。

【Excel:INDEX関数・MATCH関数】

VLOOKUPG4,A3:E49,,0)
VLOOKUP G4 A3:E49 2 0
関数名 検索値 範囲 列番号 検索方法
使用する関数の名前 データ表の1列目から探したい値(今回は「都道府県名」)を指定するセル データの範囲 抽出したい情報が何列目にあるか(今回は「表示したい年の列番号」) 完全一致*は「0」or「FALSE」、近似値**は「1」or「TRUE」
* 完全一致とは…「検索値」と全く同じ値を探します。
(※今回の検索値は都道府県名なので、“約北海道”のような値は存在せず、完全一致を使います)
** 近似値とは…「検索値」に近い値も含めて検索します。
(※例:検索値が「100」で、データが「90」と「120」しかない場合、最も近い「90」を返します)
<都道府県名をリスト化して効率よく入力しましょう!>
47都道府県を毎回手入力するのは大変です。
そこで、下図のように リスト化 しておくと、🖱️クリックだけで入力でき、誤入力も防げます。
 
【Excel:INDEX関数・MATCH関数】
リストの作成手順は、こちらの授業で詳しく解説しています。

 

INDEX関数の基礎

INDEX(インデックス)関数とは、 データ範囲「行番号」「列番号」を指定すると、その交差するセルの値を返す関数 です。

ちなみに「INDEX」を直訳すると 索引 という意味になります。

INDEX関数には、

● 1つのデータ表を使う「配列形式」
● 複数のデータ表を使う「セル範囲形式」

の2種類があります。

 

配列形式:INDEX(配列, 行番号, 列番号)

INDEX関数配列形式は、 使用するデータ表が1つの場合 に使います。

例えば、下図のような「かけ算の九九」の表では、👀 目視で見ると「3の段」の「5行目」は『15』ですが、INDEX関数を使うと、 この値を自動で取り出すことができます

 

数式を見てみましょう

行番号列番号は、今回のようにセルに入力しても良いですし、直接数字を入力しても構いません。

【Excel:INDEX関数・MATCH関数】

INDEXC4:F12,C17,D17
INDEX C4:F12 C17(※数字でもOK) D17(※数字でもOK)
関数名 配列 行番号 列番号
使用する関数の名前 データの範囲 抽出したい情報がデータ表の何行目にあるか
抽出したい情報がデータ表の何列目にあるか

 

セル範囲形式:INDEX(参照, 行番号, 列番号, 領域番号)

INDEX関数セル範囲形式は、 使用するデータ表が複数ある場合 に使います。

例えば、下図のように九九の表が左右に2つある場合、同じ「5行目・2列目」でも、 どちらの表を使うか(領域番号)を選択できる のが特徴です。

 

数式を見てみましょう

行番号列番号領域番号は、セルに入力しても、直接数字を入力してもOKです。

【Excel:INDEX関数・MATCH関数】

INDEX(C4:F12,J4:M12),E17,F17,G17
INDEX (C4:F12,J4:M12) E17 F17 G17
関数名 参照 行番号 列番号 領域番号
使用する関数の名前 C4:F12領域番号1J4:M12領域番号2
抽出したい情報がデータ表の何行目にあるか 抽出したい情報がデータ表の何列目にあるか どのデータ表を使用するか

 

MATCH関数の基礎

MATCH(マッチ)関数とは、 検索したいデータが、指定した範囲の中で「何番目」にあるかを返す関数 です。

データ範囲 1列だけ選択した場合は「行番号」 1行だけ選択した場合は「列番号」 を返します。

ちなみに「MATCH」を直訳すると 一致 という意味です。

 

行番号を検索:検索範囲は「一列」を選択

データ範囲一列・・選択した場合は行番号を返します。
複数列選択するとエラー(#N/A)になりますので注意しましょう。

データ範囲一列だけ 選択した場合、MATCH関数行番号 を返します。
複数列を選択すると エラー(#N/A)になるため注意しましょう。

 

数式を見てみましょう

検索値は、今回のようにセルに入力しても良いですし、直接数値文字列を入力しても構いません。

【Excel:INDEX関数・MATCH関数】

MATCHD13,E4:E8,0)
MATCH D13 E4:E8 0
関数名 検査値 検査範囲 照合の種類
使用する関数の名前 データ表の何行目にあるか知りたい値を入力するセル 位置を調べたいデータが並んでいる一列 完全一致は「0」
検査値以下の最大値は「1」
検査値以上の最小値は「-1」

 

列番号を検索:検索範囲は「一行」を選択

データ範囲一行だけ 選択した場合、MATCH関数列番号 を返します。
複数行を選択すると エラー(#N/A)になるため注意しましょう。

 

数式を見てみましょう

検索値は、今回のようにセルに入力しても良いですし、直接数値文字列を入力してもOKです。

【Excel:INDEX関数・MATCH関数】

MATCHD13,B6:H6,0)
MATCH D13 B6:H6 0
関数名 検査値 検査範囲 照合の種類
使用する関数の名前 データ表の何列目にあるか知りたい値を入力するセル 位置を調べたいデータが並んでいる一行 完全一致は「0」
検査値以下の最大値は「1」
検査値以上の最小値は「-1」

 

VLOOKUPとINDEX+MATCHの比較

VLOOKUP関数の大きな特徴のひとつは、検索値(検査値) 必ずデータ表の“一番左の列”にある必要がある という点です。

しかし、INDEX関数 × MATCH関数の組み合わせなら、検索値左端になくても問題ありません

【Excel:INDEX関数・MATCH関数】


さらにもう一つ注目ポイントがあります。
下図のようにデータ表列項目を追加した場合……

【Excel:INDEX関数・MATCH関数】

 VLOOKUP関数は、列番号を手入力で修正する必要があります。
 INDEX × MATCH の組み合わせなら、列番号の修正が不要です。

つまり、データ構造が変わっても数式が壊れにくいという、大きなメリットがあります。

【Excel:INDEX関数・MATCH関数】

 

比較表

項目 VLOOKUP INDEX+MATCH
左側の列を検索 ×
列追加の影響 大きい ほぼなし
柔軟性 低い 高い
大量データ 重くなりやすい 比較的軽い

実務ではINDEX+MATCHの方が圧倒的に使いやすい理由がここにあります

 

INDEX+MATCHの数式を作る手順

INDEX関数とMATCH関数を組み合わせた数式 作成手順 を解説します。

ちなみに、このように  関数の中に別の関数を入れることを「ネスティング(ネスト)」 といいます。

ここでは、上項目『VLOOKUP関数のおさらい』でも使用した  都道府県別・年ごとのコンビニ数の表  を使って説明します。
セル番地は、ご自身の表に合わせて読み替えてください。

【Excel:INDEX関数・MATCH関数】

※統計ダッシュボード (https://dashboard.e-stat.go.jp/)のデータを加工して作成

  1. セルH4を🖱️クリックしてアクティブセル*にします。
    *アクティブセルとは…「セル」とはたくさんあるマス目のことで、「アクティブセル」とはセルの中でも入力できる状態のセルをいいます。
     
    【Excel:INDEX関数・MATCH関数】


  2. 次の手順で INDEX関数を挿入 します。
     
    【Excel:INDEX関数・MATCH関数】

    1.[関数の挿入]ボタンを🖱️クリックします。
    2.「関数の挿入」ダイアログボックスが表示されるので、 関数の検索 「index」と入力します。
    3.[検索開始]を🖱️クリックします。
    4. 関数名 に表示された「INDEX」を🖱️クリックします。
    5.[OK]を🖱️クリックします。

  3. INDEX関数「関数の引数」ダイアログボックスが表示されます
    次の操作を行います。
     
    【Excel:INDEX関数・MATCH関数】

    1.  配列 に🖱️クリックして|」カーソルを入れます。
    2. データを🖱️ドラッグして範囲選択します。
    左上から右下にドラッグするのがコツです)
    3. 後で数式をコピーしても範囲がズレないよう、F4キー絶対参照にします。
    (行・列の前に「$」が付いて固定されます)

  4. INDEX関数「行番号」MATCH関数を入れます。
     
    【Excel:INDEX関数・MATCH関数】

    1. 行番号 を🖱️クリックして|」カーソルを入れます。
    2.「名前ボックス」[▼][その他の関数]を🖱️クリックします。

  5. 「関数の挿入」ダイアログボックスが表示されます
     
    【Excel:INDEX関数・MATCH関数】

    1. 関数の検索 「ma」と入力します。
    2.[検索開始]を🖱️クリックします。
    3. 関数名 に表示された「MATCH」を🖱️クリックします。
    4.[OK]を🖱️クリックします。

  6. MATCH関数「関数の引数」ダイアログボックスが表示されます
     
    【Excel:INDEX関数・MATCH関数】

    1. 検査値 を🖱️クリックします。
    2. 検査値となるセル(今回は都道府県名を入力する A3)を🖱️クリックします。
    3. コピー時にズレないよう F4キー絶対参照にします。
    4. 検査範囲 を🖱️クリックします。
    5. 都道府県名を🖱️ドラッグして範囲選択します。
    6. F4キー絶対参照にします。
    7. 照合の種類 「0」を入力します。

  7. 列番号を求める MATCH関数を入れます。
     
    【Excel:INDEX関数・MATCH関数】

    1. 数式バー「INDEX」を🖱️クリックします。
    2. INDEX関数「関数の引数」ダイアログボックスで、 列番号 を🖱️クリックします。
    3. 名前ボックス「MATCH」を選択します。

  8. MATCH関数「関数の引数」ダイアログボックスが表示されます。
     
    【Excel:INDEX関数・MATCH関数】

    1. 検査値 を🖱️クリックします。
    2. 検査値となるセル(今回は H4 の上にある「1982年」の H3)を🖱️クリックします。
    3. 検査範囲 を🖱️クリックします。
    4. を🖱️ドラッグして範囲選択します。
    5. F4キー絶対参照にします。
    6. 照合の種類 「0」を入力します。
    7.[OK]を🖱️クリックします。

  9. 数式が完成しました
     
    【Excel:INDEX関数・MATCH関数】

    INDEX($B$3:$E$49,MATCH($G$4,$A$3:$A$49,0),MATCH(H3,$B$2:$E$2,0))
    INDEX $B$3:$E$49 MATCH($G$4,$A$3:$A$49,0) MATCH(H3,$B$2:$E$2,0)
    関数名 配列 行番号 列番号
    使用する関数の名前 データの範囲 抽出したい情報がデータ表の何行目にあるか
    抽出したい情報がデータ表の何列目にあるか

     
     数式をすべてのセルにコピー します。
     
    【Excel:INDEX関数・MATCH関数】

    1.」フィルハンドル右方向へ🖱️ドラッグします。
    2. 最初のセルの書式が引きずられます。
    3. オートフィル オプションから「書式なしコピー(フィル)」を🖱️クリックします。
    4. 書式を崩さず、きれいに数式をコピーできます。

 

広告

まとめ

今回の授業は、VLOOKUPよりも柔軟で実務向きの「INDEX関数」「MATCH関数」の組み合わせを、初心者の方にもわかりやすく解説しました!

INDEX関数とMATCH関数を組み合わせることで、
 VLOOKUPより柔軟で、列追加にも強く、実務で使いやすい検索方法 が実現できます。

最初は少し難しく感じるかもしれませんが、
意味を理解しながら数式を作れば、必ず使いこなせるようになります。

情報の抽出にご興味がありましたら、
文字列を取り出す関数もおすすめです。

😄ご受講お疲れさまでした

 

【PR】👩‍🏫パソコンインストラクターが選ぶ〝パソコンライフお役立ちグッズ〟
書籍  Excel関数 やさしい教科書 
Excelの関数基礎からしっかり身につけたい方には、『Excel関数 やさしい教科書』がとてもおすすめです。
図解が多く、INDEXMATCHVLOOKUPなどの“実務でよく使う関数”をやさしく丁寧に解説してくれる一冊です。
「関数が苦手…」という方でもスラスラ読める構成なので、今回の授業で学んだ内容をさらに深めたい方にぴったりです。

コメント

タイトルとURLをコピーしました