INASOFT 管理人のひとことフリーソフトダウンロードサイト「INASOFT」の管理人 矢吹拓也 が日々の「ひとこと」を語るページです。 2021年1月1日より、旧ブログ(blog.inasoft.org)からお引越ししました。 ・INASOFT Webサイト: https://www.inasoft.org/ ・管理人のふたこと(長文記事/寄稿文): https://www.inasoft.org/talk/ 2022年7月下旬より再び本業多忙化してきているため、更新頻度は落ちます。 [2022/7/24 19:32] Tweet ■Excel2007の横列って、いくつまであるんだろう?2014年 7月 6日(日) 0:40:40 [さくらのブログから転記] |
RSS配信中 | |
Excel2003の縦横のセル数は、縦が65536行、横が256列です。縦列はそのまま数字になっているので読めば分かりますし、横列は「A,B,C,D,…,AA,AB,AC,…IV」で256列になっているのは数えれば分かります。 それに対して、Excel2007の縦横のセル数は増加しており、縦が1048576(=0x100000)列、横がXFDまで存在しています。 この "XFD" って、数字にするといくつになるんだろう? 計算で求めるのは、さほど難しくないとは思いますが、ふと寄り道をしてみたいと思います。 Excelの縦列は10進数でカウントされていますが、横列って何進数なんだろう? ってか、○進数で語れるものなのか? A,B,C,D,…,AA,AB,AC,…,ZY,ZZ,AAA,AAB,AAC,…,XFC,XFD と続くわけです。 「○進数」を語る上で重要になるような、単位元とか零元みたいなやつの定義が難しいのかなぁと。 Aから始まってZまでが26個。27個目はAA。 Aの役割が1に相当するものかと考えると、桁が繰り上がったときにAAになるのはおかしくて、一の位に0に相当するものが来ないといけない。 ではAの役割は0かというと、それも違っており、やっぱり桁が繰り上がったときにAAとなるときに矛盾が出る。 桁が繰り上がっていない時の十の位の空白というのが、実は0の役割なのではないか。 ということは、1~26が「スペース+A」~「スペース+Z」なのは良いとして、27番目は「A+スペース」となるのが正しくて、28番目が「AA」となるのが正しいのではないか、と。 まぁ、本当にそうなっていたら使いづらくて仕方ないですけどね。 そんなわけで、Excelの横の数え方を、単純に○進数でとかで語れるものでは無さそうです。 というわけで、各桁の重み付けを変えて求めれば良いでしょうかね。 下1桁目には、A~Z の 26個しか文字がないのに対し、下2桁目と下3桁目は、スペースおよびA~Zの 27個の文字があると考える。 ただし、下2桁目がスペースになってよいのは、下3桁目がスペースの時だけです。だから、そこは分けて計算しないといけない。 だから、何桁あるのかで分けて計算して、最後に足し合わせるのが良いかな。 以上を踏まえると、 1桁だけの時(A~Z)の個数 …… 26個 2桁だけの時(AA~ZZ)の個数 …… 【算出方1】 下1桁目がA~Zの26通り、下2桁目がA~Zの26通り、それらの全通りを計算することになりますから、 262 = 676個 【算出方2】 重み付けで計算する際は Aを0と見なし、A~Zの26進数と捉える。Zは25となる。下2桁目の重み付けは261=26、下1桁目の重み付けは260=1なので、 25×26+25×1=675 「AA」セルの分を加算して、675+1=676個 3桁だけの時(AAA~XFD)の個数 …… 上の【算出方2】で計算する。 下3桁目の重み付けは、262=676。 下2桁目の重み付けは、261=26。 下1桁目の重み付けは、260=1。 Aを0と見なした場合、Xは23。Fは5。Dは3。 23×676+5×26+3×1=15548+130+3=15681 最後に「AAA」セルの分を加算して、15681+1=15682個 ここまでの結果を全て足すと、26+676+15682=16384個 16進数にすると、0x4000 となります。 なんだかキリが良いので、合っていそうですね。 答え合わせです。 実は、「Excelのオプション」の「数式」の中にある「R1C1参照形式を使用する」にチェックを入れれば、簡単に数字が表示されるんですね。 というわけで、合っているみたい。 ああ、ややこしい。 目次の表示: ブログではないので、コメント機能とトラックバック機能は提供していません。ご質問・ご意見等はメール、フィードバックまたはTwitter等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。 当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。 |
- 最近の更新 - |
|
3212871 (+0220)[+0348] Copyright© 2010-2024 INASOFT |