CSV 파일에서 쉼표를 기본 구분 기호로 해석하도록 Excel을 얻는 방법은 무엇입니까?


95

여러 개의 .csv 파일이 있습니다. 그중 일부는 쉼표로 구분되고 일부는 탭으로 구분됩니다 (아마도 .tsv라고합니다).

csv엑셀이 설치 될 때 확장은 엑셀과 관련됩니다. 그러나 Excel 로이 파일 중 하나를 열면 모든 것이 동일한 열에 덤프되고 쉼표가 구분 기호로 해석되지 않습니다.

File-> Import ... 대신 파일을 선택하고 내용 (구분자, 데이터 유형 등)을 해석하는 정확한 방법을 선택할 수 있지만 대부분의 경우 명확한 파일을 통해 파일 을 보고 싶습니다. 테이블 뷰. Excel로 처리하고 싶지 않습니다.

Excel에서 구분 기호를 자동으로 해석하고 CSV 파일을 열면 바로 적절한 테이블로 표시하는 방법이 있습니까? Excel을 이러한 파일의 빠른 뷰어로 사용할 수 있으려면 이것이 필요합니다.

방법이 있어야한다고 생각합니다. 그렇지 않으면 Excel이 CSV 파일과 연결되지 않습니다.


선택한 답변이 귀하의 질문에 답변하는 것으로 알고 있지만, 두 번째 답변은 글로벌 솔루션을 제공하므로 이메일, 네트워크 등으로
아크로

답변:


81

CSV 파일을 여는 동안 Excel은 시스템 List separator기본 설정 을 사용하여 사용할 기본 구분 기호를 결정합니다.

Microsoft Excel에서 .csv 파일을 열지 만 시스템의 국가 별 설정에 따라 일부 언어에서는 쉼표가 소수점 구분 기호로 사용되므로 쉼표 대신 구분 기호로 세미콜론이 필요할 수 있습니다. ( Wikipedia에서 )


윈도우 , 당신은 변경할 수 있습니다 List separator의 설정을 Regional and Language Options온 지정된 사무실 지원 웹 사이트 :

CSV 텍스트 파일에서 구분 기호 변경

  1. Windows 시작 메뉴를 클릭하십시오.
  2. 제어판을 클릭하십시오.
  3. 국가 및 언어 옵션 대화 상자를 엽니 다.
  4. 국가 별 옵션 탭을 클릭하십시오.
  5. 사용자 화 / 추가 설정 (Win10)을 클릭하십시오.
  6. 목록 구분 상자에 새 구분 기호를 입력하십시오.
  7. 확인을 두 번 클릭하십시오.

참고 : 이것은 십진 기호가 쉼표로 지정되지 않은 경우에만 작동합니다 (위의 Wikipedia 인용과 일치). 이 경우 Excel을 선택하더라도 쉼표를 목록 구분 기호로 사용 하지 않습니다 . 미국 이외의 많은 지역에서는 쉼표가 기본 10 진수 기호입니다.

맥 OS X ,이 설정은 추론 것으로 보인다 소수 구분의 설정합니다 (의 언어 및 지역 의 창 시스템 환경 설정 , 이동 고급 ). 경우] 소수 구분이 점은 다음 기본 CSV 분리기 쉼표되지만 경우 소수 구분은 쉼표가, 디폴트 CSV 분리기 세미콜론 것이다.

의견에서 말했듯이 Mac 사용자가 해당 CSV 파일을 빠르게 볼 수있는 대안이 있습니다. 구분 기호 감지를 처리하는 quicklook-csv 라는 Quick Look 용 플러그인입니다 .


감사합니다. 그러면 탭이 기본적으로 구분 기호로 해석되지 않을 것입니다 (CSV는 쉼표로 구분 된 값을 의미하지만 실제로는 CSV에서 탭을 사용하므로 처리해야합니다).
Szabolcs 2016 년

@Szabolcs Excel은 CSV 파일을 여는 동안 구분 기호를 감지하지 않습니다 ( 파일-> 열기 또는 탐색기 사용 ) 시스템 설정 만 사용합니다. 그러나 가져 오기 기능 을 사용하는 동안 구분 기호 (탭, 쉼표, 세미콜론 또는 공백)를 자동으로 감지 합니다.
zakinster

1
귀하의 답변은 OS X에서도 유효했습니다 : 그것은 여전히``문제점 ''을 일으키는 소수점 / 쉼표입니다 (답에서 언급했듯이).
Szabolcs 2016 년

1
나중에 편집 : 사과! 이 작동합니다! 분명히 변경 사항을 적용하려면 프로그램을 다시 시작하거나 로그 아웃 / 로그인해야합니다. 나는 정확히 언제 알지 못하지만 변경 후 잠시 후에 이것이 갑자기 작동했습니다.
mmo

1
Mac OS X에서는 변경 후 Excel을 종료해야합니다. 열려있는 모든 시트 만 닫으면 Excel은 열려 있습니다. Excel> Excel 종료를 클릭하거나 Command + Q를 누르면 완료됩니다.
Paulo Pedroso

94

파일 형식을 수정하지 않고 Excel 만 대상으로하는 경우 다음 Excel 트릭을 사용하면 도움이됩니다.

"sep=,"Excel에서 목록 구분 기호로 ","를 사용하여 파일을 열려면 텍스트 (따옴표 포함)를 사용하여 파일 맨 위에 새 줄을 추가하십시오 .

Windows 지역 설정을 변경하지 않고 일관된 결과를 얻는 것은 매우 쉬운 방법입니다. 그러나 Excel에 따라 다릅니다.


1
이 파일을 -look- 목적으로 만 사용하고 수정하지 마십시오. 그렇지 않으면 다음 문제 중 하나가 발생할 수 있습니다. theonemanitdepartment.wordpress.com/2014/12/15/…
Wouter

이 파일을 다른 사람에게 재배포해야하는 경우에도 더 좋으므로 구성에 관계없이 Excel에서 파일을 이해할 수 있어야합니다. 나는 항상 csv를 사용하여 모든 버전 제어 시스템을 사용하여 이러한 파일을 공유하고 공동 작업 할 수 있지만 쉼표 대 세미콜론으로 어려움을 겪고 항상 구성을 변경하기 위해 모든 사람을 더 이상 보봇으로 만들었습니다. 많은 감사합니다!
Rafareino

1
무엇 위에 혼자?
NateS

11

sep=,적어도 Excel 2016에서는 파일의 첫 줄인 한 따옴표는 필요하지 않습니다 .

파일이 탭으로 구분되면 sep=\t따옴표가 있거나 없어도 정상적으로 작동 한다는 것을 알았습니다 .


4

허용되는 답변은 정확하지만 저는 시각적 인 사람입니다. 다음은 Windows 10 에서이 작업을 수행하는 방법에 대한 스크린 샷 형식의 모든 단계입니다.

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오


2
매우 유용한! (위의 어딘가에서 언급했듯이) List separator동일한 기호가에 사용될 경우 무시되는 것을 기억하십시오 Decimal symbol. 당신은 자주 찾을 것 ,같은 소수점 기호를, 그래서 뭔가 다른 (예 :로 변경해야합니다 .설정시) List separator,.
Dirk

1

지역 설정의 구분 기호가 쉼표가 아니라 세미콜론 (네덜란드 구분 기호) 인 경우 CSV 파일의 이름을 TXT 파일로 바꾸십시오. TXT 파일을 마우스 오른쪽 버튼으로 클릭하고 "연결 프로그램"을 선택하고 "Excel"을 선택하십시오. Excel에서 첫 번째 열을 선택하고 리본에서 데이터를 선택하고 텍스트를 열로 분리하십시오.

또는

LibreOffice를 설치하고 LibreOffice Calc로 CSV 파일을 엽니 다.


1

나는 한 .csv분리와 파일 ;구분 목록에 설정하고 국가 별 설정을 ;. 그러나 Excel은 여전히 ​​열을 구문 분석하지 않았습니다.

여기에 이미지 설명을 입력하십시오

인코딩 문제로 판명되었습니다. 파일은 SQL Server Management Studio 2005에서 내 보내져로 인코딩됩니다 UCS-2 LE BOM. 메모장 ++를 사용하여 인코딩을 전환 UTF-8하고 모든 것이 작동하기 시작했습니다.


0

메모장과 같은 간단한 편집기에서 CSV 파일을 검사하여 형식이 올바른지 확인하십시오.

VB로 만든 CSV 파일이 Excel에서 별도의 열로 열리지 않는 바보 같은 버그를 해결 한 후에이 답변을 추가했습니다. 나는 줄을 쓴 방식이 각 줄을 따옴표로 묶었다는 것을 발견했다. Excel은 따옴표를 숨기고 열 A에 전체 줄을 표시하여 쉼표 구분 기호를 무시한 것처럼 보입니다.


0

가장 좋은 방법은 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

0

네덜란드어의 경우 Windows 7의 Excel 2008이 RFC4180을 준수하지 않는 문제가있었습니다.

"줄 바꿈 (CRLF), 큰 따옴표 및 쉼표가 포함 된 필드는 큰 따옴표로 묶어야합니다."

쉼표로 구분 된 파일에는 큰 따옴표로 묶인 쉼표 (네덜란드 10 진수 구분 기호)가있는 필드가 올바르게 있습니다. 네덜란드어 로케일에서 소수점 구분 기호는 ,목록 구분 기호 ;이므로 Excel은 제어판에서 ,목록 구분 기호를 명시 적으로 변경 한 후에도 둘 다에 사용되는 파일을 읽을 수 없습니다 ,.

입력은 다음과 같습니다.

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

솔루션은 @ user280725에 의해 제공되었습니다.

메모장을 사용하여 첫 번째 줄로 삽입하십시오.

sep=,

(이것은 솔루션에서 사용자 @zakinster의 노트를 더 이상 적용 할 필요가 없음을 의미합니다.)


흥미롭게도 : csv 파일이 여전히로드 된 상태에서 제어판에서 로케일을 미국 영어로 설정하고 파일을 저장하면 파일이 미국 영어 형식 (목록 구분 기호로 쉼표와 소수 구분 기호로 쉼표)으로 변환됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.