EXCEL2007以降では、行の最大数が100万行以上作成できるようになったことにより、巨大な表をEXCEL上に保存することも可能になりました。
しかし実際に100万行くらいある表を作成してしまうと
- メモリを爆食いする
- (計算式があると)CPUの使用率が上がってしまう
- EXCELファイルの容量が何10MBになってしまう
という問題が発生します。
最近のマシンはメモリやHDDに余裕があることが多いので、個人で使う分には問題になることも少なくなってきました。
しかし、他人に配布するときに容量がでかいというのは嫌がられる可能性が高いですよね。
特にSIerや大企業は未だにメール文化なので、メールの容量制限に達しないかは結構切実な問題だったりします。
そこで、巨大な表を持つEXCELの容量を減らす方法について記載をして見たいと思います。
データがそんなに大きくないのに容量を使っている場合
巨大な表などを使用していないのに、データの容量が異常な場合があります。
その場合は内部で保持している無駄データを削減することで、適切な容量に変更することができると思います。
よくあるのが…
- 非表示オブジェクトやコメントが大量にある(コピペなどにより発生)
- ブックの共有の履歴が大量に保持されている
- ゴミデータがあり、使用最終行が適切に判断されていない
というパターンです。
特にブックの共有に関しては、履歴を放置すると結構頻繁にぶっ壊れることが多いので、バックアップや定期的な共有解除をすべきですね。
今回の記事では、これらの「使用していないはずなのに容量はでかい」というパターンではなく、そもそもでかい表があるパターンを想定して記載します。
ファイル容量を減らす方法
私がおすすめするファイル容量を減らす方法は、以下です。
- レイアウトは「テーブルとして書式設定」を使用する
- なるべく関数式を使わないようにする
- 数値や日付はすべて文字列として保存する
下2つは「いやいや、そんなことしたら利便性が下がるから出来ないよ」と言われることもあるかもしれません。
レイアウトに関しては我慢できることも多いかと思うので、1番上のものは特におすすめできます。
レイアウトは「テーブルとして書式設定」を使用する
EXCELで表を作成した時、特に人に見せるものであればセルに色を付けたり枠線をつけたりして、見やすくするのは必須ですよね。

上記のように適当に色を付けて、表に線を引いたとします。
表の大きさが10000行以下とかであれば全く問題ないかもしれません。しかし、10万行以上の表に対して実施すると容量が跳ね上がります。
何故なら書式の情報は各セルが保持しているからです。
1つ1つの情報は非常に小さくても、それが10万セルもあるとなれば容量を圧迫します。
そこで、条件付き書式で書式を設定した事があったのですが、あまりサイズを減らすことは出来ませんでした。
サイズを減らすには、「テーブルとして書式設定」を使用します。
EXCELのバージョンによるかと思いますが、2007以降であればホームタブから設定することが出来ます。

この「テーブルとして書式設定」は、セル毎ではなく表ごとに書式設定を持つため容量がグッと小さくなります。
デメリットとしては、ある程度は自分で書式設定ができるものの、細かい書式設定は難しいというところですね。
なるべく関数式を使わないようにする
表に「=Row()」などを使用して行番号を振ったりすることは多いですよね。

これはEXCELを保守する上で非常に重要だと思うのですが、巨大な表を作成する前提がある場合は避けたいところです。
何故なら、EXCELに式を使用すると容量が上がってしまうからです。
本来であれば、VLookUpとかの式も削減していきたいところですが、データを作成する上で避けられない場合もあります。
こういう単純な式があれば積極的に削除していきましょう。
数値や日付はすべて文字列として保存する
セルの書式設定を見ると、セルの分類には色々な種類がありますよね。

このセルの分類によっても容量がかなり変化します。
結論としては「文字列」が最も容量を抑えられるので、数値項目などもすべて文字列とすればファイルサイズも小さくなります。
ただ、数値を文字で保存することにより、関数式などが使いにくくなるということが発生します。
しかし参照する要件などがなければ文字列で保存して問題ないと思うので、全て文字列にしてしまいましょう。
コメントを残す