¿Por qué una columna de Excel formateada como número pierde su cero inicial cuando la columna está formateada como texto?

8

Tengo que exportar una hoja de cálculo a CSV. Una de las columnas es un código postal con códigos postales de la costa este que tienen un cero a la izquierda. Cuando reformateo esa columna como Texto con la esperanza de preservar el cero inicial en la exportación, ¡inmediatamente la columna va de la derecha a la izquierda y el cero inicial desaparece! Esperaría todo lo contrario, que podría perder el cero si se reformatea de texto a número.

¿Cómo conservo ese cero inicial?

mrblint
fuente

Respuestas:

6

Teoría

Excel tiene dos nociones diferentes y no relacionadas cuando se trata de datos en celdas: valor sin procesar / almacenado y valor de visualización .

El valor "en bruto" o almacenado son los datos reales en una representación sin formato. El tipo de datos sin procesar puede ser número, texto, fecha, etc.

El valor de "visualización" es cómo se formatean los datos. Cuando utiliza la GUI de Excel, ve el valor de visualización, no el valor bruto.

El problema es que cuando exporta a CSV, toma el valor bruto y lo exporta, ¡no el valor de visualización! Por lo tanto, incluso si formatea los datos para que contengan ceros a la izquierda utilizando el cuadro de diálogo Formato de celdas, si el valor subyacente no contiene un cero a la izquierda, su exportación tampoco lo hará.

Debe formatear todos los datos como texto (en la hoja de cálculo de Excel) y luego agregar un cero inicial cuando sea apropiado. Esto eliminará el valor de visualización haciéndote creer que tienes un cero inicial en el valor bruto (no lo tienes).

Solución

El cero no existe como parte del contenido de la celda, solo el formato, por lo que cuando formatea como texto no lo obtiene. Puede intentar usar una fórmula en la siguiente columna, por ejemplo, si tiene códigos postales de 5 dígitos (?) Con entradas en A2, coloque esta fórmula en B2

=TEXT(A2,"00000")

copia la fórmula en la columna

El resultado de eso es un valor de texto (posiblemente con cero inicial real). Una vez que tenga este valor en otra columna, puede copiar y hacer "Pegar valores" sobre la columna original para reemplazar todos los datos subyacentes con los datos rellenados con ceros. Luego elimine la columna adicional.

barry houdini
fuente
Hola Barry, excelente respuesta, agregué un poco de "teoría" de fondo en lugar de publicar otra respuesta ... siéntase libre de editar como desee, esta es una respuesta colaborativa :-)
allquixotic
@allquixotic, no hay problema, buenas adiciones
barry houdini
2

Tienes números en las celdas, no texto. Un valor numérico de 02010 es el mismo que el número 2010. Formatearlo como texto da la representación de texto normal de 2010, no 02010.

Para conservar los ceros a la izquierda, ingrese los datos como una cadena, no como un número. Por ejemplo, ingrese = "02010" como el valor.

Para mostrar simplemente los ceros a la izquierda, suponiendo que todos los números tengan la misma longitud (digamos, cinco dígitos), use un formato personalizado. Seleccione 0 de la lista FOr personalizada, luego cámbiela a 00000. Todos los números se mostrarán como cinco dígitos, con ceros a la izquierda. Sin embargo, si guarda estos datos en un archivo CSV, los ceros iniciales no estarán allí. La única forma de conservarlos es ingresar los datos como cadenas.

Charles Engelke
fuente
Estamos obteniendo estos datos de una variedad de terceros. Parece que no tenemos suerte, ya que estamos a merced de las personas que ingresan los datos y no podemos obligarlos a hacerlo de manera inteligente. Me sorprendió que convertirlo a texto eliminara el cero. Esa IMO es un efecto secundario, no una mera representación de cadena del valor mostrado, mientras que esperaría que una celda formateada como número elimine un cero inicial.
mrblint
0

Ha pasado mucho tiempo desde que usé Excel, pero siempre solía prefijar el cero inicial con un 'y Excel lo trataría como una cadena en lugar de tratar de interpretarlo como un número.

Sander Steffann
fuente