Office 2007まで、Excelには最大65,000行があります。 Office 2007では、最大で100万行に達しましたが、これはもちろん素晴らしいことです。しかし、私は興味があります-なぜまったく制限があるのですか?明らかに、スプレッドシートのサイズを大きくすると、パフォーマンスが急激に低下します。ただし、小さなシートから開始し、必要な場合にのみ動的に「サイズ変更」することで、Excelを最適化することはそれほど難しくありません。制限を65Kから100万に増やすのにどれだけの労力が必要だったのかを考えると、なぜ彼らはずっと利用できなかったので、利用可能なメモリとディスク領域の量によってのみ制限されますか?
(エラーのために更新されました...皆への提案:SO完全に目覚める前に投稿しないでください)
おそらく最適化のため。 Excel 2007では、最大16 384列と1 048 576行を使用できます。奇妙な数字?
14ビット= 16 384、20ビット= 1 048 576
14 + 20 = 34ビット=複数の32ビットレジスタを保持できます。
ただし、セルのフォーマット(テキスト、数値など)およびフォーマット(色、境界線など)も保存する必要があります。 2つの32ビットワード(64ビット)を使用すると仮定すると、セル番号に34ビットを使用し、他のものには30ビットを使用します。
なぜそれが重要なのですか?メモリでは、スプレッドシート全体に必要なすべてのメモリを割り当てる必要はありませんが、データに必要なメモリのみを割り当てる必要があり、すべてのデータはどのセルにあると想定されるかでタグ付けされます.
2016年の更新:
MicrosoftのExcel 2013および2016の仕様へのリンクが見つかりました
一言で言えば-速度。最大100万行のインデックスは32ビットWordに収まるため、32ビットプロセッサで効率的に使用できます。 CPUレジスタに収まる関数引数は非常に効率的ですが、それより大きいものは、関数呼び出しごとにメモリにアクセスする必要があり、操作がはるかに遅くなります。スプレッドシートの更新は、多くのセル参照を含む集中的な操作になる可能性があるため、速度が重要です。さらに、Excelチームは、100万を超える行を扱う人はスプレッドシートではなくデータベースを使用することを期待しています。