Je voudrais un format d'une cellule dans Microsoft Excel 2007 en hexadécimal, mais je ne trouve pas comment faire cela.
Existe-t-il un moyen intégré de changer la base de 10 à 16 pour une cellule?
Si vous souhaitez formater une cellule de manière à pouvoir taper un nombre décimal et le faire afficher automatiquement sous forme de nombre hexadécimal, ce n'est pas possible. Vous pouvez soit formater la cellule en tant que texte et entrer directement des nombres hexadécimaux (mais notez qu'Excel ne peut pas les utiliser pour les calculs), ou utiliser les fonctions DEC2HEX()
et HEX2DEC()
pour convertir entre la base 10 et la base 16.
Si la cellule à convertir est A1
, utilisez =DEC2HEX(A1)
.
Si vous devez effectuer des opérations mathématiques sur les nombres convertis en hexadécimal, convertissez-les d'abord en décimales, effectuez l'opération, puis reconvertissez-les 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é en tant que A5
, et que vous voulez les additionner ensemble, alors cette formule obtiendrait le résultat souhaité:
=DEC2HEX(HEX2DEC(A1)+HEX2DEC(A2))
qui serait affiché comme B6
=REPT("0",4-LEN(DEC2HEX(B3)))&DEC2HEX(B3)
La formule REPT répète le "0" en fonction de la longueur de la chaîne hexagonale 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 dans la chaîne HEX réelle, générant ainsi la valeur HEX de la longueur souhaitée.
Avantages:
Remarque: je l'utilise lorsque je copie des chaînes HEX et que celles-ci sont copiées à différentes longueurs. Je génère d'abord une colonne de valeurs décimales à partir des valeurs d'origine sur lesquelles je peux ensuite exécuter cette formule.
Voici une solution que j'ai trouvée pour m'assurer de pouvoir formater ces nombres hexadécimaux au format HTML:
SWITCH(LEN(DEC2HEX(B6)),1,"000"&DEC2HEX(B6),2,"00"&DEC2HEX(B6),3,"0"&DEC2HEX(B6),4,DEC2HEX(B6))