고정 너비 CSV를 구문 분석하는 PowerQuery

고정 너비 CSV를 구문 분석하는 PowerQuery

고정 너비 csv.txt가 있습니다. 예를 들어

Martin    Junger    12    
John      Wing      124

PowerQuery를 사용하여 로드하려면 다음 구문을 사용합니다.

let
    Source = Csv.Document(File.Contents("C:\csv.txt"),null,";",null,1251),
    #"Split Column name" = Table.SplitColumn(Source,"Column1",Splitter.SplitTextByPositions({0, 10}, false),{"name", "ColumnOther"}),
    #"Split Column surname" = Table.SplitColumn(#"Split Column name","ColumnOther",Splitter.SplitTextByPositions({0, 10}, false),{"surname", "ColumnOther"}),
    #"Split Column salary" = Table.SplitColumn(#"Split Column surname","ColumnOther",Splitter.SplitTextByPositions({0, 3}, false),{"salary", "ColumnOther"})
in
    #"Split Column salary"

Table.SplitColumn따라서 csv의 모든 열에 대해 전혀 편리하지 않은 새 명령을 만들어야 합니다 . 하나의 명령으로 이를 수행하는 구문이 있습니까?

감사합니다

답변1

문서에는 언급되지 않았지만 Csv.Document는 목록을 "선택적 구분 기호" 인수로 허용하여 각 열의 시작 위치(0부터 시작)를 지정합니다. 아래에서 해당 파일을 가리켰을 때 PQ가 생성한 쿼리에서 이를 볼 수 있습니다(예: Excel 2016: 데이터 리본 / 새 쿼리 / 파일에서 / 텍스트에서). "선택적 구분 기호" 인수는 다음과 같습니다.{0,10,20}

let Source = Csv.Document(File.Contents("C:\csv.txt"),null,{0,10,20},null,1252), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", Int64.Type}}) in #"Changed Type"

답변2

고정 너비를 가져오기 위해 Excel용 파워 쿼리 플러그인을 사용할 필요가 없습니다. 내장되어 있습니다.

단계:

  1. 텍스트의 데이터 탭(외부 데이터 가져오기 섹션)
  2. CSV 파일을 선택하세요
  3. 텍스트 가져오기 마법사가 나타나는지 확인하세요.
  4. In: 원본 데이터 유형에서 "고정 너비"를 선택합니다.
  5. 적절하게 마법사를 진행합니다.

여기에 이미지 설명을 입력하세요

관련 정보