고정 폭 csv를 구문 분석하는 쿼리


0

너비 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"

그래서 csv의 모든 열에 대해 새로운 Table.SplitColumn 명령은 전혀 편리하지 않습니다. 한 명령에서이 구문을 수행 할 수 있습니까?

고맙습니다


나는 powerquery를 사용한 적이 없지만 csv에 고정 너비가 아닌 구분 기호가 있으면 어떨까요?
Raystafarian

구분 된 경우 문제없이 구문 분석 될 수 있습니다. 하지만 고정 된 구분으로 작업해야합니다.
pashtetGP

답변:


0

doco에 언급되어 있지는 않지만 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"


0

고정 폭을 가져 오기 위해 excel에 대한 파워 쿼리 플러그인을 사용할 필요가 없습니다. 내장되어 있습니다.

단계 :

  1. 텍스트에서 데이터 탭 (외부 데이터 가져 오기 섹션)
  2. 당신의 csv 파일을 선택하십시오
  3. 텍스트 가져 오기 마법사가 표시되는지 확인합니다.
  4. 있음 : 원본 데이터 유형, "고정 너비"선택
  5. 적절한대로 마법사를 진행하십시오.

enter image description here

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