Wie formatiere ich eine Microsoft Excel 2007-Zelle hexadezimal?

27

Ich möchte eine Zelle in Microsoft Excel 2007 hexadezimal formatieren, finde aber keine Anleitung dazu.

Gibt es eine integrierte Möglichkeit, die Basis für eine Zelle von 10 auf 16 zu ändern?

WilliamKF
quelle

Antworten:

18

Wie bereits erwähnt, wird die Formel = DEC2HEX (A1) in hexadezimal umgewandelt, und DEC2HEX (A1, 8) wird in hexadezimal mit dem Präfix 0 umgewandelt, um 32 Bits zu bezeichnen. Durch das Hinzufügen der führenden Nullen werden die Zahlen besser lesbar, insbesondere wenn Sie eine Festkomma-Schriftart verwenden. Die hexadezimale und die dezimale Version können jedoch verwechselt werden, wenn alle Ziffern der Zahl zufällig zwischen 0 und 9 liegen (z. B. 327701 = 50015).

Eine Verbesserung ist das Hinzufügen des Präfix "0x". Hierfür gibt es zwei Möglichkeiten. = "0x" & DEC2HEX (A1,8) macht den Trick, aber es ändert das Feld in ein Textfeld, so dass es nicht mehr einfach in Formeln verwendet werden kann. Eine andere Methode ist die Verwendung eines benutzerdefinierten Formats. Wenn Sie das benutzerdefinierte Format "0x" @ auf die Zelle anwenden, kann der Wert der Zelle weiterhin in einer Gleichung verwendet werden. Beispiele:

╔═══╦════════════════╦════════════╦═══════════════ ══════════════╦═══════════════╗
║ ║ A ║ B ║ ║ ║
╠═══╬════════════════╬════════════╬═══════════════ ══════════════╬═══════════════╣
║ 1 ║ ║ Wert ║ Entsprechende Formel ║ Zahlenformat ║
║ 2 ║ Dezimal ║ 11162790 ║ 11162790 ║ Allgemein ║
║ 3 ║ Hex ║ AA54A6 ║ = DEC2HEX (B2) ║ Allgemein ║
║ 4 ║ führende Nullen ║ 00AA54A6 ║ = DEC2HEX (B2,8) ║ Allgemein ║
║ 5 ║ Text 0x Präfix ║ 0x00AA54A6 ║ = DEC2HEX (B2,8) ║ "0x" @ ║
║ 6 ║ Text 0x Präfix ║ 0x00AA54A6 ║ = "0x" & DEC2HEX (B2,8) ║ Allgemein ║
(7) Verwenden Sie B5 (AA54A600) = DEC2HEX (HEX2DEC (B5) * 256) (Allgemein)
(8) Verwenden Sie B5 (0xAA54A600) = DEC2HEX (HEX2DEC (B5) * 256) "0x" @ "
~ 9 ~ Versuche B6 zu benutzen ~ #NUM! ║ = DEC2HEX (HEX2DEC (B6) * 256) ║ Allgemeines ║
╚═══╩════════════════╩════════════╩═══════════════ ══════════════╩═══════════════╝


Große Zahlen mit unterschiedlichen Ziffern können jedoch immer noch schwer zu lesen sein, daher setze ich Kommas in Dezimalzahlen und "_" in Hexadezimalzahlen. Zuerst müssen Sie die oberen und unteren 16 Bits der Zahl abrufen. Die oberen 16 Bits einer 32-Bit-Zahl können mit = INT (A1 / 2 ^ 16) abgerufen werden. Das Teilen durch 2 ^ 16 entspricht einer Verschiebung um 16 Bit nach rechts, und das INT entfernt den Bruchrest. MOD kann verwendet werden, um die unteren 16 Bits einer 32- oder 64-Bit-Zahl abzurufen. = MOD (A1, 2 ^ 16). Der MOD erhält effektiv den Rest zurück, dh die unteren 16 Bits. Hier ist eine Tabelle, die dies in Aktion zeigt.

╔═══╦═════════════╦═══════════════╦═══════════════ ═════════════════════╦═════════╗
║ ║ A ║ B ║ ║ ║
╠═══╬═════════════╬═══════════════╬═══════════════ ═════════════════════╬═════════╣
║ 1 ║ ║ Wert ║ Entsprechende Formel ║ Format ║
≤ 2 ≤ Dezimal ≤ 3.098.743.209 ≤ 3098743209 ≤ #, ## 0 ≤
║ 3 ║ Obere Bytes ║ B8B3 ║ = DEC2HEX (INT (B2 / 2 ^ 16), 4) ║ Allgemein ║
(4) Lower Bytes (11A9) = DEC2HEX (MOD (B2, 2 ^ 16)) General (Allgemein)
(5) Vollständige Nummer (0xB8B3_11A9) = "0x" & DEC2HEX (INT (B2 / 2 ^ 16), 4) Allgemein
║ ║ ║ ║ & "_" & DEC2HEX (MOD (B2, 2 ^ 16), 4) ║ ║
╚═══╩═════════════╩═══════════════╩═══════════════ ═════════════════════╩═════════╝


Übrigens, ich muss mich ganz herzlich bei https://ozh.github.io/ascii-tables/ bedanken . Ich habe diesen Link verwendet, um die ASCII-Texttabellen zu erstellen. Ich habe gerade die Tabelle aus meiner Excel-Tabelle in den Eingabebereich kopiert und automatisch das schöne Unicode-Textlayout erstellt.

OldEmbeddedGuy
quelle
16

Wenn Sie eine Zelle so formatieren möchten, dass Sie eine Dezimalzahl eingeben und diese automatisch als Hexadezimalzahl anzeigen lassen können, ist dies nicht möglich. Sie können die Zelle entweder als Text formatieren und Hexadezimalzahlen direkt eingeben (Excel kann diese jedoch nicht für Berechnungen verwenden) oder die Funktionen DEC2HEX()und HEX2DEC()verwenden, um zwischen Basis 10 und Basis 16 zu konvertieren.

Indrek
quelle
1
Als Referenz gibt es auch DEC2BIN()welche in binäre konvertiert. Verwenden Sie für Binärdateien mit fester Breite so etwas wie=TEXT(DEC2BIN(A1), "0000")
Tor Klingberg
1
In einem deutschsprachigen Excel 2013 führen DEC2HEX und HEX2DEC zu der Fehlermeldung #NAME ?. Mit der Office-Hilfe konnte ich feststellen, dass die Funktionen DEZINHEX bzw. HEXINDEZ heißen.
Bernhard Hiller
Wie erweitere ich = 0x1234AB auf = 0x001234AB (ich benötige eine feste Breite von 8)?
Danijel
@Danijel Verwenden Sie den zweiten Parameter von DEC2HEX.
Vincent G
7

Wenn die zu konvertierende Zelle A1verwendet wird =DEC2HEX(A1).

pnuts
quelle
2
Möglicherweise möchten Sie Ihrem Hex-Wert ein führendes "0x" hinzufügen. Verwenden Sie ="0x"&DEC2HEX(A1,4), um ein Ergebnis zu erhalten, das wie folgt aussieht 0x1AF2.
User5910
4

Wenn Sie mathematische Operationen für in Hex konvertierte Zahlen ausführen müssen, konvertieren Sie diese zuerst in Dezimalzahlen, führen Sie die Operation aus und konvertieren Sie sie dann zurück in Hex.

Wenn die Zelle beispielsweise A1eine Hex-Zahl hat, wie sie aus dieser Formel erstellt werden würde:

=DEC2HEX(17)

Dies würde als 11 angezeigt werden und die Zelle A2hat die Formel:

=DEC2HEX(165)

A5Dies würde angezeigt werden als , und Sie möchten sie addieren, dann würde diese Formel das gewünschte Ergebnis erhalten:

=DEC2HEX(HEX2DEC(A1)+HEX2DEC(A2))

was angezeigt würde als B6

Probier es aus
quelle
1
=REPT("0",4-LEN(DEC2HEX(B3)))&DEC2HEX(B3)

Die REPT-Formel wiederholt die "0" basierend auf der Länge der Hex-Zeichenfolge, die durch Konvertieren von einer Dezimalzahl generiert wird, und der gewünschten Länge der HEX-Zeichenfolge. In diesem Beispiel möchte ich HEX-Zeichenfolgen der Länge 4 generieren.

Anschließend verketten Sie die führenden Nullen mit der tatsächlichen HEX-Zeichenfolge und generieren so den HEX-Wert der gewünschten Länge.

Vorteile:

  1. Einfaches Kopieren der Formel in ein anderes Arbeitsblatt. Mit nur zwei Zellreferenzen auf einen Dezimalwert, B3, zum erneuten Zuweisen.
  2. Die Ergebnisse dieser Formel werden von Excel als HEX-Werte behandelt. Sie könnten auch das "0x" voranstellen, aber ich finde es nicht notwendig.

Hinweis: Ich verwende diese Option, wenn ich HEX-Zeichenfolgen kopiere und diese in unterschiedlichen Längen kopiert werden. Ich erstelle aus den ursprünglichen Werten eine Spalte mit Dezimalwerten, auf die ich diese Formel anwenden kann.

WSimpson
quelle
0

Hier ist eine Lösung, die ich gefunden habe, um sicherzustellen, dass ich diese Hex-Zahlen im HTML-Format formatieren kann:

SWITCH(LEN(DEC2HEX(B6)),1,"000"&DEC2HEX(B6),2,"00"&DEC2HEX(B6),3,"0"&DEC2HEX(B6),4,DEC2HEX(B6))
Stephen Frick
quelle
2
Eine Erklärung dessen, was in Ihrem Code vor sich geht, würde die Antwort nützlicher machen.
WilliamKF