「5万件を超えたあたりからExcelが重い」「画面が白くなってフリーズしてしまう」「PCの冷却ファンが高速回転する」
Excelで大きなデータを開くと起こる現象です。
その原因はExcelが再計算を始めるから。
一方、データベース専用エンジンを持つAccessではどうでしょう?
この記事では、20年の実績から、データが増えても業務が止まらない「高速Access」の仕組みと、Excelとの決定的な差を解説します。
なぜデータが増えるとExcelは「重く」なるのか?
重いのはPCのスペック不足ではありません。
Excelの仕組みそのものに限界があるからです。
再計算が連鎖する
Excelは1箇所書き換えるたびに、シート内やシートにまたがって関連する数式をすべて再計算しようとします。
データ量が少ないうちは一瞬で終わるので気になりません。
しかし、データ量が増えるにつれて「再計算」は体感できるほど長くなっていきます。
「何件から重くなる」とは一概に言えません。
要注意なのは、VLOOKUP系の関数が含まれた数式がバシバシ使われている場合。
経験上、1,000行程度のデータ量でも再計算が無視できなくなります。
数万件のデータに数式が詰まっていたりしたら、PCが悲鳴を上げるのは必然です。
Excelに「全部盛り」の限界
Excelは表計算ソフトですが、簡単・便利な汎用さゆえに、いろいろな方面に活用されています。
単純・簡素な集計ばかりではありません。
装飾された見栄えのする書類であり、複数のグラフを配置したダッシュボードであり、そしてデータを溜め込むデータベース代わりに。
すべてをメモリ上に広げるExcelにとって、10万件は「限界を超えた重り」を背負って走るようなものです。
Accessが数万件のデータを「一瞬」で捌ける理由
Excelは「家中の荷物を全部広げて探す」。
Accessは「整理された棚のラベルを見て取り出す」。
大量のデータを瞬時に捌ける理由は、整頓されたデータの持ち方をしているからです。
Accessにはインデックス(索引)がある
本には索引があります。
Accessにもインデックスと呼ばれる機能があって、データに目印をつけることができます。
いわゆるデータの「地図」のようなもの。
Accessは膨大なデータの中から必要なものだけを瞬時に見つけ出せます。
全部を読み込む必要がないから、速いのです。
メモリを賢く使う
Accessは「今必要なデータ」だけを呼び出し、処理が終わればすぐに返します。
だから、PCに負担をかけずに数百万件のデータでも扱えます。
「検索・集計」においてExcelとAccessで生まれる決定的な差
Accessの実体はSQLだから高速
複雑な条件抽出も、Accessの「クエリ」ならデータベース専用のエンジン(SQL)がバックグラウンドで高速処理します。
数万件~数百万件のデータ量であっても、合計値の算出や条件による抽出程度であれば、Accessのクエリは瞬時に処理できます。
同じことをExcelで実行しようとすると、フィルタをかけるだけで「応答なし」になって数分待たされます。
すべてのAccessが同じ力を発揮できるのか?
しかし、どのようなAccessでも瞬時に処理できるかというと、そうではありません。
適切に設計されていないAccessは、Excel以上に遅くなります。
最近、わたしは「月次の処理に4時間かかるAccess」に遭遇しました。
処理の大部分をVBAに記述してありましたが、一見して「これは遅い」と判断できるものでした。
VBAの記述から仕様を解析し、クエリの再構築などした結果、4時間が4分に短縮できました。
適切な設計で組まれたAccessでは高速処理が可能です。
まとめ:データが増えるほど「快適さの差」は広がっていく
データ量が増えれば増えるほど、Excelとの快適さの差は、埋めようのないほど広がっていきます。
業務が拡大し、データが増えるのは喜ばしいことです。
しかし、ツールの設計が原因で業務が止まるなら、それは成長のブレーキになります。
1,000件ならExcelで十分。
でも、5万件、10万件と増えていく未来があるなら、最初からAccessという「高速道路」を用意しておくべきです。
データ量が増えてもビクともしない。そんな環境を作るための3つのチェックポイントを[こちらの記事]にまとめました。





