インデックスマッチ:Vlookupのより良い代替手段

公開: 2021-10-23

VLOOKUPは、Excelを優れたものにする関数の1つです。 多くの人は最初は直感的ではないと思うかもしれませんが、すぐに第二の性質になり、不可欠になります。 人生を変えるものだとさえ思う人もいます。 VLOOKUPには問題がありますが、1つは、左から右にしか読み取れないことです。 参照列の左側にある値を検索する必要がある場合は、関数を使用するためにワークシートを再配置する必要があります。

VLOOKUPは、実際には2つしか使用していないのに、多くの列をキャンバス化します。 標準の構文は相対的な列の値のみを参照します。テーブルを変更すると、もう一度運が悪くなり、少し再編成して関数を書き直す必要があります。これは、大きなワークブックでは非常に面倒な場合があります。 これにより、関数を他の列にコピーする際にも問題が発生します。

ただし、INDEX + MATCHという代替手段があります。 機能を複製するだけでなく、独自の特典やボーナスもあります。 これは今まで聞いたことがないかもしれませんが(特にExcelについて楽しく読んでいない場合)、この記事の終わりまでに、それを実践して報酬を得ることができるようになります。

INDEX + MATCHの内訳

多くのユーザーが見落としているのは、Excelの機能を連鎖させて組み合わせることで、構成要素よりもさらに強力なものを作成できることです。 各関数は引数を取ります。もう少し強力な機能や拡張機能が必要な場合は、これらの引数を他の関数で作成できます。

索引

= INDEX(配列、行番号)

INDEX関数は、ユーザー配列、列などの値のセットを受け取り、その特定の位置にあるセルの値を返します。 たとえば、過去のある時点で開催されたレースのポジションを記録したデータの列があります。 どのドライバーが3位でフィニッシュしたか知りたいのですが、これを見つけるには簡単に入力できます。

= INDEX(B2:B6、3)

エクセルデータの例

これでRustyShacklefordが返されます。

シンプルだが便利。 配列内で値を返す機能が追加されました。

マッチ

= MATCH(ルックアップ値、ルックアップ配列、一致タイプ)

MATCH()は、先ほど説明したINDEX関数に関連するもう1つの単純な関数です。 ただし、値を返す代わりに、配列内の値の相対位置を示す数値を返します。 MATCHには次の引数が必要です。 値、検索する配列、および一致タイプ。 マッチタイプは通常0に設定されますが、使用法によって異なります。 0は完全一致のみが必要であることを示し、1または-1は完全一致がない場合は次に近い値が必要であることを示します。

上記のレース例を使用すると、見つける必要のあるドライバーはわかっていますが、最終レースの順位での彼の位置はわかりません。 位置は相対的であるため、最初の位置から始まる結果全体をカバーするようにする必要があります。

= MATCH(“キルゴアトラウト”、B2:B6、0)

エクセルデータの例

これは4の値を返します。トップからスタートしたので、この特定のレースでトラウトが4位でフィニッシュしたことがわかります。

インデックスマッチ

たぶん、あなたは私たちが今どこに向かっているのかを見るかもしれませんし、あるいはあなたは良いものにたどり着くために先にスキップしたかもしれません。 INDEX + MATCHを使用すると、これら2つの単純な関数を組み合わせて、信頼できるVLOOKUPよりも類似しているが、より柔軟なものを作成できます。 これを数回読む必要がある場合でも心配しないでください。最初は少し注意が必要です。 コンポーネントから再構築するのは本当に簡単ですが、何が起こっているのかを把握したら。

INDEXは特定の値を返します。 これは、一連のパラメーターが与えられた場合のVLOOKUPの主要な機能です。 必要な値をすばやく見つけることができます。 今私たちが見逃しているのは、行の位置を見つける方法だけです。 これを手動で見つける必要がある場合は、関数の有用性が失われます。 2番目の引数でMATCHを使用することにより、その出力である相対位置を取得し、それをIndex関数にプッシュして、その問題を解決できます。 これで、VLOOKUPとまったく同じことを実行するものができましたが、入力が少し増えました。

機能を実践する

以下の表を使用して、特定の製品IDに関連付けられている製品タイプを把握することに関心があります。

エクセルデータ例2

INDEX MATCHを使用するには、最終的に位置ではなく特定の値を返す必要があるため、INDEXから始めます。 INDEX内には、INDEX関数の位置を返すMATCHが含まれています。

= INDEX(A2:A6、MATCH(8316、B2:B6,0))

ここで起こっていることは、Match関数によって提供される列Bの行の値を列Aで検索することです。

一致関数内で、B2:B6の製品IDコードを調べて、値8316の位置を送り返す必要があることを指定します。この場合、位置4にあり、これは書き込みに相当します。

= INDEX(A2:A6、4)

Excelは関数を実行し、指定されたID番号の配列内の位置を見つけます。 その位置を取り、A列で同じ行を探し、特定のIDのトラックタイプを返します。 したがって、最終的には、入力にもう少し柔軟性を持たせて同じ結果を得ることができます。

関数の特典

INDEX + MATCHの能力は、より少ないデータ選択から得られます。 15列あり、1と15の数字のみを使用している場合、なぜ他のすべてを取り込むのですか? これにより、大規模なデータセットの実行時間を短縮できます。

VLOOKUPとは異なり、インデックスが列を配置する場所に関係なく、インデックスが左または右に読み取ることができる2番目の拡張機能は、最初の配列の左または右にあるかどうかに関係ありません。 上記の例をもう一度見ると、それは私たちが行ったことであり、右から左に向かって作業しています。 選択範囲内のどこかに相対的な列番号を入力するのではなく、必要な2つの列を手動で指定する必要があるため、この機能は品質保証チェックとしても機能します。

もっとビジュアルが必要ですか? 広告コピーテンプレートに最終URLを挿入するインデックスマッチの例の画面記録をご覧ください。

結論

さあ、INDEX + MATCHで遊んでください。 これは、ルックアップ機能を強化できる非常に強力な機能です。 カチッと音がするなら、あなたは売られて、決して振り返らないと確信しています。 何か新しいことを試みるときは、常に少しの学習曲線があります。しばらくの間、インデックスマッチを使用することを約束してください。 最初は不格好ですが、すぐにメリットがわかります。

———-
ジェナ・ケリーによって更新された投稿(前の投稿日:2014年2月3日)