Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Zahlensysteme - BEITRAG: Umwandlung der Zahl eines beliebigen Zahlensystems in eine Dezimalzahl


Aufgabe
Die Zahl aus einem beliebigen (frei wählbaren) Zahlensystem soll in eine Dezimalzahl umgewandelt werden.

       A               B               C       
1 Zahl  System  ergibt  
2 F2B  16 (HEX)  3.883  
3 Y1  35  1.191  
4 267  8 (Oktal)  183  
5 110001  2 (Binär)  49 
Lösung
In A1 steht die Zahl.
In B1 steht die Zahlenbasis, von der umgerechnet werden soll (maximal 36).

in A4 bis A43 stehen die Zahlen 0 1 2 3 ... bis 39

in B4 steht:
=TEIL(A$1;LÄNGE(A$1)-A4;1)

in C4 steht:
=WENN(LÄNGE(A$1) < A5;0;1*WENN(ISTFEHLER(B4*1);CODE(GROSS(B4))-55;B4))

in D4 steht:
=C4*$B$1^A4

B4, C4 und D4 bis Zeile 42 runterkopieren (diesen Bereich ausblenden).

das Ergebnis:
=SUMME(D4:D42)

Wer will; - in A2 noch eine Warnung bei falschen Eingaben:
=WENN(LÄNGE(C1)>=23;"Dezimalzahl wird zu groß (> 15 Stellen)";WENN(MAX(C4:C40)>100;"keine Umlaute und kein ß";WENN(UND(B1>1;MAX(C4:C40)>B1-1);"maximal "&WENN(B1>10;ZEICHEN(B1-1+55);B1-1);"")))

Lösung mit Array-Formel ohne Hilfsspalten siehe:
http://www.excelformeln.de/formeln.html?welcher=272

Erläuterung

Ab Excel-2013 sind obige Handstände überflüssig mit der Winzformel:
=DEZIMAL(A1;B1)