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

¿Cómo formatear una celda de Microsoft Excel 2007 en hexadecimal?

Me gustaría formatear una celda en Microsoft Excel 2007 en hexadecimal pero no encuentro cómo hacerlo.

¿Existe una forma integrada de cambiar la base de 10 a 16 para una celda?

Respuestas (6)

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

Como se ha mencionado anteriormente, la fórmula =DEC2HEX(A1) convierte a hexadecimal, y DEC2HEX(A1,8) convierte a hexadecimal con el prefijo 0 para denotar 32 bits. Aunque añadir el 0 a la cabeza hace que los números sean más legibles, especialmente si se utiliza una fuente de punto fijo, las versiones hexadecimales y decimales pueden confundirse cuando todos los dígitos del número son 0-9 (por ejemplo, 327701=50015).

Una mejora es añadir el prefijo “0x”. Hay dos maneras de hacerlo. =“0x”&DEC2HEX(A1,8) sirve, pero cambia el campo a un campo de texto, por lo que ya no se puede utilizar fácilmente en las fórmulas. Otro método es utilizar un formato personalizado. Si aplicas el formato personalizado “0x”@ a la celda, entonces el valor de la celda puede seguir siendo utilizado en una ecuación. Ejemplos:

╔═══╦════════════════╦════════════╦═════════════════════════════╦═══════════════╗ ║ ║ 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 ║ ╚═══╩════════════════╩════════════╩═════════════════════════════╩═══════════════╝
    • Sin embargo, los números grandes con dígitos variados pueden seguir siendo difíciles de leer, así que me gusta poner comas en los números decimales y “_” en los números hexadecimales. Primero hay que obtener los 16 bits superiores e inferiores del número. Los 16 bits superiores de un número de 32 bits se pueden obtener con = INT( A1 / 2^16 ). Dividir por 2^16 actúa como un desplazamiento a la derecha de 16 bits, y el INT elimina el resto fraccionario. Se puede utilizar MOD para obtener los 16 bits inferiores de cualquier número de 32 o 64 bits; =MOD(A1, 2^16). El MOD recupera efectivamente el resto, que son los 16 bits inferiores. Aquí hay una tabla que muestra esto en acción. ╔═══╦═════════════╦═══════════════╦════════════════════════════════════╦═════════╗ ║ ║ 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) ║ ║ ╚═══╩═════════════╩═══════════════╩════════════════════════════════════╩═════════╝
    • Por cierto, tengo que dar un gran agradecimiento a https://ozh.github.io/ascii-tables/ . He utilizado ese enlace para crear las tablas de texto ASCII. Simplemente copié la tabla de mi hoja de cálculo Excel en su sección de Entrada y automáticamente creó el bonito diseño de texto unicode.
16
16
16
2012-09-26 17:24:39 +0000

Si quieres formatear una celda para que puedas escribir un número decimal y que se muestre automáticamente como un número hexadecimal, no es posible. Puedes formatear la celda como texto e introducir los números hexadecimales directamente (pero ten en cuenta que Excel no puede utilizarlos para los cálculos), o utilizar las funciones DEC2HEX() y HEX2DEC() para convertir entre base 10 y base 16.

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

Si la celda a convertir es A1 utilice =DEC2HEX(A1).

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

Si necesitas realizar operaciones matemáticas con números convertidos a hexadecimal, primero conviértelos a decimal, realiza la operación y luego vuelve a convertirlos a hexadecimal.

Por ejemplo, si la celda A1 tiene un número hexadecimal, como se crearía a partir de esta fórmula

=DEC2HEX(17)

que se mostraría como 11, y la celda A2 tiene la fórmula

=DEC2HEX(165)

que se mostraría como A5, y quieres sumarlos, entonces esta fórmula obtendría el resultado deseado:

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

que se mostraría como B6

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

La fórmula REPT repite el “0” basándose en la longitud de la cadena hexadecimal que se genera al convertirla desde un decimal, y la longitud deseada de la cadena HEX. En este ejemplo estoy buscando generar cadenas HEX de longitud 4.

Luego se concatenan los ceros iniciales a la cadena HEX real, generando así el valor HEX de la longitud deseada.

Ventajas:

  1. Facilidad para copiar la fórmula a otra hoja de cálculo. Con sólo dos referencias de celda a un valor decimal, B3, para reasignar.
  2. Los resultados de esta fórmula son tratados por Excel como valores HEX. También se podría anteponer el “0x”, pero no lo encuentro necesario.

Nota: Utilizo esto cuando estoy copiando cadenas HEX y se copian con diferentes longitudes. Primero genero una columna de valores decimales a partir de los valores originales con los que puedo ejecutar esta fórmula.

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

Esta es una solución que encontré para poder formatear estos números hexadecimales en formato HTML:

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