LoginSignup
1
1

More than 1 year has passed since last update.

【悲報】いまだにVLOOKUP使ってるワイ。。。

Last updated at Posted at 2023-02-20

結論

悪いことは言わねぇから早くINDEX/MATCHに慣れろ!

以下解説

まず、VLOOKUPよりINDEX/MATCH関数を使用するメリットはこんな感じ。

   1. 処理速度が速ええ。
   2. 検索元テーブルのキーワードを一番左に置かなくてOK。
   3. 検索用元データの更新が楽。(範囲ではなく、列指定できるためデータ行追加は自動更新される)
   4. 複数条件指定可能。


はい、1だけで使用する価値ありますね。



例えば、以下のような店舗毎在庫数テーブルがあったとします。

店舗コード、商品コードに合わせて数量を抽出したい場合。

image.png
※項目I3の数量を抽出する関数は項目I4に記載。

検索条件(F3列・G3列)にマッチするレコードを店舗毎在庫数テーブル(B列~D列)から抽出。
列番号3番目の数量項目を返します。

複数条件はこれでOK。


上画像のINDEX,MATBHを分解すると...


    '検索値以外は列指定でOK
    '検索値1を検索範囲1から探すよ~
    '検索値2を検索範囲2から探すよ~
    =INDEX(検索元テーブル, MATCH(検査値1&検査値2, 検査範囲1&検査範囲2, 照合種別 ), 検索元テーブルの返したい列番号 )

照合種別については以下。

照合種別 一言でいうと 詳細
0 完全一致 検索値に等しい最初の値を検索・検索範囲は任意【これ使っとけばOK
1 以下 検索値以下の最大値を検索・検査範囲は昇順で配置する必要あり
-1 以上 検索値以上の最小値を検索・検査範囲は降順で配置する必要あり

あと、もちろん単一条件でも検索可能

=INDEX(検索元テーブル, MATCH(検査値1, 検査範囲1, 照合種別 ), 検索元テーブルの返したい列番号 )

最初は戸惑うかもしれませんが絶対慣れておいた方がいいね。

上記だと検索条件と一致しなければN/Aエラーが発生するから、ついでにIFERROR関数を使えば完璧。
一致しない場合、任意の文字を入れられる。

image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1