【Excel】1シートに171億個以上あるセル全部に「1」を入力したときのファイルサイズを調べてみた
仕事がヒマになると「ブログのネタ、何にしようかな」と考える。
たいてい仕事や職場に対するグチしか思いつかず、辛気臭いブログになってしまう。
そんな時はExcelで遊ぶに限る。
前回、Excelファイル1シートにセルが何個あるのかを数えた。
例えばこのセル全てに「1」を入力したら、ファイルサイズはいったいどうなるのだろうか。
しょうもないことを思いついてしまったので早速やってみることにした。
想像を絶する重さ
理論上「Ctrl+A」で全セルを選択し、1を入力した後に
「Ctrl+Enter」することで全セルに一気に入力できる。
実行した途端こんなメッセージが出た。
171億セル以上あるからかなりの時間がかかるだろうなとは思い、
覚悟してOKを押したところ、なんと実行不可とのこと。
ちなみに僕の仕事用PCのスペックはこんな感じ。
4年前に支給されたものなのでパワー不足は否めない。
ならばと思い、適当に100列くらい選んでやってみたところ、
Excelごと落ちた。
さすがに無謀すぎたので、とりあえずA列だけに「1」を入力して
1列あたりのファイルサイズを求めることにした。
その結果、ファイルサイズは5.5MBになった。
1列の時点で予想以上にデカい。
ということは.xlsxファイルの場合、最大で16,384列あるためファイルサイズは
5.5MB/列 × 16,384列 = 90,112MB
きゅ、90GB?!
1列ずつ増やしてみる
そんな馬鹿なと思い、少しずつ列数を増やして検証してみたのが下図。
なるほど、単純に5.5MB/列というわけではなさそうだ。
列が増えるごとに1列あたりのファイルサイズが落ちることはわかったが
たった8列で僕のPCのファンがウィンウィンうなりだし、
20列を超えるとコピペするだけでExcelごと落ちた。
仕方なくここまでの結果で推測したところ、列が増えるたびに1列あたりのファイルサイズは少なくなっていって、最終的には2.77MB/列あたりに落ち着きそうな感じ。
それが正しい場合、ファイルサイズは以下の通り。
16,384列 × 2.77MB/列 = 45,384MB(45.4GB)
さっきの半分くらいになったけど、まだまだデカい。
いちおう散布図を使って近似式を無理やり出してみたところ、
y=5.3952x^0.7709
という式が得られた(y:ファイルサイズ、x:列数)。
この数式に当てはめると、16,384列の場合の推定ファイルサイズは9,570MB(約9.6GB)という結果になった。
だいぶ開きがあるが、もうこれ以上は調べられないしそもそも仕事中だし。
結論
Excel1シートすべてのセルに「1」を入れた時のファイルサイズは
9.6~45.4GB
の範囲内になる可能性があるということが分かった。
まったくもって役に立たない情報である。
週が明けたら仕事を頑張ろう。
あと、仕事中にブログのことを考えるのはやめておこう。