@ > Home > Inhalt > Text in Dezimalzahl wandeln Excel 97+

Problem

Viele anspruchsvollere Formeln arbeiten nur mit Zahlen. MAX, MIN, KKLEINSTE, KGRÖSSTE und RANG beispielsweise könnten aber auch für Texte zutreffende Antworten liefern, einerseits auch schon einzeln, vor allem dann aber, wenn die o.g. Funktionen nur nützliche Vehikel einer Matrixformel sind. Man möchte nicht immer für damit verbundene Aussagen eine Tabelle sortieren müssen.

Lösung

Für eine Stringumwandlung in Zahlen treffen wir folgende Annahmen:

- Strings werden "linksbündig" sortiert. Der erste Buchstabe geht in die Zahl also mit höchstem Gewicht ein. "azzzzzz" ist kleiner als "b".

- die 15stellig genaue Excel-Dezimalzahl ergibt in dem 26er-Zahlensystem "Alphabet" 10 signifikante Stellen. Nachfolgende Stellen müssen also unter den Tisch fallen dürfen. Dies kann heikel sein bei Texten wie "US Air Force Captain" und "US Air Force Lieutenant".

B1: =SUMMENPRODUKT((CODE(TEIL(KLEIN(A1)&WIEDERHOLEN("a";
MAX(;10-LÄNGE(A1)));ZEILE($1:$10);1))-97)*26^(10-ZEILE($1:$10)))
wandelt erst einmal grob um.

Großbuchstaben, Leerzeichen, Bindestriche und nationale Sonderzeichen aus dem zweiten Teil des ASCII-Zeichensatzes werden so nicht zutreffend einsortiert; dies spielt jedoch eine Rolle, wenn diese Zeichen weit vorn stehen. Dies ist allerdings der Fall: "Häßler" kommt bspw. mit dieser Formel nicht nur hinter "Hz", sondern auch hinter "Lz". Behandlung tut also not.

Man benenne auf B1 stehend die Formel mit  
R: =WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(
WECHSELN(KLEIN(A1);" ";);"-";);",";);"ä";"ae");"ö";"oe");"ü";"ue");"ß";"ss")

(ausreichend für dt. Belange; für internationale Daten kann eine weitere Verschachtelung über 8 Ebenen nötig sein, was aber bei benannten Formeln über verschachtelte Verwendung weiterer Benennungen problemlos möglich ist)

und verwende dieses R mit der erstgenannten Formel wie folgt:
B1: =
SUMMENPRODUKT((CODE(TEIL(R&WIEDERHOLEN("a";
MAX(;10-LÄNGE(R)));ZEILE($1:$10);1))-97)*26^(10-ZEILE($1:$10)))

Hinweis: Ab xl2007 kann der Formelinhalt von R auch in B1 (Achtung: 2mal!) eingesetzt werden, da dort mehr als 8 Verschachtelungen zulässig sind.

Aus "Häßler-Meier, Thomas" wird so zunächst "haesslermeierthomas", wovon dann "haesslerme" in die Zahl 38.044.432.451.120 gewandelt wird. Die Kontrolle ergibt für "haesslermf" 38.044.432.451.121.

Sollen etwaige Zahlen in einem gemischten Bereich hinter Texten ausgewertet werden, ändert sich die Formel z.B. in

B1: =WENN(ISTZAHL(A1);A1*10^5+10^15;
SUMMENPRODUKT((CODE(TEIL(R&WIEDERHOLEN("a";
MAX(;10-LÄNGE(R)));ZEILE($1:$10);1))-97)*26^(10-ZEILE($1:$10))))