Fortlaufende Buchstaben in Excel, aber wie?
Ist es möglich und wenn ja wie, in Excel fortlaufende Buchstaben in den Spalten zu erzeugen, ohne das man diese jedes Mal manuell eingeben muss?
Zahlen lassen sich ja nach unten Kopieren. Aber statt Zahlen sollen es Buchstaben sein, die fortlaufend sein sollen.
Beginnen soll das Ganze mit AAA und dann fortlaufend AAB, AAC usw. bis das Maximum an dreistelligen Buchstabenkombinationen erreicht ist. Danach ging es dann mit vierstelligen Buchstabenkombinationen weiter.
Ich bin für jede Hilfe dankbar!
4 Antworten
Ich hatte Dich auch zuerst so wie lamiam verstanden, dass Du die Kombinationen nebeneinander, als in einer Zeile haben willst. lamiams Idee dafür die Spaltenüberschriften zu nutzen ist echt raffiniert.
Ich wäre, und bin, anders an das Problem herangegangen, und zwar mit der Funktion REST.
Je öfter ich DIE nutze, desto mächtiger erscheint sie mir.
SO klappt es also auch:
=ZEICHEN((REST((SPALTE(A1)-1)/(26*
26);26)+65))&ZEICHEN((REST((SPALTE(A1)-1)/26;26)+65))&ZEICHEN(REST(SPALTE(A1)-1;26)+65)
und nach rechts kopieren.
Das geht dann sogar bis YGD, das dann in der letzten Spalte - nämlich Spalte XFD - steht, falls man in Spalte A angefangen hat.
Jetzt lese ich aber gerade, dass Du von "nach unten kopieren" gesprochen hast.
Und da Du auch noch mit vierstelligen weitermachen möchtest, gehe ich dann mal davon aus, dass Du die Liste doch in einer Spalte haben willst.
Und DA ist meine Lösung dann flexibler, denn für nach unten kopieren lässt sie sich SO anpassen:
=ZEICHEN((REST((ZEILE(A1)-1)/(26*
26);26)+65))&ZEICHEN((REST((ZEILE(A1)-1)/26;26)+65))&ZEICHEN(REST(ZEILE(A1)-1;26)+65)
Wenn Du DIE z.B. in A1 schreibst, und dann runterkopierst, landest Du in A17576 (26^3) bei ZZZ. Jetzt schreibst Du in Deiner Frage:
Danach ging es dann mit vierstelligen Buchstabenkombinationen weiter.
Das ist imho nicht ganz logisch. Wie soll es nach ZZZ weitergehen?
Mit AAAA?
Oder mit ZZZA ( und dann nach ZZZZ wie?
Also denke ich mal (korrigiert mich, wenn ich falsch denke) dass es dann sinnvoller ist gleich vierstellig anzufangen, als mit AAAA, AAAB usw.
Dazu lässt sich meine Formel auch sehr leicht erweitern, und zwar so:
=ZEICHEN((REST((ZEILE(A17577)-1)/(26*
26*
26);26)+65))&ZEICHEN((REST((ZEILE(A17577)-1)/(26*
26);26)+65))&ZEICHEN((REST((ZEILE(A17577)-1)/26;26)+65))&ZEICHEN(REST(ZEILE(A17577)-1;26)+65)
Diese Formel in A1 geschrieben und dann runterkopiert, ergibt in:
A17576: AZZZ
A17577: BAAA
A17578: BAAB
...
A1048576: HRDV
An DER Stelle ist dann Excel zu Ende.
Allerdings kann man dann gerne noch in Zelle B1 fortsetzen, mit dieser leicht angepassten Formel (und runterkopieren):
=ZEICHEN((REST((ZEILE(A1)+1048575)/(26*
26*
26);26)+65))&ZEICHEN((REST((ZEILE(A1)+1048575)/(26*
26);26)+65))&ZEICHEN((REST((ZEILE(A1)+1048575)/26;26)+65))&ZEICHEN(REST(ZEILE(A1)+1048575;26)+65)
Damit landet man dann in / bei:
B1048576 bei:
PIHR
Formel erneut angepasst und in C1 geschrieben (und runterkopiert):
=ZEICHEN((REST((ZEILE(A1)+2*
1048575+1)/(26*
26*
26);26)+65))&ZEICHEN((REST((ZEILE(A1)+2*
1048575+1)/(26*
26);26)+65))&ZEICHEN((REST((ZEILE(A1)+2*
1048575+1)/26;26)+65))&ZEICHEN(REST(ZEILE(A1)+2*
1048575+1;26)+65)
und in C1048576 steht : WZLN
Und zu guter Letzt noch in D1 die Formel:
=ZEICHEN((REST((ZEILE(A1)+3*
1048575+2)/(26*
26*
26);26)+65))&ZEICHEN((REST((ZEILE(A1)+3*
1048575+2)/(26*
26);26)+65))&ZEICHEN((REST((ZEILE(A1)+3*
1048575+2)/26;26)+65))&ZEICHEN(REST(ZEILE(A1)+3*
1048575+2;26)+65)
und wir sind in Zelle D53104 am Ziel mit ZZZZ.
Danach geht es dann wieder von Vorne los mit AAAA.
So, jetzt habe ich mich an dem Thema mal richtig ausgelassen.
Hat mir aber auch Spaß gemacht.
Und die ganzen Formeln sind bei weitem nicht so schlimm, wie sie aussehen.
KERN ist immer:
ZEICHEN(REST(ZEILE(A1)-1;26)+65)
und dann erweitert (jetzt mal mehr mathematisch ausgedrückt) durch:
ZEICHEN(REST((ZEILE(A1)-1+ x *
1048576 (+Spalte - 1));26^y)+65)
Ich hoffe ich konnte helfen und habe nicht zu sehr verwirrt.
Hi Oubyi, Du hast mal wieder die kürzere Lösung und auch schneller: DH !
aber meine hat mir auch Spass gemacht und sie basiert auf dem Start-TEXT
(im Kommentar zu meiner AW)
=Zeichen(Spalte()+64)
ergibt für die ersten 26 Spalten die Einzelbuchstaben
Sollen die wiederholt werden, dann
=ZEICHEN(REST(SPALTE()-1;26)+65)
Mit Spalte()-1 kannst Du die Buchstaben um eins nach rechts versetzen (mit -2 um 2 usw)
Willst Du aber die Spaltenbezeichnung abbilden, empfiehlt sich eine andere Konstruktion:
=TEIL(ZELLE("Adresse";A1);2;FINDEN("$";TEIL(ZELLE("Adresse";A1);2;9))-1)
und das nach rechts kopieren
Wenn das aber mit AAA beginnen soll, muss dieser Bereich versetzt werden, in zB.A1 muss AAA1 angesprochen werden, also:
=TEIL(ZELLE("Adresse";AAA1);2;FINDEN("$";TEIL(ZELLE("Adresse";AAA1);2;9))-1)
Das geht allerdings nicht über den Bezug auf die letzte Zelle hinaus, hört also 26^2 =676 Spalten vor Ende des Blattes mit XFD auf.. Vierstellig würdest DXu in den xl-Spalten gar nicht unterbringen. Aber brauchst Du das wirklich oder ist das nur eine theoretische Überlegung? Mit viel Phantasie und Arbeit ließe sich eine solche Formel (zB als Fkt der Zeilen) durchaus konstruieren, irgendwie mit Ganzzahl und Rest, wird aber sperrig und recht mühsam! Muss immerhin in xl irgendwie integriert sein!
Ungefähr so:
=wechseln("@";"";wechseln("@";"";(Zeichen(Ganzzahl(Zeile()/26^2)+64)&Zeichen(Ganzzahl((Zeile()-Ganzzahl(Zeile()/26^2))/26+64)&Zeichen(Rest(Zeile();26^2)+65))))
das Wechseln von @ gegen Nichts ist erforederlich, um Zeichen(64+0) =@ zu unterdrücken.
Ist mir aber jetzt zu mühsam, das durchzudeklinieren oder gar auf 4 Zeichen zu erweitern!
Tipp: wenn Du einen Teil der Formel, der ein Zwischenergebnis darstellen sollte, in der Bearbeitungszeile markierst und dann (ohne Eingabetaste!) F9 drückst, wird Dir dieses Teilergebnis angezeigt. Musst die Zelle aber mit esc verlassen, sonst ist der mühsam erstellte Formelteil futsch!
Oubyi hat wieder mal die bessere/kürzere Lösung, trotzdem hier noch mein Ansatz, der Vollständigkeit halber. Er basiert nur auf der Zeichenfolge (Textanalyse, also nicht auf Spalte() oder Zeile())
Zwei Formeln, die sich gegenüber Erweiterungen/Verkürzungen unterschiedlich verhalten.
1.Formel mit Teil(in A1):
=WENN(CODE(TEIL(A1;2;1))<90;TEIL(A1;1;1);ZEICHEN(WENN(CODE(TEIL(A1;1;1))<90;CODE(TEIL(A1;1;1))+1;65)))
&WENN(CODE(TEIL(A1;3;1))<90;TEIL(A1;2;1);ZEICHEN(WENN(CODE(TEIL(A1;2;1))<90;CODE(TEIL(A1;2;1))+1;65)))
&WENN(CODE(TEIL(A1;4;1))<90;TEIL(A1;3;1);ZEICHEN(WENN(CODE(TEIL(A1;3;1))<90;CODE(TEIL(A1;3;1))+1;65)))
&ZEICHEN(WENN(CODE(TEIL(A1;4;1))<90;CODE(TEIL(A1;4;1))+1;65))
Diese Formel nimmt die ersten 4 Zeichen zur Grundlage, tauscht aber nur A-Z aus. AAAA=>AAAB, AAAZ=>AABA usw. Charaktereistischer Fehler: XßAAA => YßAB. Bei weniger als 4 Zeichen ergibt sich #WERT!
Die zweite Formel (mit linls(rechts())) wertet von rechts her aus und sie ist durch einfaches Entfernen des kursiven Teils auf 3 (oder weniger) Zeichen zu verkürzen:
=WENN(CODE(LINKS(RECHTS(A2;3);1))<90;LINKS(RECHTS(A2;4);1);ZEICHEN(WENN(CODE(LINKS(RECHTS(A2;4);1))<90;CODE(LINKS(RECHTS(A2;4);1))+1;65)))
&WENN(CODE(LINKS(RECHTS(A2;2);1))<90;LINKS(RECHTS(A2;3);1);ZEICHEN(WENN(CODE(LINKS(RECHTS(A2;3);1))<90;CODE(LINKS(RECHTS(A2;3);1))+1;65)))
&WENN(CODE(LINKS(RECHTS(A2;1);1))<90;LINKS(RECHTS(A2;2);1);ZEICHEN(WENN(CODE(LINKS(RECHTS(A2;2);1))<90;CODE(LINKS(RECHTS(A2;2);1))+1;65)))
&ZEICHEN(WENN(CODE(LINKS(RECHTS(A2;1);1))<90;CODE(LINKS(RECHTS(A2;1);1))+1;65))
Auch hier bei korrektem Vorlagetext alles ok, typischer Fehler: XßAAß=>ßABA.
Ein Tausch von dann<=> sonst und anstatt <90 => =90 führt zu anderen typischen Fehlern, da kann man sich rumspielen.
Nach ZZZZ oder ZZZZZ beginnt bei BEIDEN Formeln wieder ein neuer Zyklus mit AAAA.
Der Vollständigkeit halber hier noch die richtige Formel:
=WENN(UND(LINKS(RECHTS(A1;3);1)="Z";LINKS(RECHTS(A1;2);1)="Z";LINKS(RECHTS(A1;1);1)="Z");ZEICHEN(WENN(LINKS(RECHTS(A1;4);1)="Z";65;CODE(LINKS(RECHTS(A1;4);1))+1));LINKS(RECHTS(A1;4);1))
&
WENN(UND(LINKS(RECHTS(A1;2);1)="Z";LINKS(RECHTS(A1;1);1)="Z");ZEICHEN(WENN(LINKS(RECHTS(A1;3);1)="Z";65;CODE(LINKS(RECHTS(A1;3);1))+1));LINKS(RECHTS(A1;3);1))
&
WENN(LINKS(RECHTS(A1;1);1)="Z";ZEICHEN(WENN(LINKS(RECHTS(A1;2);1)="Z";65;CODE(LINKS(RECHTS(A1;2);1))+1));LINKS(RECHTS(A1;2);1))
&
ZEICHEN(WENN(LINKS(RECHTS(A1;1);1)="Z";65;CODE(LINKS(RECHTS(A1;1);1))+1))
Sie arbeitet auch mit Kleinbuchstaben korrekt (da in xl "X"="x", gibt aber beim Wechsel vlon z=>a immer ein großes A wieder.
Auch Andere Zeichen (ß, à, 1, !) wertden nicht zurückgewiesen, aber die Auswertung durch Code(Zeichen)+1 führt zu zT absurden Ergebnissen:
[>>]>^>_>`>a>...>z>A
oder
{>|>}>~> >¡>¢>£>Þ>ÿ>#WERT!...
Bei dreistelligen Folgen wird ein A vorangestellt. Um sie korrekt zu verarbeiten, muss man den ersten Teil der Formel löschen (bei zweistelligen sinngemäß: die ersten beiden Teile).
Der Vorteil ggü der Oubyischen Fo ist lediglich, dass Du beliebig beginnen und die Reihe auch unterbrechen kannst, und eben die Kleinbuchstaben bevor ein z-Switch kommt.
Du kannst die Funktionen unter Text (Code und Zeichen) verwenden. Mit code wandelst du einen Buchstaben in eine Zahl um, umgekehrt mit Zeichen. D.h. du musst die Formel Zeichen (Code(Spaltenfeld links) +1) nach rechts fortsetzen, um a, b, c, d, e,... zu bekommen.
also "A" in Feld A1 und dann folgende Formel für B1...etc nach rechts ziehen
=ZEICHEN(CODE(A1)+1)
ok - ich stelle gerade fest, dass deine 3er-Buchstabenkombinatioin dann nach einer entsprechend erweiterten Formel schreit. Aber zumindest haste schon Mal nen Ansatz.
Das müsste eigentlich wie bei den Zahlen gehen, einfach die ersten drei Spalten eingeben, alle drei markieren, dann mit linker und gehaltener Maustaste unten rechts an der Markierung in die gewünschte Richtung ziehen (also je nachdem ob die Spalten jetzt seitlich oder nach oder oben verlaufen sollen).
Geht leider nicht, jedenfalls nicht mit meinem Excel 2010.
Geht nicht. Und leider auch nicht mit Calc, wie ich grad festgestellt habe.
Herzlichen Dank, hat alles wunderbar funktioniert und die Formel ist sehr leicht anzupassen.