Hello! Mr.Simplism

僕の人生補完計画

【Excel】1シートに171億個以上あるセル全部に「1」を入力したときのファイルサイズを調べてみた

f:id:yohsuke517:20220312110818p:plain

仕事中にこんなバカな表を作成して喜ぶダメ社員です。

仕事がヒマになると「ブログのネタ、何にしようかな」と考える。
たいてい仕事や職場に対するグチしか思いつかず、辛気臭いブログになってしまう。
そんな時はExcelで遊ぶに限る。

前回、Excelファイル1シートにセルが何個あるのかを数えた。

 

simplism.hatenablog.com

 


例えばこのセル全てに「1」を入力したら、ファイルサイズはいったいどうなるのだろうか。
しょうもないことを思いついてしまったので早速やってみることにした。

 

想像を絶する重さ

理論上「Ctrl+A」で全セルを選択し、1を入力した後に
「Ctrl+Enter」することで全セルに一気に入力できる。

実行した途端こんなメッセージが出た。

 

 

f:id:yohsuke517:20220312111124p:plain

初めて見たメッセージ

 

171億セル以上あるからかなりの時間がかかるだろうなとは思い、
覚悟してOKを押したところ、なんと実行不可とのこと。

 

f:id:yohsuke517:20220312111210p:plain

 

ちなみに僕の仕事用PCのスペックはこんな感じ。

 

f:id:yohsuke517:20220312112209p:plain

情シス様へ、早急な更新を求む。



 

4年前に支給されたものなのでパワー不足は否めない。

 

ならばと思い、適当に100列くらい選んでやってみたところ、
Excelごと落ちた

 

さすがに無謀すぎたので、とりあえずA列だけに「1」を入力して
1列あたりのファイルサイズを求めることにした。

f:id:yohsuke517:20220312111314p:plain

その結果、ファイルサイズは5.5MBになった。
1列の時点で予想以上にデカい。

 

ということは.xlsxファイルの場合、最大で16,384列あるためファイルサイズは

5.5MB/列 × 16,384列 = 90,112MB

きゅ、90GB?!

 

1列ずつ増やしてみる

そんな馬鹿なと思い、少しずつ列数を増やして検証してみたのが下図。

f:id:yohsuke517:20220312111421p:plain

なるほど、単純に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:列数)。

f:id:yohsuke517:20220312111527p:plain

この数式に当てはめると、16,384列の場合の推定ファイルサイズは9,570MB(約9.6GB)という結果になった。


だいぶ開きがあるが、もうこれ以上は調べられないしそもそも仕事中だし。

 

結論

Excel1シートすべてのセルに「1」を入れた時のファイルサイズは

 

9.6~45.4GB

 

の範囲内になる可能性があるということが分かった。
まったくもって役に立たない情報である。

 

週が明けたら仕事を頑張ろう。
あと、仕事中にブログのことを考えるのはやめておこう。

google-site-verification=W_k9LyKMYLp-1eq4cMMKOeqJnQ5a8pp4D2UIvuCGVBQ