ヒマというのは少し語弊がある。
正確には「午前中にガンバッたから午後やる気がなくてボンヤリしていた」が正しい。
給料泥棒である。
Excelは遊び道具
ただボンヤリしていてはサボっているのがバレる。
とりあえずExcelを開いた。
Excelに興味がない人が聞いたら信じられないと思うが、
僕にとってExcelは仕事道具であると同時に遊び道具でもある。
話すと長くなるので割愛するが、とにかく僕はExcelで遊ぶことにした。
セルの数を数える
ふと、Excelの1シートあたりのセルの数を数えてみたくなった。
しかしいくらヒマでも全セルを1つずつ数えるほどの時間はない。
行数×列数でセルの数が数えられるので、とりあえず最終行を見てみた。
その結果、1,048,576行あることが分かった。
次に列数(横方向)を調べる。
Excelの列はアルファベットで表示されるため、ぱっと見では列数がわからない。
そこでCOLUMN関数を使う。
一番右端列(XFD列)のセルに「=COLUMN()」と入力すると
そのセルの列番号が表示される。
それによると、どうやら16,384列あることが分かった。
つまり、Excelファイルの1シートあたりのセル数は
1,048,576行 × 16,384列 = 17,179,869,184個
だということが分かった。
171億セル以上!!!
1個ずつ数えなくて本当に良かった。
すべてのセルを使いきれる人はこの世に存在するのだろうか。
ちなみに今回調べたのは拡張子が「.xlsx」形式のExcelファイルで、
より古くからある「.xls」形式のファイルは行、列ともに「.xlsx」より少なく
65,536行 × 256列 = 16,777,2161個
となっている。
ここまで調べて、なんでこんな中途半端な数なのだろうと疑問に思った。
.xlsxと.xlsの行列とセル数をまとめたのが以下の表。
もっとキリよく「100万行×2万列」とかにすればいいのに。
なんでこんな中途半端な数字なんだろう。
たぶんプログラミングや数学の知識を持っている人はピンとくるかもしれない。
この数字はいずれも、2の階乗で表すことができる。
上表の全ての数字を2の階乗で表すと下のようになる。
つまり、.xlsと比較して.xlsxの1シートあたりのセル数は
2^34 / 2^24=2^10(=1,024)倍
ということになる。
ここまで調べたところで、今度は「なんで.xlsxファイルの列数は2の14乗なんだろう?」という疑問が湧いてきたが、残念ながら明日の会議の準備を始める時間になったので、お蔵入りとなってしまった。
個人的にかなりどうでもいい知識が増えた。
いつか使うかもしれないから、備忘録としてブログに書いておこう。
おまけ
この記事のトップの画像のグラデーションも暇だったのでVBAで書いてみた。
ほんと、しょうもない従業員である。
Sub グラデーション() Dim i As Long, j As Long Dim idx As Long, jdx As Long For i = 1 To 30 For j = 1 To 15 idx = 255 * i / 30 jdx = 255 - idx Cells(i, j).Interior.Color = RGB(jdx, 150, idx) Next j Next i End Sub