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

Comment formater une cellule Microsoft Excel 2007 en hexadécimal ?

Je voudrais formater une cellule dans Microsoft Excel 2007 en hexadécimal mais je ne trouve pas comment faire.

Y a-t-il un moyen intégré de changer la base de 10 à 16 pour une cellule ?

Odpowiedzi (6)

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

Comme mentionné précédemment, la formule =DEC2HEX(A1) convertit en hexagone, et DEC2HEX(A1,8) convertit en hexagone avec le préfixe 0 pour indiquer 32 bits. Bien que l'ajout des 0 de tête rende les nombres plus lisibles, surtout si vous utilisez une police à virgule fixe, les versions hexagonale et décimale peuvent se mélanger lorsque tous les chiffres du nombre se trouvent être de 0 à 9 (par exemple 327701=50015).

Une amélioration consiste à ajouter le préfixe “0x”. Il y a deux façons de le faire : = “0x”&DEC2HEX(A1,8) fera l'affaire, mais il transforme le champ en champ de texte, de sorte qu'il ne peut plus être utilisé facilement dans les formules. Une autre méthode consiste à utiliser un format personnalisé. Si vous appliquez le format personnalisé “0x”@ à la cellule, alors la valeur de la cellule peut toujours être utilisée dans une équation. Exemples :

╔═══╦════════════════╦════════════╦═════════════════════════════╦═══════════════╗ ║ ║ 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 ║ ╚═══╩════════════════╩════════════╩═════════════════════════════╩═══════════════╝

Cependant, les grands nombres à chiffres variables peuvent toujours être difficiles à lire, c'est pourquoi j'aime mettre des virgules dans les nombres décimaux et des “_” dans les nombres hexagonaux. Vous devez d'abord obtenir les 16 bits supérieurs et inférieurs du nombre. Les 16 bits supérieurs d'un nombre de 32 bits peuvent être récupérés avec = INT( A1 / 2^16 ). La division par 2^16 agit comme un décalage à droite de 16 bits, et l'INT supprime le reste fractionnaire. Le MOD peut être utilisé pour obtenir les 16 bits inférieurs d'un nombre quelconque de 32 ou 64 bits ; =MOD(A1, 2^16 ). Le MOD récupère effectivement le reste, c'est-à-dire les 16 bits inférieurs. Voici un tableau qui montre cela en action. ╔═══╦═════════════╦═══════════════╦════════════════════════════════════╦═════════╗ ║ ║ 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, je dois remercier chaleureusement https://ozh.github.io/ascii-tables/ . J'ai utilisé ce lien pour créer les tableaux de texte ASCII. Je viens de copier le tableau de ma feuille de calcul Excel dans sa section Input et il a automatiquement créé la belle mise en page de texte unicode.

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

Si vous souhaitez formater une cellule de manière à pouvoir taper un nombre décimal et l'afficher automatiquement en hexadécimal, cela n'est pas possible. Vous pouvez soit formater la cellule sous forme de texte et saisir directement des nombres hexadécimaux (mais notez qu'Excel ne peut pas les utiliser pour les calculs), soit utiliser les fonctions DEC2HEX() et HEX2DEC() pour convertir entre la base 10 et la base 16.

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

Si la cellule à convertir est A1 utilisez =DEC2HEX(A1).

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

Si vous devez effectuer des opérations mathématiques sur des nombres convertis en hexadécimal, convertissez-les d'abord en décimal, effectuez l'opération, puis reconvertissez en hexadécimal.

Par exemple, si la cellule A1 a un nombre hexadécimal, tel qu'il serait créé à partir de cette formule :

=DEC2HEX(17)

qui serait affiché comme 11, et la cellule A2 a la formule :

=DEC2HEX(165)

qui serait affiché comme A5, et vous voulez les additionner, alors cette formule obtiendrait le résultat souhaité :

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

qui serait affiché comme B6.

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

La formule REPT répète le “0” sur la base de la longueur de la chaîne hexagonale qui est générée en la convertissant à partir d'une décimale, et de la longueur souhaitée de la chaîne HEX. Dans cet exemple, je cherche à générer des chaînes HEX de longueur 4.

Vous concaténez ensuite les zéros de tête à la chaîne HEX réelle, générant ainsi la valeur HEX de la longueur souhaitée.

Avantages :

  1. Copie facile de la formule sur une autre feuille de calcul. Avec seulement deux références de cellule à une valeur décimale, B3, à réaffecter.
  2. Les résultats de cette formule sont traités comme des valeurs HEX par Excel. Vous pouvez aussi préfixer le “0x”, mais je ne le trouve pas nécessaire.

Note : J'utilise cette formule lorsque je copie des chaînes HEX et qu'elles sont copiées à des longueurs variables. Je génère d'abord une colonne de valeurs décimales à partir des valeurs originales, sur laquelle je peux ensuite appliquer cette formule.

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

Voici une solution que j'ai trouvée pour être sûr de pouvoir formater ces numéros hexagonaux au format HTML :

SWITCH(LEN(DEC2HEX(B6)),1,"000"&DEC2HEX(B6),2,"00"&DEC2HEX(B6),3,"0"&DEC2HEX(B6),4,DEC2HEX(B6))