[파워쿼리] 조인 하자 - 쿼리 병합기능

2020. 6. 8. 18:29엑셀/파워쿼리 공부

728x90
반응형

파워쿼리로도 조인이 가능하다. '쿼리병합' 기능을 이용하면 된다. 조인(Join)이 일상인 익숙한 사람부터 처음 들어보는 사람도 있겠지만 사실 내용을 알면 기본사항은 뻔한 것이므로 조인에 대한 설명은 넘어가고 바로 본론으로 들어가자.

파워 쿼리에서 쿼리란 데이터를 적재?!한 형태라고 이해하면되는데 쉽게 표현이 어렵다. ㅜㅜ; 

데이터를 파워쿼리로 구성을 하게되면 조인이 가능하다. 먼저 예시용 데이터를 보자 

'제품마스터'와 '매입단가' 라는 2개의 표가 있다. 제품마스터에는 제품코드와 판매가격이 있고 매입단가에는 통화와 매단가가 있다. 이 2개의 표를 하나로 합쳐서 제품 / 제품명 / 판매가격 / 매입단가 를 만들고 마진을 계산 할 것이다. 

물론 이정도의 데이터는 그냥 하는게 좋다. 이건 예시니까.. 넘어가자. 

파워쿼리를 사용하려면 먼저 쿼리를 만들어야 하고 그전에 데이터를 표로 구성해야한다. 여기서 제품마스터는 'fProduct' 로 매입단가는 'fUnitPrice' 라는 이름으로 표를 만들어서 각각을 쿼리로 만들었다. 

쿼리로 만들려면 표를 선택하고 '데이터>데이터 가져오기>기타 원본에서> 테이블/범위에서' 를 클릭하면 된다.

테이블에서 쿼리 생성하기

2개의 테이블을 한번에 쿼리로 생성할 수 하나 씩 해야한다. 

쿼리로 생성완료

지정한 표이름과 동일한 이름으로 쿼리가 생성되었다. 

이제 조인(병합)을 해보자. 이 경우에는 2개의 테이블의 관계가 1:1 이다. 즉 Inner 조인으로 처리하면 된다. 쿼리 병합에는 2가지 옵션이 있다. 

  • 쿼리 병합 : 현재 쿼리에 다른 쿼리를 병합하여 내용을 추가 한다. 
  • 쿼리를 새 항목으로 병합 : 원본 쿼리를 그냥 두고 새로 쿼리를 생성하여 병합을 수행한다.

여기서는 '쿼리를 새 항목으로 병합' 으로 진행한다. 

 

병합 화면

병합을 실행하면 위와 같은 창이 뜬다. 현재 쿼리가 상단에 위치하고 하단은 비워진 상태다. fProduct(제품마스터)를 기준으로 fUnitPrice(매입단가) 쿼리를 조인할 것이다. 하단에 '조인 종류'를 선택 할 수 있다.

조인 종류

조인 종류는 '내부(일치하는 행만)' 를 선택한다.  그 다음에는 조인할 기준 항목을 선택한다. 여기서는 제품코드가 키이므로 제품코드를 각각 테이블에서 클릭한다. (여러 항목을 기준으로 조인을 수행할 수 있다. Vlooup이랑은 비교가 안된다.)

조인항목을 선택

확인을 누르면 'Merge1' 이라는 쿼리가 새로 생성되고 데이터 에 'fUnitPrice' 라는 필드가 추가되었다.

병합이 수행된 결과 

그런데 새로 생성된 'fUnitPrice' 필드에는 값이 'Table' 이라는 하이퍼링크가 걸린 값으로 구성되어 있다. 그리고 펼치기 아이콘이 필드명에 들어가있다. 이걸 클릭 한다.

확장과 집계를 선택할 수 있다.

눌러보면 'fUnitPrice' 의 항목을 선택할 수 있다. 제품마스터에 없는 정보는 통화와 매입단가 이므로 이것만 클릭해서 확인을 눌러보자.

병합 후 확장하여 데이터 구성이 완료된 상태

이러면 완성이다. 제품코드를 키로 이용하여 테이블간 조인을 통해 병합까지 완료!~

이걸 엑셀로 로드해서 결과를 보자. 로드는 리본메뉴의 '홈>닫기 및 로드' 를 클릭하여 새 시트로 로드 한다. 

새시트에 로드된 모습

이렇게 되면 무엇이 달라진 것일까?? 

이제 Data 시트의 각 표에 제품마스터와 단가 표에 데이터가 추가가 될 경우 새로고침을 통해서 이 시트로 병합된 결과를 업데이트 할 수 있다. 잘 생각해보자 기존에 2개 이상의 정보를 Vlookup 으로 엮고 엮어서 정리 시트를 만들던 때와 비교해보자. 이제 더이상 키가 되는 값을 입력하지 않아도 된다. 자동으로 새로 들어온다. 

*주의 : 내부조인 (Inner)을 했기 때문에 두 테이블 모두에 동일한 이름을 같는 제품코드가 있어야만 한다. 

일찍 퇴근합시다. 

Data_파워쿼리_조인설명.xlsx
0.02MB

728x90
반응형