道具としてのExcel活用

脱「脱エクセル」のすすめ(4) ~大量データが扱えない!?~

「エクセルは、大量データを扱えない」は、本当か?

6.大量データを扱えない、扱えても遅くなる

比較する対象によって、根拠が異なるようですが、総じてまるで異なる基準のもの同士の比較となっており、「自転車と運送会社を比較する」ような違和感を拭えません。

①データベースとの比較

データベースであれば、億単位のデータを、秒単位で処理することも可能です(条件次第ですが)。

これに対して、「脱エクセル」説によると、エクセルは100万行までしか扱えず、大量データを入れると動作が遅くなる、のだそうです。

参考までに、先日納めたシステムでは、Excelのみで構成されているにもかかわらず、160万行のデータを数秒で処理しています。

データベースを組み込めば、億単位のデータを、秒単位で処理できます(処理しているのはデータベースで、結果を受け取っているだけなので)。

そもそも、データベースには画面を作る機能もレポートを作る機能もありませんから、業務で使っているExcelツールと比較する対象になりません。

自転車とエンジンを比較しているようなもので、対立概念ではなく、補完関係にあるはずです。

自転車にエンジンをつければそれなりに高速で重い荷物を運べるのです(昔のモペットやカブ号のように)。

各種データベースを利用したシステムも構築しております。

当社でも、データ量が多い時は、データベース(SQL ServerやAzure SQL Database等)と組み合わせて実装しています。

②クラウドサービスとの比較

最近、クラウドで様々な自動化支援のサービスが提供されていますが、いずれもバックグラウンドにDBがあるので、大量データを扱えます。

こうした構造のものと比較をするのであれば、バックグラウンドにDBを設置したExcelと比較すべきなのですが、なぜか関数を主体としたExcelとの比較なので、「大量データは遅くなる」そうです。

ところがどっこい、最近はExcelの関数からクラウドサービスを利用できるようになっており、バックグラウンドにクラウドサービスを設置した状態になっています。

同じ条件にすれば、同じものを比較しているわけなので、Excelのデメリットはなさそうです。

③Webシステム(ブラウザ)との比較

最近主流の、ブラウザを使って利用する「Webシステム」は、本体はデータベースシステムですが、利用者側はブラウザです。

ちょうど、利用者がExcelを使って、背後のデータベースに接続するのと同様の構図です。この場合、Excelでは実用的には10万件程度のデータが限界かもしれませんが、ブラウザではどうでしょうか?

試しに同等のデータ量をExcelからHTML形式に落として読み込ませてみたところ、無事読み込みできましたが、スクロールするとギクシャクするなど、やはり大量データを読み込ませると、実用的ではなさそうです。それに、読み込んでも「ブラウズ」する以外なにもできません。。。

実用化する場合は、いずれも「データベースから条件に合致したデータのみ引用する」ので、あまり意味はなさそうです。

余談ながら、Excelの強みは、DBでなくてもデータ処理ができるところにあります。

ここでも、条件に合致したデータのみ引用すれば、「全体集合として大量データ」を、要領よくコンパクトに活用できます。

④ノンコードツールとの比較

これも一種のクラウドサービスで、ノンコード(プログラムを書かなくて良い)で、自動化機能を実現できるのがウリです。

バックグラウンドにDBがあるので、大量データを扱えますが、作業報告や勤怠登録のようなデータを扱う分には、1000万件を超える「大量データ」を比較する意味はありませんし、そんな大量のデータを読み出すとなると、Indexの設定がなければ、長く待たされることになり、下手をするとタイムエラーになってしまいます。

余談ながら、Excelのマクロと違って、プログラミングが不要というのがウリなところがありましたが、そもそもExcelがノンコードの元祖であり、関数だけでもそこそこの機能が作れます。なぜ、こんな時だけマクロと比較するのでしょうかね?

[>5 エクセルだから、属人化しやすい?]