카테고리 없음

파워쿼리를 이용한 복잡한 데이터를 쉽게 변환하기

catalystmind 2025. 4. 23. 22:07
728x90
TL;DR

파워쿼리를 이용해 까다로운 데이터를 원하는 형태로 변환하는 방법:

1. 원본 불러오기
2. 인덱스열 추가
3. 그룹화를 위한 사용자 지정 열(핵심 단계):Number.IntegerDivide([인덱스],2)
4. 불필요한 열 삭제
5. 피벗 열 변환('집계 안 함' 설정).

최근 업무를 하면서 파워쿼리(Power Query)를 접하게 되었다. 처음에는 엑셀의 보조적인 도구 정도로 생각했었는데, 실제로 사용해보니 예상보다 훨씬 강력한 기능을 가지고 있었다. 다양한 연습을 통해 실무에 적용해 보고자 여러 가지 데이터를 다뤄봤는데, 그중에서 오늘 꽤나 까다로운 데이터를 만났다. 이를 해결하는 과정에서 얻은 팁을 공유하고자 이 글을 작성한다.


해결하려는 문제

아래와 같은 형태의 데이터가 있을 때:

a 1
b 2
a 3
b 4
a 5
b 6
... ...

 

이를 다음과 같이 변환하고자 했다.

a b
1 2
3 4
5 6
... ...

 


 

단계별 해결 방법

1. 원본 데이터 불러오기

먼저 원본 데이터를 파워쿼리로 불러온다. 이 단계에서는 단순히 데이터를 있는 그대로 로드한다.

 

 

2. 인덱스 컬럼 추가

'열 추가' 메뉴에서 '인덱스 열'을 선택하여 새로운 인덱스 컬럼을 추가한다. 이 인덱스는 0부터 시작하여 각 행에 순차적인 번호를 부여한다.

 

3. 그룹화를 위한 사용자 지정 열 추가 (핵심 단계)

이 단계가 전체 변환 과정의 핵심이다. 새로운 사용자 지정 열을 추가하고 다음 수식을 입력한다.

이 수식은 인덱스 값을 2로 나누고 정수 몫만 취하는데,  이렇게 하면 같은 값이 두 번씩 반복되는 새로운 그룹핑 열이 생성된다.

'=Number.IntegerDivide([인덱스],2)

 

4. 불필요한 컬럼 제거

작업에 필요하지 않은 열들은 제거하여 데이터를 정리한다.

 

5. 피벗 테이블 생성

변환 → 피벗 열을 선택하고 고급 옵션에서 '집계 안 함'을 선택한다.

 

6. 최종 정리

필요 없는 컬럼을 마저 제거하면, 최종적으로 원하던 형태의 데이터 구조가 완성된다.

 


마치며

파워쿼리를 사용하면 몇 단계의 데이터 변환 작업으로 원하는 데이터 구조를 얻을 수 있다. Number.IntegerDivide()와 같은 함수를 활용한 그룹핑과 피벗 기능의 조합은 데이터 구조 변환에 매우 강력한 도구로 활용할 수 있었다. 이러한 기술을 잘 활용하면, 다양한 실무 상황에서 데이터 전처리 시간을 크게 단축할 수 있을 것이다.

728x90