여러 스마트 테이블이 있는 Excel 파일이 있다고 가정해 보겠습니다.
명령을 사용하여 표준 방식으로 이러한 테이블을 파워 쿼리에 로드하는 경우 데이터 – 데이터 가져오기 – 파일에서 – 책에서 (데이터 — 데이터 가져오기 — 파일에서 — 통합 문서에서), 우리는 다음과 같은 것을 얻습니다.
이 그림은 많은 파워 쿼리 사용자에게 친숙하다고 생각합니다. 쿼리 결합(VLOOKUP), 그룹화(명령 그룹화 기준 탭 변환), 주어진 폴더에서 모든 파일 가져오기 등
이 상황에서 다음 논리적 단계는 일반적으로 열 머리글에 이중 화살표가 있는 버튼을 사용하여 모든 중첩 테이블을 한 번에 확장하는 것입니다. Data:
결과적으로 모든 테이블의 모든 행을 단일 전체로 조립합니다. 모든 것이 좋고 간단하며 명확합니다.
이제 소스 테이블에 새 열(Discount)이 추가되고 기존 열 중 하나(City)가 삭제되었다고 상상해 보십시오.
그런 다음 업데이트 후 요청은 그다지 아름답지 않은 사진을 반환합니다. 할인이 나타나지 않고 도시 열이 비어 있지만 사라지지 않았습니다.
그리고 그 이유를 쉽게 알 수 있습니다. 수식 입력줄에서 확장된 열의 이름이 함수 인수에 하드코딩되어 있음을 명확하게 볼 수 있습니다. 테이블.테이블 열 확장 중괄호 안의 목록으로.
이 문제를 해결하는 것은 쉽습니다. 먼저, 함수를 사용하여 모든(예: 첫 번째) 테이블의 헤더에서 열 이름을 가져옵니다. 테이블.열 이름. 그것은 다음과 같이 보일 것입니다:
이리:
- #"다른 열이 제거되었습니다." – 데이터를 가져오는 이전 단계의 이름
- 0{} – 헤더를 추출하는 테이블의 번호(0부터 계산, 즉 XNUMX이 첫 번째 테이블임)
- [데이터] – 확장된 테이블이 있는 이전 단계의 열 이름
공식 막대에서 얻은 구성을 함수로 대체하는 것이 남아 있습니다. 테이블.테이블 열 확장 하드 코딩된 목록 대신 테이블을 확장하는 단계에서. 결국 다음과 같이 보여야 합니다.
그게 다야. 그리고 소스 데이터가 변경될 때 중첩 테이블을 확장하는 데 더 이상 문제가 없습니다.
- 파워 쿼리의 한 시트에서 다중 형식 테이블 작성
- 여러 Excel 파일의 다른 헤더로 테이블 작성
- 책의 모든 시트에서 데이터를 하나의 테이블로 수집