Excel formatea una cadena hasta la fecha en un archivo CSV. ¿Cómo puedo conservar el valor de la cadena original?

5

Estoy encontrando un problema en Microsoft Excel 2010 con respecto al formato automático de una cadena en una fecha, y parece perder el valor original de la celda.

Pasos para reproducir:

1 Crea el siguiente archivo CSV:

 username, points
 phil, 1
 october51, 5

2 Abra el archivo en Microsoft Excel 2010

Nota: Hay una fila con el nombre de usuario october51. Me gustaría que Excel retenga este valor en lugar de convertirlo en otro valor.

Ejemplo de archivo CSV abierto en un editor de texto

Cuando abro este archivo CSV de muestra en un editor de texto (por ejemplo: gVim), veo exactamente lo que espero:

sample CSV file opened in gVim

Ejemplo de archivo CSV abierto en Microsoft Excel 2010

Sin embargo, cuando abro el archivo CSV en Excel, se formatea october51 a Oct-51.

CSV file opened in Excel, october51 has been formatted as Oct-51

Entiendo por qué Excel está intentando formatear el campo en un formato más legible, pero prefiero mantener el valor como october51 ya que es el nombre de usuario de alguien.

Probando diferentes formatos de celda en Excel

Observe que cuando se abre el archivo por primera vez, el formato de campo para el Oct-51 celular es Personalizado . Entonces, intenté cambiar el formato a Texto

enter image description here

Esto no es mejor. El valor de la celda es 18902, en lugar de october51 que es lo que esperaba. Parece que Excel desecha el valor original de la celda inmediatamente después de abrir el archivo.

He intentado todos los formatos posibles (por ejemplo: General, Texto, Especial, Personalizado), y ninguno de ellos genera el valor october51.

El verdadero problema es que este formato de celda se mantiene cuando se guarda el archivo. Si guardo este archivo en Excel y lo vuelvo a abrir en un editor de texto, el nombre de usuario october51 en realidad ha sido cambiado a Oct-51 o 18902, dependiendo del formato elegido para la celda.

¿Cómo puedo hacer que Excel retenga el valor de cadena original de la celda?

ampersandre
fuente
Gracias por ese enlace, @Excellll! Intenté buscar preguntas similares pero no encontré ninguna. El título de esa otra pregunta es bastante brutal :(
ampersandre
1
La solución que busca es la segunda solución que describe el uso del Asistente para importar texto de Excel. Tenga en cuenta que puede hacer esto con un archivo CSV, a pesar de lo que dice sobre la necesidad de guardarlo como texto.
Excellll

Respuestas:

4

Pruebe los siguientes pasos:

Cambie el nombre del archivo CSV para tener una extensión de TXT (es decir: sample.txt). Abra una hoja de Excel en blanco & gt; vaya a 'Archivo' & gt; Abrir & gt; En la ventana Abrir búsqueda, navegue por el archivo .csv seleccionando "Archivos de texto (* .txt, * .csv)" en la lista desplegable & gt; Haga clic en 'Abrir' pero ahora. Consulte las siguientes capturas de pantalla paso a paso:

enter image description here

enter image description here

Desmarque la pestaña y marque la casilla de coma:

enter image description here

Elija el botón 'Texto' y haga clic en el botón 'Finalizar'.

enter image description here

Espero que esto ayude.

vembutech
fuente
Gracias, acabo de probar esta solución y de hecho funciona. He marcado esto como la respuesta aceptada porque proporciona buenos detalles para resolver el problema sin necesidad de recursos adicionales, pero para mí en el futuro solo voy a usar Calc de LibreOffice ya que no requiere una solución como esta puede llevar mucho tiempo si necesita trabajar con varios archivos). ¡Gracias por tu respuesta!
ampersandre
3

En lugar de abrir el archivo CSV con Excel, cree una nueva hoja de trabajo e inicie el Asistente de importación de texto (en la pestaña Datos, en el grupo Obtener datos externos, haga clic en Desde texto). En el paso 3, podrá hacer clic en el encabezado de la columna y cambiar el tipo de datos de la columna a Texto. Esto evitará que Excel interprete los datos como fecha.

Para obtener más información sobre el Asistente de importación de texto, consulte Este artículo .

MBu
fuente
1

Terminé simplemente usando LibreOffice Calc en lugar de Excel.

Al abrir el archivo CSV en LibreOffice Calc no se estropea el october51 datos

LibreOffice Calc parses the data properly

ampersandre
fuente
0

Estaba teniendo el mismo problema al usar VBA para importar un CSV. Encontré que esto solucionó el problema de que la importación de csv que cambiaba el texto que comenzó con JANxxx, FEBxxx, MARxxx, etc. en una fecha era simplemente para establecer .TextFileColumnDataTypes = Array (2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 1, 1, 1, 1). Cambiar el primer valor de la matriz a 2 detuvo la interpretación incorrecta de la primera columna, que era la que contenía el texto con el que se estaba interfiriendo.

Seggy224
fuente