파워쿼리에서 특정 열만 선택하거나 제거할 때, 열들을 마우스로 일일이 선택한다면 아래와 같은 문제점이 발생합니다.
① 열이 많을 경우 마우스로 선택하는 행위 자체가 번거롭습니다.
② 선택할 열을 바꾸고 싶은 경우 다시 마우스로 일일이 선택해줘야 합니다.
하지만, 목록(List)를 활용하면 원하는 열을 동적으로 설정할 수 있습니다. 목록을 활용하는 방법은 보존할 열을 선택하는 것뿐만 아니라, 피벗열을 해제 혹은 설정할 때, 필터를 걸 때도 활용할 수 있습니다.
#1. 예시파일 상황
▲ test1~test13 열이 있는 표 '원본'과, '원본' 표에서 추출하고 싶은 열만 기입하는 표 'Col'이 있습니다.
▲ 그리고 두 개의 표를 모두 '테이블에서 가져오기'를 통해 쿼리를 생성해 놓은 상태입니다. Col 경우 연결 전용으로 생성해 두었습니다.
#2. 목록을 활용하여 Table.SelectColumns 함수 구문 편집하기
▲ 우선 아무 열을 선택하여 우클릭 > 다른 열 제거를 클릭합니다. 저는 test1과 test2열을 선택하였습니다.
▲ 클릭 결과 위의 사진처럼 test1, test2 열만 남게 되었고, 수식 입력줄에는 아래의 구문이 생성되었습니다.
= Table.SelectColumns(원본, {"test1", "test2"})
이 구문을 분석해보자면,
원본은 바로 직전 '원본' 단계의 데이터 표(Table)을 의미하며,
{"test1", "test2"}는 "test1", "test2"로 구성된 목록을 의미합니다.
선택한 열들이 목록의 형태로 Table.SelectColumns 구문에 들어간다는 점을 활용하는 것입니다.
▲ 위의 사진처럼 수식 입력줄 구문을 = Table.SelectColumns(원본, Col[Col])로 수정하면 test1, test2, test3 열이 남게 됩니다.
이 구문을 분석하자면, Col[Col]에서 'Col'은 'Col' 쿼리 자체를 의미합니다.
[Col]은 'Col'이라는 이름의 열의 데이터 목록을 의미합니다.
따라서, Col[Col]은 'Col' 쿼리의 'Col'이라는 이름의 열의 데이터 목록을 의미합니다.
즉, "쿼리명[열이름]"은 해당 쿼리의 해당 열 데이터를 목록 형태로 출력합니다.
#3. 쿼리 로드 및 작동 테스트
▲ 편의상 같은 시트에 쿼리를 로드하겠습니다.
▲ 로드 결과, 'Col' 표에 입력한 열들이 로드됩니다.
▲ Col 열의 내용이 변경되면, 로드 결과도 자동적으로 반영됩니다.
'엑셀, VBA, 파워쿼리 > 파워쿼리' 카테고리의 다른 글
[파워쿼리] 열 피벗 해제 기능으로 데이터 세로방향 쌓기(피벗테이블 생성에 용이하게 만들기) (0) | 2024.07.04 |
---|---|
[파워쿼리] List.Max로 목록, 열의 최대값, 그룹별 최대값 출력하기 (0) | 2024.06.02 |
[파워쿼리] if 조건문 활용하기 (2) | 2024.04.21 |
[파워쿼리] 데이터 필터링용 테이블로 추출조건 손쉽게 설정하기 (List.Contains 함수 활용) (0) | 2024.03.01 |
[파워쿼리] 쿼리 병합 및 '집계'로 데이터 항목별 합계, 평균, 최대값 등의 데이터를 끌고오기 (0) | 2023.11.05 |
댓글