¿Cómo hacer que Excel interprete la coma como un delimitador predeterminado en los archivos CSV?

95

Tengo varios archivos .csv. Algunos de ellos están delimitados por comas, otros están delimitados por tabulaciones (tal vez deberían llamarse .tsv ...)

La csvextensión se asocia con Excel cuando se instala Excel. Sin embargo, si abro uno de estos archivos con Excel, todo se volcará en la misma columna y la coma no se interpretará como un delimitador.

Puedo en lugar de Archivo -> Importar ..., seleccionar el archivo y elegir la forma precisa de interpretar el contenido (delimitadores, tipos de datos, etc.) Pero la mayoría de las veces solo quiero ver el archivo a través de un claro vista de tabla No quiero procesarlo con Excel.

¿Hay alguna manera de hacer que Excel interprete automáticamente el delimitador y muestre el archivo CSV como una tabla adecuada tan pronto como se abra? Necesito esto para poder usar Excel como un visor rápido para dichos archivos.

Sospecho que debe haber una manera, de lo contrario Excel no se asociaría con archivos CSV.

Szabolcs
fuente
Realmente entiendo que la respuesta elegida no responde a su pregunta, pero la segunda debe ser destacado, ya que ofrecen una solución global, que funciona Acros compartir por correo electrónico, red, etc.
Rafareino

Respuestas:

81

Al abrir archivos CSV, Excel usará una configuración regional del sistema llamada List separatorpara determinar qué delimitador predeterminado usar.

Microsoft Excel abrirá archivos .csv, pero dependiendo de la configuración regional del sistema, puede esperar un punto y coma como separador en lugar de una coma, ya que en algunos idiomas la coma se usa como separador decimal. (de Wikipedia )


En Windows , puede cambiar la List separatorconfiguración Regional and Language Optionscomo se especifica en el sitio web de soporte de Office :

Cambiar el separador en un archivo de texto CSV

  1. Haz clic en el menú Inicio de Windows.
  2. Haz clic en Panel de control.
  3. Abra el cuadro de diálogo Opciones regionales y de idioma.
  4. Haga clic en la pestaña Opciones regionales.
  5. Haga clic en Personalizar / Configuración adicional (Win10).
  6. Escriba un nuevo separador en el cuadro Separador de lista.
  7. Haga clic en Aceptar dos veces.

Nota : esto solo funciona si el símbolo decimal no se designa también como coma (en línea con la cita de Wikipedia anterior). Si es así, Excel no usará una coma como separador de Lista, incluso si se elige. Para muchas regiones no estadounidenses, la coma es el símbolo decimal predeterminado.

En Mac OS X , esta configuración parece deducirse de la configuración del separador decimal (en el panel Idioma y región de Preferencias del sistema , vaya a Avanzado ). Si el separador decimal es un punto, el separador CSV predeterminado será una coma, pero si el separador decimal es una coma, el separador CSV predeterminado será un punto y coma.

Como dijiste en el comentario, hay una alternativa para que los usuarios de Mac vean rápidamente esos archivos CSV. Es un complemento para Quick Look llamado quicklook-csv que maneja la detección de separadores.

zakinster
fuente
Gracias, esto tiene sentido. Supongo que simplemente no interpretará las pestañas como delimitadores por defecto (lo que también tiene sentido ya que CSV significa Valores separados por comas, pero la gente usa pestañas en CSV en la práctica y tengo que lidiar con eso).
Szabolcs
@Szabolcs Excel no intentará detectar el delimitador mientras abre un archivo CSV (usando file-> open o el explorador ), solo usará la configuración del sistema. Sin embargo, logrará detectar automáticamente el delimitador (tabulador, coma, punto y coma o espacio) mientras usa la función de importación .
zakinster
1
Su respuesta también fue válida en OS X: sigue siendo el punto decimal / coma que causa el "problema" (como usted menciona en la respuesta).
Szabolcs
1
Edición posterior: disculpas! esto funciona! Aparentemente, uno necesita reiniciar el programa y / o cerrar sesión / -in nuevamente para aplicar el cambio. No sé exactamente cuándo, pero poco después de mi cambio, esto funcionó de repente.
mmo
1
En Mac OS X, no olvide SALIR de Excel después de realizar los cambios. Excel permanece abierto si solo cierra todas las hojas abiertas. Haga clic en Excel> Salir de Excel o simplemente presione Comando + Q y listo.
Paulo Pedroso
94

Si no desea modificar el formato del archivo y SOLO se dirige a Excel, puede usar el siguiente truco de Excel para ayudarlo.

Agregue una nueva línea en la parte superior del archivo con el texto "sep=,"(incluidas las comillas) para que Excel abra el archivo con "," como separador de lista.

Es un truco muy fácil evitar cambiar la configuración regional de Windows y obtener un resultado consistente. Pero es específico de Excel.

usuario280725
fuente
1
Asegúrese de -solo- usar esto para -ver- en el archivo, y no modificarlo, de lo contrario podría encontrarse con uno de los siguientes problemas: theonemanitdepartment.wordpress.com/2014/12/15/…
Wouter
Aún mejor si necesita redistribuir este archivo a otros, para asegurarse de que Excel podrá entender el archivo, sin importar cuáles sean sus configuraciones. Siempre uso csv para poder usar cualquier sistema de control de versiones para compartir y colaborar en estos archivos, pero he luchado con comas vs punto y coma, y ​​siempre me molestó que todos cambiaran sus configuraciones, nada más. ¡Muchas gracias!
Rafareino
1
¿Solo encima de qué?
Nates
11

No necesita las comillas alrededor de sep=,, siempre que sea la primera línea del archivo funcionará, al menos con Excel 2016.

Descubrí que si el archivo está delimitado por tabuladores, sep=\tfunciona bien, con y sin comillas.

Stephen Hemingway
fuente
4

La respuesta aceptada es correcta pero soy una persona visual. Aquí está cada paso en formato de captura de pantalla de cómo hacer esto en Windows 10.

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Sam B
fuente
2
¡Muy útil! Solo recuerde (como ya se mencionó anteriormente) que List separatorse ignorará si se usa el mismo símbolo Decimal symbol. A menudo lo encontrará ,como símbolo decimal, así que asegúrese de cambiarlo a otra cosa (p .. Ej. ) Al configurarlo List separatoren ,.
Dirk
1

Cuando el separador en la configuración regional no es una coma sino un punto y coma (separador holandés), cambie el nombre del archivo CSV a un archivo TXT. Haga clic derecho en el archivo TXT y seleccione "Abrir con" y seleccione "Excel". En Excel, seleccione la primera columna, seleccione los datos en la cinta y separe el texto en columnas.

O

Instale LibreOffice y abra el archivo CSV con LibreOffice Calc.

Eric VDB
fuente
1

Tenía un .csvarchivo con separador ;y configuración regional establecida en Separador de lista ;. Sin embargo, Excel todavía no analizó las columnas.

ingrese la descripción de la imagen aquí

Resultó ser un problema de codificación. Los archivos se exportaron desde SQL Server Management Studio 2005 y se codifican UCS-2 LE BOM. Usando Notepad ++ cambié la codificación UTF-8y todo comenzó a funcionar.

Ogglas
fuente
0

Asegúrese de inspeccionar el archivo CSV en un editor simple como el Bloc de notas para verificar que esté formateado correctamente.

Agregué esta respuesta después de resolver un error estúpido en el que los archivos CSV que creé con VB no se abrieron con columnas separadas en Excel. Descubrí que la forma en que había escrito las líneas envolvía cada línea con comillas. Excel ocultó las comillas y mostró la línea completa en la columna A, haciendo que pareciera que ignoraba mis separadores de comas.

edj
fuente
0

la mejor manera será guardarlo en un archivo de texto con extensión csv

Sub ExportToCSV()
    Dim i, j As Integer
    Dim Name  As String

    Dim pathfile As String


    Dim fs As Object
        Dim stream As Object

        Set fs = CreateObject("Scripting.FileSystemObject")
    On Error GoTo fileexists

    i = 15
    Name = Format(Now(), "ddmmyyHHmmss")
    pathfile = "D:\1\" & Name & ".csv"

    Set stream = fs.CreateTextFile(pathfile, False, True)

fileexists:

    If Err.Number = 58 Then
        MsgBox "File already Exists"
        'Your code here
        Return
    End If
    On Error GoTo 0

    j = 1
    Do Until IsEmpty(ThisWorkbook.ActiveSheet.Cells(i, 1).Value)

        stream.WriteLine (ThisWorkbook.Worksheets(1).Cells(i, 1).Value & ";" & Replace(ThisWorkbook.Worksheets(1).Cells(i, 6).Value, ".", ","))

        j = j + 1
        i = i + 1
    Loop

stream.Close

End Sub
AzizD
fuente
0

Para holandés tuve un problema que Excel 2008 en Windows 7 no se adhirió a RFC4180:

"Los campos que contienen saltos de línea (CRLF), comillas dobles y comas deben ir entre comillas dobles".

Un archivo separado por comas tenía correctamente campos con una coma (separador decimal holandés) entre comillas dobles. En la configuración regional holandesa, el separador decimal es ,y el separador de lista es ;para que Excel no pueda leer un archivo ,usado para ambos (ni siquiera después de cambiar explícitamente el separador de lista ,en el Panel de control).

La entrada se ve así:

"06-07-2017 17:03:18","********",0:01:04,Uitgaand,"0,1879","0,2273","0,0395",21

La solución fue dada por @ user280725:

Use el Bloc de notas para insertar como primera línea:

sep=,

(Esto significa que la Nota del usuario @zakinster en su solución ya no necesita aplicarse).


Interesante: con el archivo csv aún cargado, si ahora configura la configuración regional en inglés de EE. UU. En el Panel de control y guarda el archivo, se habrá convertido al formato de inglés de EE. UU. (Coma como separador de lista y punto como separador decimal).

Paul Ogilvie
fuente