【10万行】行が多すぎて重いExcelで集計作業をおこなう場合のコツ

PC・IT

事務仕事をするうえで、Excelはとても便利です。

表計算ソフトと銘打たれていますが、大抵のことはExcelで完結します。

ですが、便利すぎるその反面、ひとつのExcelブックに大量のデータを入れ込み、まるでデータベースのように使用している方もしばしばいらっしゃいます。

Excelブック内の行に数万~数十万というデータを入れ込んでしまうと、関数の計算が非常に遅くなってしまい、もはや使い物にならなくなってしまいます。

しかし、仕事上どうしてもそういった数万~数十万行のExcelを使用する必要が場合も多いでしょう。

ここでは、行数が多すぎて重くなったExcelでの集計作業のコツを紹介していきます。

関数の使用は極力避ける

行数が多すぎて重くなったExcelブックでは、関数の使用は極力避けましょう。

「SUM関数」のような単純な関数であれば良いですが、「SUMIF関数」「VLOOKUP関数」といった複雑な計算をおこなう関数は、処理に非常に時間がかかります。

関数の式や使用しているPCのスペックにもよりますが、30分近くExcelが計算中のため固まってしまうというケースも発生します。

行数160,000のExcelでSUMIF関数を使用した場合。計算中の表記が出てExcelが固まってしまいました。

ピボットテーブルを使用する

関数に比べて、ピボットテーブルでの集計は処理速度が速いです。

そのため、ピボットテーブルで代用可能な集計作業であれば、ピボットテーブルを使用しましょう。

ピボットテーブルで代用可能な、関数による集計作業とは、例として「SUMIF関数」を使用した集計作業があげられます。

日々の売り上げを記録した元データ群から、顧客番号ごとの売り上げ合計額を集計したい場合など、通常であれば「SUMIF関数」を使用するかと思いますが、ピボットテーブルで同様の集計が可能でなおかつ処理が速いです。

A~C列の元データから、F~G列に集計をしたケース。関数では処理完了まで数分かかりました。
ピボットテーブルを使うことで同様の結果が得られます。処理は一瞬で完了しました。

マクロを使用する

マクロの組み方にもよりますが、行数が多いExcelでは、関数よりもマクロの方が早く計算できる場合が多いです。

ただし、マクロを使用するためには相応の知識が必要ですので、基本的にはピボットテーブルを使うようにしましょう。

マクロのなかでも「for~next」を用いたものであれば比較的容易に組むことが可能で、行数が多いExcelでの処理に適しているため、書籍やWEBでプログラムの例を探し自身で使えるように応用すると良いでしょう。

関数を使用する場合は、自動計算をオフにしておく

ご紹介した通り、行数の多いExcelブックでは関数以外での集計作業が有効ですが、どうしても関数を使用しなければならないケースもあるでしょう。

その場合は、関数の自動計算をオフにしておくことで、処理速度が遅くなることを防ぐことができます。

手順は、Windows10であればExcelブックを開いてリボンの「数式」⇒「計算方法の設定」⇒「手動」をクリックするだけです。

この設定をしておくと、セルの数字を変更しても関数に変更内容が反映されなくなります。

C2セルの数字を変更しても、SUM関数の数字が変更されなくなっています

関数の再計算をおこないたい時には、 リボンの「数式」⇒「再計算実行」もしくはキーボードのF9をその都度押す必要があります。

再計算実行をクリックすると、現在の入力内容で関数の計算がおこなわれます

一見、関数が自動的に計算されなくなって面倒なだけだと思われがちですが、行数の多いExcelブックや関数が多数設定されているExcelブックでは、関数が常に自動計算されている状態だと非常に処理が重くなってしまいます。

したがって、多少手間でも一連の入力が完了したタイミングで手動にて再計算をおこなう方が、無駄な時間を省くことが可能となるのです。

データベースソフトに移行する

ここまで、Excelで大容量データを扱う際のコツをご紹介しましたが、これらの手法を用いても上手く扱えないこともあります。

その場合は、そもそもExcelに適した使い方ではないので、専用のデータベースソフトに切り替えを検討しましょう。

WindowsであればAccessというデータベースソフトがあり、こちらは大容量のデータを扱うことを前提として作られているので、システムが重すぎて不具合が生じるケースも防ぐことができます。

まとめ

Excelは大容量のデータを扱うことにあまり向いていません。

しかし、ピボットテーブルやマクロを適切に使い分けていくことで、Excel上で大容量データを扱うことも充分に可能です。

その際には、関数の自動計算をオフにする等、なるべく処理速度が遅くならないような配慮を心掛けましょう。

また、Excelのデータが重くなりすぎると、ファイルが破損する可能性も生じてきます。

必要に応じて、専用のデータベースソフトに切り替えることも検討してみてください。