MS Excel 2016の列数(16384)の重要性は何ですか?


29

MS Excelの列数がからZZに増加したことに気付きましたXFD。つまり、16,384列です。この特定の値の重要性は何ですか?なぜMSはさらに進んでいないのZZZですか?なぜ彼らは止まったのXFDですか?


1
まさにここに、様々なExcelの制限をあなたの質問に答えるが、MSのリストではありません- support.office.com/en-us/article/...
マトリックス

2
複雑さを明確に定義された範囲内に保つことは、任意の設計上の決定です。技術的には、利用可能なリソース(メモリ、CPU)のみが制限されます。
ダニエルB

8
@teylynが彼女の答えで説明したように、情報学では2のべき乗が一般的な選択ですが、MSがこの値を選択した正確な理由はおそらくここでは答えることができないため、主な意見に基づいてこの質問を終了することを決めています。
マーテユハス


3
少なくともExcel 2007
Stevoisiak

回答:


34

16,384の重要性は、0〜16383の内部列インデックス値を持つことができることです。16383がバイナリであるものを見てみましょう。

0011 1111 1111 1111

16ビットワードよりも2ビット短いです。1ビットは絶対/相対フラグである可能性が高く、1ビットは他の目的のために残され、1つの単語にすべてがきれいに詰め込まれます。

行番号は似ています:最大インデックス値1,048,575は次のとおりです。

0000 0000 0000 1111 1111 1111 1111 1111

私にとって、プログラマーとしては、32ビットの単語が使用されているように見えます。下の20ビットは行のインデックスとして使用され、上の12ビットは他の何かに使用されます。


1
これは私にとって理にかなっています
Ooker

9
1,048,576は、100万を超える2の最初の累乗です。したがって、「100万を超える列」を持つことができます
-HorusKol

6
また、16384は1を超える2の累乗です。それがOPが探している理由かもしれません。
ris8_allo_zen0

56

16,384は2 ^ 14です。

列が16,384に拡張されると同時に、行が100万を超える、つまり1,048,576に拡張されました。

これらの数値は、それぞれ2の14乗(2 ^ 14)と2の20乗(2 ^ 20)に関連しているため、最初にバイト単位で構造化されたコンピューターメモリユニットのスケールでの自然な(論理的な)進行です。

コンピューターのメモリが増加すると、計算のためにメモリ内のより多くの行と列を読み込んで評価することができたため、Excelグリッドは以前のバージョンの制限から拡大する可能性がありました。

行と列のこれらの最大数は、もちろんExcelの動作方法を設計する人々によって選択されており、コンピューターのメモリが増大するにつれて可能になりました。別の数を選択することもできますが、バージョン2007以降のExcelの行と列の数は2の累乗に基づいています。


2
確かに、なぜ2 ^ 16と2 ^ 32(バイトと単語)ではないのですか?
アジャシャ

12
@Ajasjaこれについては、Excel開発チームに問い合わせる必要があります。私は答えで異なる数字を選んだかもしれないと言った。パターンがどこから来たのかを説明しただけであり、特定の大きさのパターンが選択された理由ではありません。
テイリン

14
実際、Excel Microsoft MVPとして、Excel開発チームにこの質問をする方がはるかに良い立場にあります。たとえば、私の自己:)それでも+1です。
アジャシャ

5
注:Excelコーディングのほとんどは、式の内部表現に関するものです。16ビット整数の場合、2 ^ 16は実用的ではありません。Excelでは相対位置も保存する必要があるため、負の数と正の数の両方が必要です。おそらくビットの1つがフラグ(単一/間隔)として使用されるため、列の合計数が調整されました
Giacomo Catenazzi

1
@GiacomoCatenazzi相対位置は、最後の列を過ぎて負の数になると考える場合、専用の符号ビットなしで正常に機能します。
-Random832
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.