2012-09-26 17:14:51 +0000 2012-09-26 17:14:51 +0000
27
27

Wie formatiere ich eine Zelle in Microsoft Excel 2007 in hexadezimaler Form?

Ich möchte eine Zelle in Microsoft Excel 2007 hexadezimal formatieren, finde aber nicht, wie ich dies tun kann.

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

Antworten (6)

20
20
20
2017-04-20 01:48:01 +0000

Wie bereits erwähnt, konvertiert die Formel =DEC2HEX(A1) in Hexadezimal, und DEC2HEX(A1,8) konvertiert in Hexadezimal mit vorangestellter 0, um 32 Bits zu kennzeichnen. Während das Hinzufügen der führenden 0 die Zahlen besser lesbar macht, insbesondere wenn Sie eine Festkommaschriftart verwenden, können die Hex- und Dezimalversionen durcheinander geraten, wenn alle Ziffern in der Zahl zufällig 0-9 sind (z. B. 327701=50015).

Eine Verbesserung ist das Hinzufügen des Präfixes “0x”. Es gibt 2 Möglichkeiten, dies zu tun: =“0x”&DEC2HEX(A1,8) erfüllt den Zweck, 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, dann kann der Wert der Zelle weiterhin in einer Gleichung verwendet werden. Beispiele:

╔═══╦════════════════╦════════════╦═════════════════════════════╦═══════════════╗ ║ ║ A ║ B ║ ║ ║ ╠═══╬════════════════╬════════════╬═════════════════════════════╬═══════════════╣ ║ 1 ║ ║ Value ║ Corresponding Formula ║ Number Format ║ ║ 2 ║ Decimal ║ 11162790 ║ 11162790 ║ General ║ ║ 3 ║ Hex ║ AA54A6 ║ =DEC2HEX(B2) ║ General ║ ║ 4 ║ leading 0's ║ 00AA54A6 ║ =DEC2HEX(B2,8) ║ General ║ ║ 5 ║ Text 0x prefix ║ 0x00AA54A6 ║ =DEC2HEX(B2,8) ║ "0x"@ ║ ║ 6 ║ Text 0x prefix ║ 0x00AA54A6 ║ ="0x" & DEC2HEX(B2,8) ║ General ║ ║ 7 ║ Use B5 ║ AA54A600 ║ =DEC2HEX(HEX2DEC(B5) \* 256) ║ General ║ ║ 8 ║ Use B5 ║ 0xAA54A600 ║ =DEC2HEX(HEX2DEC(B5) \* 256) ║ "0x"@ ║ ║ 9 ║ Try to use B6 ║ #NUM! ║ =DEC2HEX(HEX2DEC(B6) \* 256) ║ General ║ ╚═══╩════════════════╩════════════╩═════════════════════════════╩═══════════════╝

Große Zahlen mit variierenden Ziffern können jedoch immer noch schwer zu lesen sein, daher setze ich gerne Kommas in Dezimalzahlen und “_"s in Hex-Zahlen. Zuerst müssen Sie die oberen und unteren 16 Bits der Zahl ermitteln. Die oberen 16 Bits einer 32-Bit-Zahl können mit = INT( A1 / 2^16 ) abgerufen werden. Die Division durch 2^16 wirkt wie eine Rechtsverschiebung von 16 Bits, und das INT entfernt den Bruchteil des Rests. MOD kann verwendet werden, um die unteren 16 Bits einer beliebigen 32- oder 64-Bit-Zahl zu erhalten; =MOD(A1, 2^16). Die MOD erhält effektiv den Rest zurück, also die unteren 16 Bits. Hier ist eine Tabelle, die dies in Aktion zeigt. ╔═══╦═════════════╦═══════════════╦════════════════════════════════════╦═════════╗ ║ ║ A ║ B ║ ║ ║ ╠═══╬═════════════╬═══════════════╬════════════════════════════════════╬═════════╣ ║ 1 ║ ║ Value ║ Corresponding Formula ║ Format ║ ║ 2 ║ Decimal ║ 3,098,743,209 ║ 3098743209 ║ #,##0 ║ ║ 3 ║ Upper Bytes ║ B8B3 ║ =DEC2HEX(INT( B2/2^16 ), 4) ║ General ║ ║ 4 ║ Lower Bytes ║ 11A9 ║ =DEC2HEX(MOD( B2, 2^16 )) ║ General ║ ║ 5 ║ Full Number ║ 0xB8B3\_11A9 ║ ="0x" & DEC2HEX(INT( B2/2^16 ), 4) ║ General ║ ║ ║ ║ ║ & "\_" & DEC2HEX(MOD(B2, 2^16), 4) ║ ║ ╚═══╩═════════════╩═══════════════╩════════════════════════════════════╩═════════╝


BTW, ich muss einen großen Dank an https://ozh.github.io/ascii-tables/ aussprechen. Ich habe diesen Link benutzt, um die ASCII-Texttabellen zu erstellen. Ich habe einfach die Tabelle aus meiner Excel-Tabelle in den Eingabebereich kopiert und es wurde automatisch das schöne Unicode-Textlayout erstellt.

16
16
16
2012-09-26 17:24:39 +0000

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

7
7
7
2012-09-26 17:20:16 +0000

Wenn die zu konvertierende Zelle A1 ist, verwenden Sie =DEC2HEX(A1).

4
4
4
2013-12-31 03:16:44 +0000

Wenn Sie mathematische Operationen an in Hex konvertierten Zahlen durchführen müssen, konvertieren Sie sie zuerst in Dezimalzahlen, führen Sie die Operation durch und konvertieren Sie dann zurück in Hex.

Wenn die Zelle A1 beispielsweise eine hexadezimale Zahl enthält, die mit dieser Formel erstellt werden würde:

=DEC2HEX(17)

, die als 11 angezeigt werden würde, und Zelle A2 hat die Formel:

=DEC2HEX(165)

, die als A5 angezeigt werden würde, und Sie wollen sie addieren, dann würde diese Formel das gewünschte Ergebnis liefern:

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

, die als B6 angezeigt werden würde

1
1
1
2018-07-25 14:35:12 +0000
=REPT("0",4-LEN(DEC2HEX(B3)))&DEC2HEX(B3)

Die REPT-Formel wiederholt die “0” basierend auf der Länge der Hex-Zeichenkette, die durch Konvertierung aus einer Dezimalzahl erzeugt wird, und der gewünschten Länge der HEX-Zeichenkette. In diesem Beispiel soll eine HEX-Zeichenkette der Länge 4 erzeugt werden.

Die führenden Nullen werden dann an die eigentliche HEX-Zeichenkette angehängt, wodurch der HEX-Wert der gewünschten Länge erzeugt wird.

Vorteile:

  1. Einfaches Kopieren der Formel in ein anderes Arbeitsblatt. Mit nur zwei Zellverweisen auf einen dezimalen Wert, B3, neu zuzuordnen.
  2. Die Ergebnisse dieser Formel werden von Excel als HEX-Werte behandelt. Sie könnten auch das “0x” voranstellen, aber ich halte es nicht für notwendig.

Hinweis: Ich verwende dies, wenn ich HEX-Zeichenfolgen kopiere und sie in unterschiedlichen Längen übernommen werden. Ich generiere zuerst eine Spalte mit dezimalen Werten aus den Originalwerten, gegen die ich dann diese Formel laufen lassen kann.

0
0
0
2017-01-19 19:55:02 +0000

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))