[EXCEL]VLOOKUP関数の高速化

EXCELのVLOOKUP関数は便利だが非常に遅い。改善方法を調べてみたので記す。

Ⅰ.VLOOKUP関数の遅さを体験

1) Excelのオプションの計算方法の設定を[手動]に変え、[ブックの保存前に再計算を行う]のチェックを外す。


2) 下記の10万行をVLOOKUPで埋め尽くしたSheet1及び参照先のSheet2からなるBookを作成。

→ 実際に使用したBookはこちら。※こちらをクリックするとダウンロード

Sheet1 ※参照元 ※4~99990行は非表示

Sheet2 ※参照先 ※4~99990行目は非表示


3) 再計算をクリックし、遅さを体験

→ Core2Duo L7100 1.2GHz環境では完了まで約18分かかった。

Ⅱ.改善

1) Sheet1を以下のように変更

→ 実際の改善版はこちら。※こちらをクリックするとダウンロード

→ 参照先がソートされてることが条件で、VLOOKUPと同じ動きをIF、INDEX、MATCHを使って再現。



2) 再計算をクリックし、速さを体験

→ 同環境で完了まで3秒以下。実に、360倍以上。

参考

  • エクセルでVLOOKUP関数を使用すると、データ数が多くてフリーズしてしまいます。(Office系ソフトのQ&A)
    http://okwave.jp/qa/q4733179.html

コメント