Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 17-stellige Zahl

17-stellige Zahl
18.07.2021 17:06:32
Stefan
Hallo Zusammen,
ich habe eine Liste mit Hexadezimalzahlen, die ich in eine Dezimalzahl umrechnen möchte.
Leider sind die Zahlen so groß, z.B. 80 1E59 AA5C 4404 so dass die Dezimalzahl 36.062.167.478.060.036
nicht mehr angezeigt werden können. Leider kann ich die Dezimalzahl auch nicht über VBA ermitteln und
anzeigen.
Hat jemand evtl. eine Lösung?
Vielen Dank im Voraus
Grüß Stefan
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 17-stellige Zahl
18.07.2021 17:08:12
Hajo_Zi
Hallo Stefan,
Zelle formatieren, Text.
GrußformelHomepage
Anzeige
AW: 17-stellige Zahl
18.07.2021 17:14:46
Stefan
Hallo Hajo,
dadurch kommt aber immer noch der Fehler #Zahl! .
AW: 17-stellige Zahl
18.07.2021 17:17:18
Hajo_Zi
die Eingabe geht bei mir ohne Probleme. Ich sehe keine Grund warum die Eingabe in #Zahl umgewandelt werden sollte?
Dir ist bekannt das Excel nur 15 Stellen hat.
GrußformelHomepage
Anzeige
AW: 17-stellige Zahl
18.07.2021 17:30:39
Stefan
Hallo Hajo,
die Hex Zahl ist 14-stellig und das Ergebnis ist 17-stellig.
Das mit den 15 Stellen, war mir nicht bekannt.
Kann ich den Wert über VBA berechnen und dann den Wert als Text ausgeben?
Gruß Stefan
Anzeige
AW: die XL-Sstandarfunktionalität setzt Grenzen...
18.07.2021 17:30:41
neopa
Hallo Stefan,
... die Funktion HEXINDEZ() setzt - zumindest in meiner älteren Excelversion 2016 - lediglich bis 11 Dezimalstellen um. Unabhängig davon kann Excel auch sonst als Zahlen nur mit einer Genauigkeit von max 15 Stellen darstellen. Demzufolge könntest Du Deine Hexadezimalzahlen in Excel mE wenn überhaupt, wohl nur sehr aufwendig ermitteln und nur als Textwert anzeigen lassen. Google mal ob Du im Internet fündig wirst.
Gruß Werner
.. , - ...
Anzeige
AW: die XL-Sstandarfunktionalität setzt Grenzen...
18.07.2021 17:33:21
Stefan
Ich danke dir und wünsche dir noch ein schönes WE.
Gruß Stefan
AW: wünsche ich Dir auch owT
18.07.2021 17:33:58
neopa
Gruß Werner
.. , - ...
17-stellige Zahl ist m.VBA mögl - als Text, ...
18.07.2021 18:58:15
Luc:-?
…Stefan,
in der Abbildung auf Xl. Damit kannst du dann idR auch nur per VBA weiterrechnen. Die Zahl muss als Text angegeben wdn und kann in einem VBA-Pgm mit CDec in eine echte Zahl gewandelt wdn, mit der im Datentyp Variant gerechnet wdn kann (volle Genauigkeit bis 28 Ziffern). Eine HexZahl als Ausgangstext darf in Xl nur 10 Stellen lang sein, in VBA nur 8. Dabei wird sie negativ, wenn ihr 1.Bit mit 1 besetzt ist (in Hex ab 8 als 1.Ziffer). Für alles, was darüber hinaus geht, musst du die Umsetzung selbst pgmmieren (oder ein Pgm dafür finden, vgl Hajo).
Auf Excel-Formeln (rechts oben im Forumskopf) findest du Alternativen mit Xl-Fmln.
Gruß, Luc :-?
Anzeige
AW: 17-stellige Zahl ist m.VBA mögl - als Text, ...
18.07.2021 22:19:34
Stefan
Hallo Luc,
danke für deine Antwort. Ich habe mir ein kleines Programm geschrieben,
damit habe ich die Hexadezimal-Zahl in eine Dezimalzahl umgewandelt.
Leider schreibt das Programm die Zahl in Exponentialschreibweise.
z.B. 2,499832738628387E+15
Gib es da noch eine Möglichkeit?
Anzeige
AW: 17-stellige Zahl ist m.VBA mögl - als Text, ...
18.07.2021 22:27:35
Daniel
Hi.
Wie sieht das Programm aus?
Beschreibe mal konkret, wie du das Ergebnis erzeugt und wie du die Ausgabe realisiert hast.
Gruß Daniel
AW: 17-stellige Zahl ist m.VBA mögl - als Text, ...
18.07.2021 22:55:18
Stefan
Hallo Daniel,
hier mein kleines Programm. Das Programm wird aufgerufen über:
=HexaToDeci(F2)

Public Function HexaToDeci(rngZelle As Range) As Variant
Dim i As Integer
Dim basis As Variant
Dim faktor As Integer
basis = 1
For i = Len(rngZelle.Text) To 1 Step -1
If Mid(rngZelle.Text, i, 1) >= "0" And Mid(rngZelle.Text, i, 1) = "A" And Mid(rngZelle.Text, i, 1) 

Anzeige
Viel zu lang, ...
19.07.2021 05:08:24
Luc:-?
…Stefan; ;-)
ein Einzeiler sollte schon genügen:

Function Hex2DecExtd(Bezug): Hex2DecExtd = CStr(CDec(Bezug)): End Function
Allerdings wird hierbei erwartet, dass die HexZahl mit &h bzw &H beginnt. Die Fml müsste dann bspw so aussehen:
=Hex2DecExtd("&h"&A1)
Das ergäbe dann für deine Bsp-HexZahl 801E59AA5C4404 (ohne Leerzeichen!) ⇒ 36062167478060036
Falls auch noch Leerzeichen entfernt wdn müssen, so: =Hex2DecExtd("&h"&WECHSELN(A1;" ";""))
Hierbei wdn auch nach den genannten Regeln NegativWerte gebildet, je nachdem wie lang die HexZahl ist, immer ein Vielfaches von 8. Also ≤8, ≤16 usw. Vorne bis zur nächsten BlockLänge fehlende Ziffern wdn als 0 angenommen. Erst, wenn am Anfang der VollBlock-GesamtZahl (8., 16.Stelle usw von rechts) mindestens eine 8 steht, wird die GesamtZahl negativ.
Morhn, Luc :-?
Anzeige
AW: Viel zu lang, ...
19.07.2021 07:09:06
Stefan
Ja Luc,
wer's kann....
Vielen Dank
auch an Hajo
und noch einen schönen Tag
Na dann erledigt! owT
19.07.2021 09:26:22
Luc:-?
:-?
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Umrechnung von 17-stelligen Hexadezimalzahlen in Excel


Schritt-für-Schritt-Anleitung

  1. Zelle formatieren: Stelle sicher, dass die Zelle, in die du die Hexadezimalzahl eingibst, als Text formatiert ist. Dies verhindert, dass Excel die Zahl in die exponentielle Schreibweise umwandelt.

    • Klicke mit der rechten Maustaste auf die Zelle und wähle „Zellen formatieren“.
    • Wähle „Text“ aus der Liste.
  2. Hexadezimalzahl eingeben: Gib deine Hexadezimalzahl in die formatierte Zelle ein, z.B. 801E59AA5C4404.

  3. VBA-Funktion erstellen: Um die Hexadezimalzahl in eine Dezimalzahl umzuwandeln, kannst du eine benutzerdefinierte VBA-Funktion verwenden. Öffne den VBA-Editor und füge den folgenden Code ein:

    Public Function HexaToDeci(rngZelle As Range) As Variant
       Dim i As Integer
       Dim basis As Variant
       Dim faktor As Integer
       basis = 1
       For i = Len(rngZelle.Text) To 1 Step -1
           If Mid(rngZelle.Text, i, 1) >= "0" And Mid(rngZelle.Text, i, 1) <= "9" Then
               faktor = Asc(Mid(rngZelle.Text, i, 1)) - Asc("0")
           Else
               faktor = Asc(UCase(Mid(rngZelle.Text, i, 1))) - Asc("A") + 10
           End If
           HexaToDeci = HexaToDeci + faktor * basis
           basis = basis * 16
       Next i
    End Function
  4. Funktion anwenden: Nutze die Funktion in einer Zelle, um die Umwandlung durchzuführen. Beispiel:

    =HexaToDeci(A1) 

    (A1 ist die Zelle mit der Hexadezimalzahl.)


Häufige Fehler und Lösungen

  • #Zahl! Fehler: Dieser Fehler tritt auf, wenn die Eingabe nicht korrekt formatiert ist. Stelle sicher, dass die Zelle als Text formatiert wurde, bevor du die Hexadezimalzahl eingibst.

  • Exponentialschreibweise: Wenn die Ausgabe in der exponentiellen Schreibweise erfolgt, kannst du die Funktion CStr(CDec(Bezug)) verwenden, um die Zahl als Text auszugeben.


Alternative Methoden

  • HEXINDEZ-Funktion: In Excel gibt es die Funktion HEXINDEZ(), die jedoch eine Begrenzung von 11 Dezimalstellen hat. Diese Methode ist nicht für die Umwandlung von 17-stelligen Zahlen geeignet.

  • Direkte Umwandlung in VBA: Verwende die VBA-Funktion CDec, um die exakte Umwandlung von Hexadezimal in Dezimal zu gewährleisten, ohne die Begrenzung auf 15 Stellen zu berücksichtigen.


Praktische Beispiele

  1. Beispiel mit 14-stelliger Hexadezimalzahl:

    • Eingabe: 1A2B3C4D5E6F
    • Ausgabe durch die Funktion HexaToDeci: 17592186044415
  2. Beispiel mit 17-stelliger Hexadezimalzahl:

    • Eingabe: 801E59AA5C4404
    • Ausgabe durch die Funktion HexaToDeci: 36062167478060036

Tipps für Profis

  • Verwende die Funktion WECHSELN, um Leerzeichen in Deiner Hexadezimalzahl zu entfernen, bevor Du die Umwandlung durchführst. Beispiel:

    =HexaToDeci(WECHSELN(A1; " "; ""))
  • Wenn Du mit sehr großen Zahlen arbeitest, überlege, ob Du die Ausgabe als Text formatierst, um Darstellungsprobleme in Excel zu vermeiden.


FAQ: Häufige Fragen

1. Warum kann Excel keine 17-stellige Zahl korrekt darstellen? Excel hat eine Limitierung von 15 Ziffern für die Darstellung von Zahlen. Alles darüber wird in der Regel als #Zahl! angezeigt.

2. Wie kann ich sicherstellen, dass meine Hexadezimalzahl als Text behandelt wird? Formatiere die Zelle vor der Eingabe als „Text“ und stelle sicher, dass du keine Leerzeichen in der Zahl hast.

3. Gibt es eine einfache Möglichkeit, Hexadezimalzahlen in Excel umzurechnen? Die Verwendung einer benutzerdefinierten VBA-Funktion ist der effektivste Weg, um große Hexadezimalzahlen korrekt in Dezimalzahlen umzuwandeln, ohne die Limitationen von Excel zu beachten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige