重いVLOOKUPはもうやめたい!スプレッドシートを軽くする3つのステップ

このスプレッドシート、開くのも計算もとにかく重い…

もしあなたがVLOOKUP関数を多用したシートでこんな悩みを抱えているなら、この記事はきっとお役に立てるはずです。

今回は、多くの人が悩まされている

VLOOKUP関数によるスプレッドシートの重さ

を解消するための具体的なステップを簡単なものから順番にご紹介します。

  • XLOOKUP関数を使う(最もおすすめ)
  • INDEX関数とMATCH関数を組み合わせる(互換性が必要な場合)
  • GAS(Google Apps Script)を使う(最終手段)

まず最初に別の関数だけでできる改善策をご紹介します。

そして別の関数でも限界を感じたら最終手段であるGAS(Google App Script)についてご紹介します。

GASについては、なぜGASを使えばシートを軽く出来るかについて解説します!

ぜひとも最後までご覧ください。

自動化出来る作業をまだ手作業でこなしていませんか?

私はGoogleが提供するプログラミングツールである、GAS(Google App Script)と生成AIを活用してお客様の業務を自動化や効率化するサービスを提供しています

もし今の業務の中で

  • 毎回の手作業に手間を感じる
  • もっと業務を効率化したい
  • ルーティン業務を自動化したい

このような不満を抱えてらっしゃるなら是非一度ご連絡ください。

「こんなことできる?」くらい軽めのご相談でも大歓迎です!

目次

関数を見直して高速化する

「重いシートを軽くしたい…」

と思った時、いきなり難しいことに挑戦する必要はありません

まずはVLOOKUP関数を、より新しく高性能な関数に置き換えることから始めましょう

最もおすすめ:XLOOKUP関数を使う

今、VLOOKUP関数が原因で重くなってるシートを改善するなら、まず試すべき最善の方法がこのXLOOKUP関数です。

XLOOKUPは、VLOOKUPのあらゆる点を強化した新しい上位互換の関数であり、乗り換えることで主に次のようなメリットがあります。

  • 処理が高速で、シートが軽くなる
  • 構文がシンプルで、数式が読みやすくなる
  • 検索範囲より左側の列も取得できるなど、柔軟性が高い
  • エラー処理(見つからなかった場合の表示)も関数内で完結できる

より詳しくXLOOKUP関数を学びたい方はこちらの記事へ!

VLOOKUPをXLOOKUPにすると、軽くなる理由

VLOOKUPをXLOOKUPにすると軽くなる理由は、計算に使うデータ範囲の無駄がなくなるからです。

VLOOKUPは、検索に不要な列まで含んだ表全体を毎回参照するため、処理に負荷がかかります。

一方XLOOKUPは、「検索する列」と「取り出す列」だけをピンポイントで指定します。

これにより、計算に必要なデータ量が最小限に抑えられ、結果として処理が高速になります。

書き換えの例

VLOOKUPは4つの引数を指定する必要があり、特に「列番号」の指定や「FALSE」の入力が少し面倒でした。

従来のVLOOKUP関数

=VLOOKUP(検索値, A:D, 4, FALSE)

  1. 検索値
  2. 検索範囲(A〜D列)
  3. 列番号(範囲内の4番目)
  4. 検索方法(完全一致のFALSE)

一方XLOOKUPは、基本となる引数はたったの3つで済みます。

これにより、数式が非常にシンプルで直感的になります。

新しいXLOOKUP関数

=XLOOKUP(検索値, A:A, D:D)

  1. 検索値
  2. 検索範囲(A列)
  3. 戻り範囲(D列)

VLOOKUPのように範囲全体を指定して列番号を数える必要はなく、

「A列で探して、D列の値を返す」

と直接的に指定できるのが大きな違いです。

XLOOKUPオプションで4番目の引数に見つからなかった場合の値を指定できます。

このため、IFERROR関数を使わずにエラー処理まで完結できます。

=XLOOKUP(検索値, A:A, D:D, "見つかりません")

基本は3つ、エラー処理を含めても4つの引数で、VLOOKUPより、はるかに分かりやすく安全な数式が作れます。

互換性が必要な場合:INDEX関数とMATCH関数

基本はXLOOKUPをおすすめします。

しかし、もし作成したファイルをExcel 2019以前のような古いバージョンで開く可能性もあるかもしれません。

そんな時活躍するのが、このINDEX & MATCHの組み合わせです。

これは昔から「VLOOKUPより高速で高機能」と言われてきた定番の方法です。

書き方の例

=VLOOKUP(検索値, A:D, 4, FALSE)

という式があった場合、INDEX & MATCHでは以下のようになります。

=INDEX(D:D, MATCH(検索値, A:A, 0))

XLOOKUPに比べると少し複雑ですが、スプレッドシートだけでなく、あらゆるバージョンのExcelでも使えるのが強みです。

【最終手段】GASで計算式そのものを無くしてしまう

XLOOKUPを使ってもまだシートが重いと感じるなら、それは、データ量そのものなど、もっと根深い原因があるかもしれません。

すでに関数で対応できる限界を超えている可能性が高いです

そうなってくると別の関数だけでは解決出来ないので、Googleが提供するプログラミングツールGAS(Google App Script)を導入する必要があるかもしれません。

なぜGASだと重くならないのか?

その理由は、計算処理の方法が関数とは全く違うからです。

関数

シートに数式がある限り、常にデータ全体を監視し、常時計算します。

常に稼働しているので、これが重さの原因になります。

GAS

「ボタンをクリックした時」など、必要な時にだけ処理を実行します。

計算の答えだけをセルに直接入力するので負荷が軽いです。

つまり、GASによる処理が終わった後のシートは、計算負荷がゼロの状態になります。

そのため、普段の入力やスクロールといった日常的な操作が、ストレスなく軽快になります

これがGASを使うとスプレッドシートが軽くなる大きな理由です。

ちなみに、私はGASを使った業務自動化サービスを提供しております

今回ご紹介したような

「VLOOKUP地獄から解放されたい…」

「ちょっと自動化に興味あるんだけど…」

とお考えであれば、ぜひ一度ご相談ください。

「こんなことできる?」くらい軽めのご相談でも大歓迎です!


まとめ

VLOOKUPが原因で重くなったスプレッドシートを解消するには、正しいステップで対処することが重要です。

まずはXLOOKUPへの置き換えを試す。

これが最も手軽で効果的です。

INDEX & MATCHを使う

古いExcelとの互換性が必要ならINDEX & MATCHを検討するのがいいです。

GASによる自動化を検討する

上記二つでも解決しないなら、関数自体を無くし、GASで根本から解決します。

あなたの状況やスキルに合わせて、最適な解決策を選んでみてください。

この記事が、あなたのストレスを少しでも軽くするきっかけになれば幸いです。

私はGoogleが提供するプログラミングツールである、GAS(Google App Script)と生成AIを活用してお客様の業務を自動化や効率化するサービスを提供しています

もし今の業務の中で

  • 毎回の手作業に手間を感じる
  • もっと業務を効率化したい
  • ルーティン業務を自動化したい

このような不満を抱えてらっしゃるなら是非一度ご連絡ください。

「こんなことできる?」くらい軽めのご相談でも大歓迎です!

  • URLをコピーしました!

MASAのアバター MASA 生成AI×GASを活用した"業務効率化コンサルタント"

MASAです。
GASや生成AIを活用して業務の効率化を支援しております。
スプレッドシートを中心にGoogle Workspaceのお役立ち情報も合わせて発信中♪( ´▽`)

目次