[파워쿼리- 쿼리 생성하는 5가지 방법] #5 빈 쿼리로 쿼리 생성하기
엑셀, VBA, 파워쿼리/파워쿼리

[파워쿼리- 쿼리 생성하는 5가지 방법] #5 빈 쿼리로 쿼리 생성하기

by Jongg 2023. 10. 7.
728x90

<쿼리 생성하는 5가지 기초적인 방법>
1. 테이블/범위에서 가져오기
2. 엑셀 통합 문서(xlsx, xlsm, xlsb)에서 가져오기
3. 텍스트/CSV에서 가져오기
4. 폴더에서 가져오기
5. 빈쿼리  

'빈 쿼리'에서 작성하는 기능은 파워쿼리 함수(M 언어)를 어느 정도 이해해야 효과적으로 사용 가능하기 때문에 어렵게 느껴질 수 있고, 굳이 필요한가 생각이 들 수 있습니다. 하지만 빈 쿼리를 활용하면 쿼리를 더 빠르고, 상황에 따라 더 유연하게 생성할 수 있습니다. 이번 글에서는 빈 쿼리를 생성하는 방법과 아주 간단한 활용 예시만 소개드리도록 하겠습니다.

 

참고: 파워쿼리에 대한 간단한 소개글

 

[엑셀] 엑셀 주요기능 세 가지: 스프레드시트, 매크로/VBA, 파워쿼리

엑셀 2016 기준으로, 제가 주로 사용하는 엑셀 기능은 ① 일반 스프레드시트, ② 매크로/VBA, ③ 파워쿼리입니다. 일반 스프레드시트, 매크로/VBA, 파워쿼리의 활용용도와 세부기능, 주요 고려사항

writingpjt.tistory.com

 

빈 쿼리 생성하기

1) 데이터 탭 > 데이터 가져오기 > 기타 원본에서 >빈 쿼리

 

 

▲엑셀에서 데이터 탭 > 데이터 가져오기 > 기타 원본에서 >빈 쿼리, 혹은 파워쿼리 편집기에서 새 원본 > 기타 원본에서 > 빈 쿼리를 클릭합니다. 

 

 

▲빈 쿼리의 경우 클릭 시 위의 사진처럼 아무것도 없는 쿼리가 생성됩니다. 

 

2) 수식 창 혹은 고급 편집기로 쿼리 생성하기

 

▲빈 쿼리에서 수식창에서 함수를 사용하거나 고급 편집기에서 코딩을 직접 넣어 쿼리를 만들 수 있습니다.

위의 사진은 '={1,2,3}'라는 코딩을 통해 1, 2, 3이 있는 목록을 생성한 것입니다. 

 

하지만 빈 쿼리에서 처음부터 끝까지 자신이 알고 있는 코딩으로 쿼리를 만드는 것은 어렵기도 하고, 매우 비효율적입니다. 아래의 활용 예시처럼 이미 있는 쿼리에서 필요한 코딩만 갖고 와서 쿼리를 생성하는 것이 더 쉽고 효율적입니다. 

 

 

빈 쿼리 활용 예시: 현재 통합 문서 내 테이블에서 쿼리 생성해보기

[파워쿼리] 한 개의 파일 내 여러 데이터 합치기 (VLOOKUP 상위 호환)의 예시 파일을 활용하여, 빈 쿼리로 현재 통합 문서 내 테이블에서 쿼리를 만들어 보겠습니다. 

파워쿼리 예시.xlsb
0.02MB

 

 

[파워 쿼리] 한 개의 파일 내 여러 데이터 합치기 (VLOOKUP 상위호환)에서는 모든 테이블들을 일일이 클릭해서 쿼리를 생성했습니다. 그러려면 쿼리를 새로 만들 때마다 파워쿼리 편집기를 껐다 켰다를 반복해야 하는데요. 

 

빈 쿼리를 활용하면 이 번거로움을 덜어낼 수 있습니다. 예시 파일을 보면 각 시트마다 시트명과 동일한 이름의 표가 있는데요, 아래의 순서대로 빈 쿼리를 활용해 각 표에 대한 쿼리를 생성할 수 있습니다.

 

1) '테이블에서 가져오기'로 참고할 쿼리 만들기

 

▲우선, 첫 번째 시트에 있는 '주문개요' 표(테이블)에서 위의 사진처럼 쿼리를 생성해봅니다. 

 

2) 복사/붙여넣기 용이하도록 쿼리 편집 후 전체 코드 복사하기

▲이후 생성된 쿼리에서 '변경된 유형' 단계를 삭제해줍니다. '변경된 유형' 단계는 각 열들의 데이터 형식(숫자, 텍스트 등)을 정하는 코드입니다. 그런데 코드를 보시면 주문개요 표의 열 이름이 있어서 다른 표에는 적용할 수 없는 코드입니다. 데이터 형식을 굳이 미리 정할 필요는 없기 때문에 '변경된 유형' 단계는 과감하게 삭제해줍니다. 

 

▲'변경된 유형'을 삭제한 후 고급 편집기 버튼을 클릭해보면, 현재 주문개요 쿼리에 적용된 파워쿼리 코드를 볼 수 있습니다. 고급 편집기에 있는 모든 코드, 즉 'let ~ 원본' 까지 복사를 해줍니다. 

 

3) 빈 쿼리 생성 후 고급편집기에 복사한 쿼리 붙여 넣기

▲빈 쿼리를 생성한 후 고급 편집기에 들어가서 복사한 코드를 붙여 넣어 줍니다.

 

▲그러면 위의 사진처럼 주문개요 테이블에서 쿼리를 생성했을 때와 똑같은 결과가 나옵니다. 

 

4) 붙여 넣은 코드에서 표 이름 부분만 수정하기

▲다시 고급 편집기에 들어가서,

Excel.CurrentWorkbook(){[Name="주문개요"]}[Content] 부분에서 "주문개요"를 다른 표 이름으로 변경하시면 됩니다.

저는 원본 = Excel.CurrentWorkbook(){[Name="고객세부정보"]}[Content] 로 코드를 수정하여 고객세부정보 표에서 쿼리를 생성해 보겠습니다.

 

▲코드 수정한 결과 고객세부정보 표로부터 쿼리가 생성되었습니다. 

 

결론: 기존에 활용했던 코드를 적극 활용해라 

빈 쿼리라고 해서 처음부터 코드를 직접 짤 필요는 없습니다. 파워쿼리의 코드(M언어)는 엑셀 함수나 VBA 코드와는 또 다른 별개의 언어입니다. 게다가, 대소문자까지 구분하여 코드를 짜야되기 때문에 외워서 쓰기에는 굉장히 까다로운 언어라고 생각합니다. 

 

따라서, 평소 메모장이나 스티커메모에 상황별로 코딩을 기록했다가, 고급 편집기에 붙여 넣어서 편집하는 것을 추천드립니다.  

 

<관련 글>

[파워쿼리] 한 개의 파일 내 여러 데이터 합치기 (VLOOKUP 상위호환)

[파워쿼리] 파워쿼리로 다중조건 VLOOKUP 손쉽게 하기

 

728x90

댓글