Welche Bedeutung hat die Anzahl der Spalten (16384) in MS Excel 2016?

29

Ich habe gerade bemerkt , dass die MS Excel Spaltenanzahl von erhöhte ZZauf XFD, dh 16.384 Spalten. Welche Bedeutung hat dieser besondere Wert? Warum ist MS nicht weiter gegangen ZZZ? Warum haben sie angehalten XFD?

Karth
quelle
1
Nicht genau die Antwort auf Ihre Frage, aber MS listet hier verschiedene Excel-Einschränkungen auf - support.office.com/en-us/article/…
matrix
2
Es ist eine willkürliche Designentscheidung, die Komplexität in genau definierten Grenzen zu halten. Technisch gesehen besteht die einzige Beschränkung in den verfügbaren Ressourcen (Speicher, CPU).
Daniel B
8
Wie @teylyn in ihrer Antwort erklärt hat, sind Zweierpotenzen in der Informatik häufig anzutreffen. Allerdings ist es wahrscheinlich nicht möglich, hier zu antworten, warum MS diesen Wert gewählt hat. Daher stimme ich ab, diese Frage als primär meinungsbasiert zu schließen.
Máté Juhász
3
Es ist erwähnenswert, dass das maximale Spaltenlimit seit mindestens Excel 2007
Stevoisiak

Antworten:

34

Die Bedeutung von 16.384 ist, dass Sie interne Spaltenindexwerte von 0 bis 16383 haben können. Schauen wir uns an, was 16383 in Binärform ist:

0011 1111 1111 1111

Es sind 2 Bit weniger als ein 16-Bit-Wort. 1 Bit ist wahrscheinlich ein absolutes / relatives Flag, das 1 Bit für einen anderen Zweck übrig lässt und das Ganze in einem Wort zusammenfasst.

Die Zeilennummern sind ähnlich: Ein maximaler Indexwert von 1.048.575 lautet wie folgt:

0000 0000 0000 1111 1111 1111 1111 1111

Für mich als Programmierer wird das wie ein 32-Bit-Wort verwendet, wobei die unteren 20 Bits als Zeilenindex und die oberen 12 Bits für etwas anderes verwendet werden.

David
quelle
1
Das macht für mich mehr Sinn
Ooker
9
1.048.576 ist die erste Potenz von 2, die mehr als eine Million ist ... also können Sie jetzt "mehr als eine Million Spalten" haben
HorusKol
6
und 16384 ist die erste Potenz von 2, die mehr als zehntausend ist. Das könnte der Grund sein, warum das OP danach sucht.
ris8_allo_zen0
56

16.384 ist 2 ^ 14.

Gleichzeitig mit der Erweiterung der Spalten auf 16.384 wurden die Zeilen auf über eine Million, dh 1.048.576, erweitert.

Diese Zahlen beziehen sich auf zwei hoch 14 (2 ^ 14) und zwei hoch 20 (2 ^ 20), also auf natürliche (logische) Abläufe auf der Skala von Computerspeichereinheiten, die ursprünglich in Bytes strukturiert waren .

Da der Computerspeicher zunahm, war es möglich, eine größere Anzahl von Zeilen und Spalten für Berechnungen zu laden und auszuwerten, sodass das Excel-Raster aufgrund der Einschränkungen früherer Versionen erweitert werden konnte.

Diese maximale Anzahl für Zeilen und Spalten wurde natürlich von den Personen ausgewählt, die die Funktionsweise von Excel entwerfen, und ist mit wachsendem Computerspeicher möglich geworden. Sie hätten unterschiedliche Zahlen wählen können, aber die Anzahl der Zeilen und Spalten in Excel seit Version 2007 basiert auf der Potenz von 2.

Teylyn
quelle
2
Klar, aber warum nicht 2 ^ 16 und 2 ^ 32 (also ein Byte und ein Wort)?
Ajasja
12
@ Ajasja Sie müssen das Excel-Entwicklungsteam danach fragen. Ich sagte, dass sie in meiner Antwort unterschiedliche Nummern hätten wählen können. Ich habe nur erklärt, woher das Muster kommt, nicht warum eine bestimmte Größe des Musters gewählt wurde.
Teylyn
14
Eigentlich sind Sie als Excel Microsoft MVP viel besser in der Lage, dem Excel-Entwicklungsteam diese Frage zu stellen, als zum Beispiel mir selbst :) Immer noch eine +1.
Ajasja
5
Hinweis: Die meisten Excel-Codierungen beziehen sich auf die interne Darstellung in Formeln: 2 ^ 16 ist für 16-Bit-Ganzzahlen unpraktisch: Excel muss auch die relative Positionierung speichern, also sowohl negative als auch positive Zahlen. Möglicherweise wird eines der Bits als Flag (single / interval) verwendet, daher wurde die Gesamtzahl der Spalten angepasst
Giacomo Catenazzi
1
@GiacomoCatenazzi Die relative Positionierung würde ohne ein dediziertes Vorzeichen gut funktionieren, wenn Sie nur eine Zahl als negativ betrachten, die Sie hinter die letzte Spalte führt.
Random832