Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

HEX Code in ASCII umwandeln

Forumthread: HEX Code in ASCII umwandeln

HEX Code in ASCII umwandeln
02.09.2016 11:57:51
Christian

Hallo zusammen,
ich habe eine große Excel Liste mit einem Auszug von einem Telegrammverkehr. Dort wird mir in einer Spalte jeweils der Telegramminhalt im Hex Format angezeigt Beispiel:
53 54 41 39 30 35 35 36 39 37 34 34 4B 30 30 30 30 30 30 30 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 30 54 45
Nun möchte ich in einer nebenliegenden Spalte mir den Hex Code als ASCII text anzeigen lassen, im Beispielfall dann: STA905569744K00000000 00TE.
Gibt es eine "einfache" Formel dafür? Ich habe nur =HEXINDEZ gefunden! Das hilft mir erstmal aber nicht...
Vielen Dank im Voraus!
mfg
Christian

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: HEX Code in ASCII umwandeln
02.09.2016 12:02:33
Rudi Maintaire
Hallo,
jeder Wert in einer Zelle?
=Zeichen(Hexindez(a1))
Gruß
Rudi
AW: HEX Code in ASCII umwandeln
02.09.2016 12:28:25
Christian
Moin,
nein, die Zeichen sind alle in einer Zelle. Mit Leerzeichen zwischen den einzelnen HEX Werten. Die Ausgabe soll dann natürlich auch in einer Zelle stattfinden
Gruß
Christian
Am einfachsten per UDF
02.09.2016 12:31:21
RPP63
Moin!
Folgende UDF in einem allgemeinen Modul:
Function HexInText$(Hexa$)
Dim arrAlt, arrNeu, cnt&
arrAlt = Split(Hexa)
For cnt = 0 To Ubound(arrAlt)
   arrAlt(cnt) = ChrW(WorksheetFunction.Hex2Dec(arrAlt(cnt)))
Next
HexInText = Join(arrAlt)
End Function

Dein Hex-String in A1,
in A2: =GLÄTTEN(HexInText(A1))
ergibt:
Anzeige
Aber Ralf, schon wieder was Spezielles, ...
02.09.2016 12:58:21
Luc:-?
…wo doch alles Benötigte schon im Archiv vorhanden ist. Allerdings liegst du damit ja auch voll im Trend ggw und wohl auch zukünftiger Xl-FktsPgmmierung (→zB vgl hier)… ;-]
=VJoin(ZEICHEN(HEXINDEZ(VSplit(A1)));"") ergibt dann das:
STA905569744K00000000                                             00TE
…und =GLÄTTEN(VJoin(ZEICHEN(HEXINDEZ(VSplit(A1)));"")) das:
STA905569744K00000000 00TE
(letztpubliziert: VJoin-Vs1.4 [nur in hochgeladenen BspDateien], VSplit-Vs1.1)
Übrigens, vbFkt Join ohne Arg2-Angabe verwendet als DefaultWert das LeerZeichen!
Gruß, Luc :-?
Besser informiert mit …
Anzeige
Aber, luc :-?
02.09.2016 18:22:38
RPP63
… ich muss doch kein Schweizer Taschenmesser benutzen, um eine Kreuzschlitzschraube herauszudrehen.
Natürlich geht es damit, ein simpler Schraubendreher ist imo aber leichter und zweckorientierter.
Aber klar, dies ist eher eine Grundsatzdiskussion; ich finde, dass für ein konkretes Problem eine mal schnell erstellte UDF eher Sinn macht.
Bin mir aber gleichzeitig sicher, dass meine Meinung durchaus auf Widerspruch stößt.
;-)
Gruß Ralf
Anzeige
AW: Aber, luc :-?
02.09.2016 18:27:11
snb
Und Luc's Link hat nur mit Rank zu tun (von einer 'ranting' Loki -who the hell might that be ?? -) ;)
You must that correlate with the context of ...
08.09.2016 01:52:44
Luc:-?
…my remarks to Ralf, snb;
the "splitting" of xl-function RANK seems to be just an example of what is going on in the minds of MS-management…
By the way, "Loki" did it, and the work on the announced udf is nearly finished! Be good hope to find it in near future on this scene…!
Greetings, Luc :-?
Anzeige
Ja, bei mir, und wir waren uns doch schon ...
08.09.2016 01:44:17
Luc:-?
…mal einig in bezug auf „PC-Vermüllung“ und so, Ralf; ;-]
glaube doch, mich richtig zu erinnern. Aber mal abgesehen davon, die UDF-Problematik hat es durchaus verdient, ernsthaft und nicht nur schnell mal nebenbei angegangen zu wdn. Das fördert auch das Verständnis der Fktionsweise von Xl-Fktt und ihr Zusam­menwirken in Fmln (auch mit UDFs) und mit der Xl-Steuerung (vgl meine Diskussionen mit neopa!).
Kurz zum Link: MS scheint inzwischen auch auf diesen (Simpel-)Zug aufgesprungen zu sein, wenn man sich so einige als Neuerung verkaufte FktsAufsplittungen der letzten Zeit ansieht. Was soll man zB mit RANG.MITTELW anfangen? Statt 2× Rang 1 erhält man dann 2× Rang 1,5 (so eine Medaille gibt's gar nicht → halb Gold, halb Silber) und statt 3× Rang 3 3× Rang 4! Warum dann nicht auch 2× Rang 2 bzw 3× Rang 5? Absoluter Schwachsinn, aber wem's gefällt; ich hab's jedenfalls in meine UDF VRank (deshalb die späte AW!) eingebaut (neben Sinnvollerem)! Demnächst in diesem Theater…
Morrn, Luc :-?
Anzeige
AW: HEX Code in ASCII umwandeln
02.09.2016 12:03:20
Fennek
Hallo,
ungeprüft:
mit
=zeichen()
wird eine Zahl in das entsprechende Ascii - Zeichen gewandelt
vba: chr()
mfg

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

HEX Code in ASCII umwandeln


Schritt-für-Schritt-Anleitung

Um HEX-Code in ASCII in Excel umzuwandeln, kannst du eine benutzerdefinierte Funktion (UDF) verwenden. Diese Funktion ermöglicht es dir, den HEX-String aus einer Zelle zu konvertieren. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden VBA-Code in das Modul ein:

    Function HexInText(Hexa$)
       Dim arrAlt, arrNeu, cnt
       arrAlt = Split(Hexa)
       For cnt = 0 To UBound(arrAlt)
           arrAlt(cnt) = ChrW(WorksheetFunction.Hex2Dec(arrAlt(cnt)))
       Next
       HexInText = Join(arrAlt)
    End Function
  4. Schließe den VBA-Editor.

  5. Gehe zurück zu deiner Excel-Tabelle. Wenn dein HEX-Code in Zelle A1 steht, gib in Zelle A2 folgende Formel ein:

    =GLÄTTEN(HexInText(A1))

Jetzt wird der ASCII-Text in Zelle A2 angezeigt.


Häufige Fehler und Lösungen

  • Fehler: #NAME?
    Dieser Fehler tritt auf, wenn die Funktion nicht erkannt wird. Stelle sicher, dass du den VBA-Code korrekt eingegeben hast und die Datei als .xlsm (Makro-fähig) gespeichert ist.

  • Fehler: Ungültiges Zeichen
    Achte darauf, dass der HEX-Code in Zelle A1 korrekt formatiert ist und keine ungültigen Zeichen enthält.


Alternative Methoden

Falls du keine VBA-Funktion verwenden möchtest, kannst du auch die Formel =ZEICHEN(HEXINDEZ(A1)) verwenden. Allerdings funktioniert dies nur, wenn du die einzelnen HEX-Werte in separaten Zellen hast. Eine Kombination von Excel-Funktionen ist ebenfalls möglich, jedoch nicht so effizient wie die UDF.


Praktische Beispiele

Angenommen, du hast folgenden HEX-Code in Zelle A1:

53 54 41 39 30 35 35 36 39 37 34 34 4B 30 30 30 30 30 30 30 30 20 20 20 20

Nach Anwendung der oben genannten Schritte wird das Ergebnis in Zelle A2 wie folgt aussehen:

STA905569744K00000000

Tipps für Profis

  • Nutze die Funktion GLÄTTEN, um überflüssige Leerzeichen aus dem Ergebnis zu entfernen.
  • Experimentiere mit weiteren Excel-Funktionen wie TEXTKETTE, um den ASCII-Text weiter zu formatieren.
  • Wenn du oft mit HEX und ASCII arbeitest, speichere deine UDF in einer persönlichen Makrobibliothek, so dass du sie in jedem Projekt verwenden kannst.

FAQ: Häufige Fragen

1. Wie kann ich ASCII-Code in HEX umwandeln?
Verwende die Funktion =DEC2HEX(ASC(A1)), um den ASCII-Code in HEX umzuwandeln.

2. Funktioniert dies in allen Excel-Versionen?
Ja, die beschriebenen Methoden sollten in den meisten modernen Excel-Versionen funktionieren, solange Makros aktiviert sind.

3. Gibt es eine Möglichkeit, mehrere HEX-Codes gleichzeitig zu konvertieren?
Ja, indem du die UDF in Kombination mit anderen Excel-Funktionen und einem Array von HEX-Codes verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige