¿Cómo evito que Excel convierta el valor 0503E000 a 5.03E + 02 automáticamente?

22

Excel convirtiendo el valor 0503E000 a 5.03E + 02 en cualquier celda automáticamente en CSV Intenté convertirlo a número de texto y general, pero después de guardarlo y volver a abrirlo vuelve a 5.03E + 02

¿Cómo evito que esto suceda?

CrashOverride
fuente
solo cambia el tamaño del ancho de la columna y debería mostrarse normalmente
Scorpion99
¿Has intentado formatear la celda como texto antes de ingresar el texto?
CharlieRB
intentado cambiar el tamaño y el formato como texto ya no ir ....
CrashOverride
Si necesita usar el valor como un número hexadecimal (es decir, no puede tenerlo como una cadena de texto), puede anidar DEC2HEXy HEX2DECcadenas para el número original (por ejemplo, =DEC2HEX(HEX2DEC("0503E000"))para su ejemplo). Puede que no ayude si necesita manipular el archivo csv sin que contenga fórmulas, pero es otra opción además de formatear como texto.
Myles

Respuestas:

16

Creo que el problema clave aquí es que está utilizando un CSV, que no tiene el tipo de celda incrustado en él. Excel intenta automáticamente interpretar que la celda tiene un número científico, por lo que está viendo 5.03E + 02 en lugar de 0503E000 .

Intente crear un libro de Excel y formatee todas las celdas como texto, y luego pegue los datos. Lo probé en Excel 2013 y funcionó.

Jason Hutchinson
fuente
Sí, funciona en el libro de trabajo, pero desafortunadamente tenemos que usar CSV para este propósito ... lástima
CrashOverride
Por lo tanto, no use Excel para ver el contenido, o ejecute una macro en la celda, para volver a convertirlo o use una sintaxis ligeramente diferente si usó 0x antes del valor que no creo que convertiría
Ramhound
Creo que tendremos que posponer esto ... porque si lo abrimos en otro editor como notepad o notepad ++ tiene el valor correcto ... así que creo que la celda tiene el valor correcto solo mostrándolo extrañamente en notación científica ....
CrashOverride
26

Si puede convertir o controlar el formato CSV , puede forzar que una columna se analice como texto en Excel envolviéndola entre comillas dobles y anteponiendo un signo igual.

Excel descartará descuidadamente la precisión en este formato:

Value,0503E000,1234123412341234

O incluso este formato:

Value,"0503E000","1234123412341234"

Convirtiéndolo en:

Value  |  5.03E+02  |  1234123412341230

Sin embargo , agregar el signo igual obliga a Excel a preservar a regañadientes sus datos:

Value,="0503E000",="1234123412341234"

... que se abre como:

Value  |  0503E000  |  1234123412341234
brianary
fuente
1
Gran solución al pegar desde SQL
SeaSprite
1
También es una excelente solución al importar datos a través de "Obtener datos externos" en el menú "Datos" de Excel.
Mohsen Abasi
1
Gran solución El único inconveniente (pequeño) es que terminarás con fórmulas en lugar de valores. Así que simplemente copie todo y luego pegue los valores , lo que conducirá a un archivo Excel algo más pequeño.
Stef
9

En lugar de abrir "el archivo CSV en Excel, seleccione Importar el archivo (en Excel 2007-2010 navegaría a la Cinta de datos / Obtener datos externos / Del texto). No estoy seguro sobre 2013 pero debería haber algo similar. Cuando Al hacerlo, el asistente de Importación de texto se abrirá y le dará la oportunidad de formatear la columna que contiene ese Valor como Texto, antes de que Excel (no tan útil) lo cambie a un valor numérico.

Ron Rosenfeld
fuente
1
Esta. Casi nunca abro archivos CSV directamente.
pepoluan
@pepoluan No entiendo lo que has escrito.
Ron Rosenfeld
¿Qué parte exactamente no entiendes?
pepoluan
44
@pepoluan Gracias. Si lo hubiera entendido this, el resto habría sido claro. Supongo que me estoy haciendo viejo :-(
Ron Rosenfeld
1
Tenía la esperanza de que usar "esto" como una oración completa hubiera tenido una muerte rápida, pero 4 años después, es tan fuerte como siempre.
variante
2

Comience la celda con un apóstrofe para forzar la interpretación del texto:

'0502E000

Básicamente, esto le dice a Excel que no analice el campo como un número. Debido a que hay una 'E' en el campo, parece un número para Excel. El apóstrofe no se ingresará en la celda:

[a1] '0502E000
[b1] =hex2dec(a1)

La celda 'b1' mostrará 84074496.

HardScale
fuente
2
Esto funciona al ingresar directamente en Excel, pero no con el archivo CSV.
SBF
Al abrir un archivo csv, el apóstrofe se ingresará en la celda
Stef
0

Intente cargar el archivo (datos obtenidos de la tabla DB) a través de la opción DATOS en MS excel luego simplemente mientras carga simplemente seleccione "No detectar tipos de datos" en "Detección de tipo de datos" y luego cargue, esto lo mantendrá como formato de datos y carga Excel, sin necesidad de conversiones de columna.

Swapna nune
fuente
0

Pegue los datos en una hoja de cálculo de Google. Seleccione la columna ==> Formato ==> Número => Formato personalizado => escriba el número de dígitos a los que desea que se aplique el formato (por ejemplo: 10 dígitos = 0000000000)

Kiran
fuente
Me gustaría sugerir una mejor edición de tu publicación, ¡ya que necesito agregar algunos ejemplos!
Rajesh S
-1

Con el formato de celda predeterminado, Excel modificará automáticamente los números con un cero delante y los números largos. Por ejemplo, si escribe 012, se cambiará a 12.

Si formatea las celdas como Texto , cualquier número que escriba en la celda permanecerá tal cual y Excel no lo modificará.

Sin embargo, si pega un número de otra fuente en una celda que está formateada como Texto , y en la fuente hay algún tipo de formato, el formato de la celda cambiará de Texto a General , y la manipulación del número volverá.

La solución que encontré fue hacer un pegado especial y pegar el número como Texto . Luego, la celda permanece con su formato de texto , y el número no se modifica en absoluto.

Shmuel Wolfson
fuente