파워 쿼리를 사용하여 여러 시트를 서로 다른 열로 결합

Nov 18 2020

하나의 테이블로 결합, 즉 스택해야하는 여러 페이지가있는 통합 문서가 있습니다. 유사한 열 이름이 많지만 모두 동일한 열이있는 것은 아니며 열 순서가 다릅니다. 이 때문에 열 순서를 사용하기 때문에 고유 한 병합 기능을 사용할 수 없습니다. Table.Combine으로 문제를 해결할 수 있지만 "각"메커니즘을 사용하여이를 수행하는 문을 만들 수 없습니다.

x 통합 문서 Table.Combine (이전 시트, 다음 시트)의 각 워크 시트에 대해 쌓인 모든 시트를 반환합니다.

누군가 도와 주시겠습니까?

답변

AlexisOlson Nov 18 2020 at 21:51

통합 문서를로드하는 경우 테이블 또는 DefinedName 종류 대신 시트 종류를 Excel.Workbook선택 하고 시트 이름을 무시할 수 있습니다.

let
    Source = Excel.Workbook(File.Contents("C:\Path\To\File\FileName.xlsx"), null, true),
    #"Filter Sheets" = Table.SelectRows(Source, each [Kind] = "Sheet"),
    #"Promote Headers" = Table.TransformColumns(#"Filter Sheets", {{"Data", each Table.PromoteHeaders(_, [PromoteAllScalars=true])}}),
    #"Combine Sheets" = Table.Combine(#"Promote Headers"[Data])
in
    #"Combine Sheets"
teylyn Nov 18 2020 at 20:38
  • 각 테이블을 파워 쿼리에 별도의 쿼리로로드
  • 각 개별 쿼리에 대해 필요에 따라 열 이름을 수정합니다.
  • 각 쿼리를 연결로 저장
  • 쿼리 중 하나 (또는 ​​별도의 쿼리)에서 Append 명령을 사용하여 이제 동일한 열 이름을 가진 모든 고정 쿼리를 추가합니다.