Ver2.5 엑셀, 이제 복붙은 그만! 🤖 Power Query로 데이터 연금술사 되기

엑셀, 이제 복붙은 그만! 🤖 Power Query로 데이터 연금술사 되기
반복되는 데이터 정리 작업에 지치셨나요? 칼퇴를 방해하는 지긋지긋한 수작업에서 벗어나
진정한 데이터 전문가로 거듭나는 비법, 파워 쿼리의 세계로 여러분을 초대합니다!
들어가며: 우리의 시간은 소중하니까요 ✨
"월요일 아침, 커피 한 잔과 함께 컴퓨터를 켜고 이메일을 확인합니다.
'팀장님: OOO팀, 지난주 전국 매장별 판매 데이터 정리해서 오늘 점심 전까지 보고해주세요.'
첨부된 파일은 10개가 넘는 CSV 파일과 엑셀 파일의 향연... 각 파일의 양식은 제각각이고, 불필요한 데이터와 오타가 가득합니다. 🤮"
어디서 많이 본 풍경 아니신가요? 우리는 매일같이 데이터를 다루지만, 정작 '분석'보다는 '정리'에 대부분의 시간을 쏟아붓고 있습니다. Ctrl+C, Ctrl+V, VLOOKUP, 필터링... 이 무한 루프에 갇혀 소중한 오전 시간을 다 보내고 나면 진이 빠지기 일쑤죠.
만약 이 모든 과정을 버튼 하나만 누르면 자동으로 처리해주는 마법 같은 도구가 있다면 어떨까요? 심지어 엑셀에 기본으로 내장되어 있다면요?
바로 그 마법의 이름이 **파워 쿼리(Power Query)**입니다.
이 글은 파워 쿼리가 무엇인지, 왜 써야 하는지, 그리고 어떻게 사용하는지에 대한 가장 친절하고 상세한 안내서가 될 것입니다. 이 글을 끝까지 읽고 나면, 당신은 더 이상 데이터의 노예가 아닌, 데이터를 자유자재로 요리하는 '데이터 연금술사'로 거듭나게 될 거예요. 자, 준비되셨나요? 🚀
파워 쿼리는 지저분한 원본 데이터를 깔끔한 결과물로 자동 변환하는 마법의 다리입니다.
1. 파워 쿼리? 그거 먹는 건가요? 🧐
파워 쿼리를 처음 들어보는 분들도 많을 거예요. 당연합니다. 엑셀의 수많은 기능 속에 숨겨진 보석 같은 존재거든요.
간단히 정의하자면, 파워 쿼리는 **"데이터를 가져오고(Get), 변환하고(Transform), 로드하는(Load) 모든 과정을 처리하는 엑셀의 데이터 전처리 전문 도구"**입니다. ETL(Extract, Transform, Load) 도구라고도 부르죠.
좀 더 쉽게 비유해볼까요?
여러분은 최고의 요리사(데이터 분석가)입니다. 멋진 요리(인사이트 보고서)를 만들기 위해서는 신선하고 잘 손질된 재료(깨끗한 데이터)가 필요하죠. 하지만 시장(데이터 소스)에서 사 온 재료들은 흙도 묻어있고, 껍질도 벗겨야 하고, 크기도 제각각입니다.
이때, 파워 쿼리는 여러분의 최첨단 스마트 주방과 같습니다.
- 재료 가져오기 (Get/Extract): 동네 마트(엑셀 파일), 대형 창고(데이터베이스), 온라인 쇼핑몰(웹사이트) 등 어디서든 재료를 가져올 수 있습니다.
- 재료 손질하기 (Transform): 흙을 씻어내고(불필요한 데이터 제거), 껍질을 벗기고(형식 변경), 먹기 좋게 썰고(데이터 분할/병합), 양념을 하는(계산 열 추가) 모든 손질 과정을 처리합니다.
- 요리 준비 완료 (Load): 잘 손질된 재료를 도마(엑셀 시트)나 냄비(피벗 테이블) 위에 보기 좋게 올려놓습니다.
가장 중요한 점은, 이 모든 주방에서의 작업 과정이 '레시피'처럼 기록된다는 것입니다. 그래서 다음번에 똑같은 재료가 들어오면, 우리는 그저 '레시피 실행(새로고침)' 버튼만 누르면 됩니다. 그러면 주방이 알아서 모든 손질을 순식간에 끝내주죠. 이것이 바로 파워 쿼리 자동화의 핵심입니다.
파워 쿼리, 어디에 숨어있을까?
이 강력한 도구는 멀리 있지 않습니다. 여러분의 엑셀 안에 이미 탑재되어 있습니다.
- Excel 2016, 2019, 2021, Microsoft 365: [데이터] 탭 > [데이터 가져오기 및 변환] 그룹에 기본으로 내장되어 있습니다.
- Excel 2010, 2013: 마이크로소프트 홈페이지에서 'Power Query' 추가 기능을 별도로 다운로드하여 설치해야 합니다. (하지만 이제는 최신 버전을 사용하시는 것을 강력히 추천합니다!)
- Power BI Desktop: 파워 BI에서는 '데이터 변환'이라는 이름으로 파워 쿼리가 핵심 엔진으로 작동하고 있습니다. 즉, 파워 쿼리를 배우면 엑셀과 파워 BI 두 마리 토끼를 모두 잡는 셈이죠! 🐇🐇
"그냥 하던 대로 복붙하고 함수 쓰면 안 되나요?" 라고 생각할 수 있습니다. 하지만 파워 쿼리는 다음과 같은 명확한 장점을 제공합니다.
- 비파괴 작업: 원본 데이터는 절대 건드리지 않습니다. 모든 변환은 사본을 대상으로 이루어지므로, 실수에 대한 두려움 없이 마음껏 데이터를 주무를 수 있습니다. 원본은 언제나 안전해요!
- 작업 과정 기록: 내가 어떤 순서로 데이터를 변환했는지 '적용된 단계'에 차곡차곡 기록됩니다. "어? 이 데이터 어떻게 만들었더라?" 하고 기억을 더듬을 필요가 없습니다. 인수인계할 때도 최고죠. 👍
- 완벽한 자동화: 한 번 만들어 둔 쿼리는 '새로고침' 한 번으로 모든 과정을 재현합니다. 매일, 매주, 매월 반복되는 보고서 작업이 있다면? 파워 쿼리는 당신의 퇴근 시간을 최소 1시간 이상 앞당겨 줄 것입니다.
- 대용량 데이터 처리: 엑셀 시트가 104만 행을 넘어가면 버벅거리기 시작하죠. 파워 쿼리는 수백만, 수천만 행의 데이터도 거뜬히 처리할 수 있는 강력한 엔진을 가지고 있습니다.
- 다양한 데이터 소스 연결: 엑셀, CSV, 텍스트 파일은 기본이고, 웹사이트, 데이터베이스(SQL, Oracle), SharePoint, 심지어 PDF 파일까지! 거의 모든 종류의 데이터에 연결할 수 있습니다.
2. 첫 만남은 어색하지만... 파워 쿼리 편집기 탐험하기 🗺️
백문이 불여일견! 이제 파워 쿼리의 심장부인 '파워 쿼리 편집기'를 직접 만나볼 시간입니다. 처음에는 조금 낯설 수 있지만, 각 영역이 어떤 역할을 하는지만 이해하면 금방 친해질 수 있어요.
우선, 가장 간단한 방법으로 파워 쿼리 편집기를 열어보겠습니다.
1. 간단한 데이터 표를 엑셀 시트에 만듭니다. (예: 이름, 부서, 입사일)
2. 데이터 범위 안을 아무 곳이나 클릭합니다.
3. [데이터] 탭 > [테이블/범위에서]를 클릭합니다.
4. '표 만들기' 대화상자가 뜨면 범위를 확인하고 '확인'을 누릅니다.
짜잔! ✨ 별도의 창으로 '파워 쿼리 편집기'가 열렸습니다. 이제부터 이곳이 우리의 새로운 놀이터입니다.
파워 쿼리 편집기의 4가지 핵심 영역. 이것만 알면 절반은 성공입니다.
파워 쿼리 편집기 4대 천왕, 자세히 알아보기
① 리본 메뉴 (Ribbon Menu): 엑셀의 리본 메뉴와 비슷합니다. [홈], [변환], [열 추가], [보기] 탭으로 구성되어 있으며, 데이터를 변환하는 데 필요한 거의 모든 명령어가 여기에 모여 있습니다. 처음에는 [홈], [변환], [열 추가] 세 가지만 집중적으로 보셔도 충분합니다.
② 쿼리 창 (Queries Pane): 왼쪽에 위치하며, 현재 열려있는 모든 쿼리들의 목록을 보여줍니다. 여러 개의 데이터 소스를 가져와 작업할 때, 이 창에서 원하는 쿼리를 선택하여 편집할 수 있습니다.
③ 데이터 미리보기 (Data Preview): 중앙의 가장 넓은 영역입니다. 실제 데이터의 일부(기본 1000개 행)를 보여주며, 리본 메뉴에서 명령을 실행할 때마다 그 결과가 이곳에 실시간으로 반영됩니다. 데이터가 어떻게 변하는지 직접 눈으로 확인하며 작업할 수 있어 매우 직관적입니다.
④ 쿼리 설정 (Query Settings): 오른쪽의 작은 창이지만, 파워 쿼리의 핵심 중의 핵심입니다.
- 속성 (Properties): 쿼리의 이름을 지정하는 곳입니다. 나중에 여러 쿼리를 관리하기 쉽도록, '2023년_매출_데이터'처럼 의미 있는 이름으로 바꿔주는 습관을 들이는 것이 좋습니다.
- 적용된 단계 (Applied Steps): 이곳이 바로 파워 쿼리의 알파이자 오메가입니다. 여러분이 데이터를 가져오고 변환하는 모든 행동 하나하나가 여기에 순서대로 기록됩니다.
- '원본' 단계는 데이터를 처음 가져온 상태입니다.
- 이후 '열 제거', '행 필터링', '형식 변경' 등 여러분이 수행한 모든 작업이 단계별로 추가됩니다.
- 특정 단계를 클릭하면, 그 단계까지 작업이 완료된 시점의 데이터를 미리보기 창에서 확인할 수 있습니다.
- 단계 옆의 톱니바퀴(⚙️) 아이콘을 클릭하면 해당 단계의 설정을 수정할 수 있고, X 아이콘을 클릭하면 해당 단계를 삭제(작업 취소)할 수 있습니다.
'적용된 단계' 목록은 마치 데이터 변환 과정의 타임라인과 같습니다. "아, 3단계 전에 필터링을 잘못했네?" 싶으면, 해당 단계를 삭제하고 다시 작업하면 됩니다. Ctrl+Z가 한 번밖에 안 되는 엑셀과 달리, 파워 쿼리에서는 모든 작업 단계를 자유롭게 넘나들며 수정하고 되돌릴 수 있습니다. 이 기능 덕분에 우리는 실수를 두려워하지 않고 과감한 데이터 실험을 할 수 있게 됩니다.
3. 데이터, 일단 불러와! 📥
훌륭한 요리는 신선한 재료를 구하는 것에서 시작되듯, 파워 쿼리 작업도 데이터를 가져오는 것에서 시작됩니다. 파워 쿼리는 정말 다양한 곳에서 데이터를 가져올 수 있는 능력을 갖추고 있습니다.
[데이터] 탭 > [데이터 가져오기] 버튼을 눌러보세요. 어마어마한 메뉴가 펼쳐질 겁니다.
겁먹지 마세요! 처음에는 우리에게 가장 친숙하고 자주 사용하는 몇 가지만 알아두면 충분합니다.
Case 1: 엑셀 통합 문서에서 (From Excel Workbook)
가장 흔한 경우입니다. 다른 엑셀 파일에 있는 데이터를 가져오는 것이죠.
- [데이터] > [데이터 가져오기] > [파일에서] > [Excel 통합 문서에서]를 클릭합니다.
- 원하는 엑셀 파일을 선택하고 '가져오기'를 누릅니다.
- '탐색 창'이 나타나면, 해당 파일 안에 있는 시트(Sheet)나 표(Table)의 목록이 보입니다.
- 가져오고 싶은 항목을 클릭하면 오른쪽에 미리보기가 나타납니다.
- 데이터를 바로 편집하고 싶다면 [데이터 변환] 버튼을, 일단 시트로 로드하고 싶다면 [로드] 버튼을 클릭합니다. (우리는 파워 쿼리를 배울 것이므로, 항상 '데이터 변환'을 누른다고 생각하세요!)
Case 2: 텍스트/CSV 파일에서 (From Text/CSV)
시스템에서 추출한 데이터는 CSV(쉼표로 구분된 값) 형식인 경우가 많습니다.
- [데이터] > [데이터 가져오기] > [파일에서] > [텍스트/CSV에서]를 클릭합니다.
- CSV 파일을 선택하고 '가져오기'를 누릅니다.
- 파워 쿼리가 파일을 분석해서 미리보기 창을 띄워줍니다. 이때 중요한 것은 '파일 원본'과 '구분 기호'입니다.
- 파일 원본: 한글이 깨져 보인다면 '949: 한국어(Shift-JIS)' 또는 '65001: 유니코드(UTF-8)' 등으로 변경해보세요.
- 구분 기호: 데이터가 쉼표(,)로 구분되어 있는지, 탭(Tab)으로 구분되어 있는지 등을 파워 쿼리가 자동으로 감지하지만, 가끔 틀릴 때가 있습니다. 데이터가 한 줄로 쭉 나온다면 구분 기호를 확인해보세요.
- [데이터 변환]을 클릭하여 편집기로 들어갑니다.
Case 3: 웹에서 (From Web) 🌐
웹 페이지에 있는 표(Table) 데이터를 그대로 가져올 수 있는 강력한 기능입니다. 환율 정보, 주가 데이터, 스포츠 기록 등을 가져올 때 매우 유용합니다.
- [데이터] > [기타 원본에서] > [웹에서]를 클릭합니다.
- URL을 입력하는 창이 뜨면, 데이터를 가져오고 싶은 웹 페이지의 주소를 복사해서 붙여넣고 '확인'을 누릅니다.
- 파워 쿼리가 해당 페이지를 스캔하여 가져올 수 있는 모든 표의 목록을 '탐색 창'에 보여줍니다.
- 원하는 표를 선택하고 [데이터 변환]을 클릭합니다.
모든 웹사이트에서 데이터가 잘 가져와지는 것은 아닙니다. 로그인이 필요한 페이지나, 동적으로 데이터가 로딩되는(스크롤을 내려야 내용이 보이는) 사이트는 데이터 수집이 어려울 수 있습니다. 주로 HTML의 `
` 태그로 명확하게 구성된 정적인 페이지에서 잘 작동합니다.
Case 4: 폴더에서 (From Folder) - ✨최강 기능✨
이것이 바로 파워 쿼리를 써야 하는 가장 강력한 이유 중 하나입니다. 특정 폴더 안에 있는 모든 파일을 한 번에 합쳐서 가져오는 기능입니다.
예를 들어, '월별 매출' 폴더에 '1월_매출.csv', '2월_매출.csv', '3월_매출.csv'... 이렇게 파일이 쌓인다고 상상해보세요. 예전 같으면 매달 파일을 열어서 복사하고 붙여넣는 작업을 반복해야 했죠.
하지만 '폴더에서' 기능을 사용하면, 그냥 폴더만 지정해주면 됩니다. 그러면 파워 쿼리가 그 안에 있는 모든 파일을 자동으로 인식해서 하나의 거대한 테이블로 합쳐줍니다. 심지어 다음 달에 '4월_매출.csv' 파일이 추가되면? 그냥 '새로고침' 버튼만 누르면 4월 데이터까지 자동으로 포함됩니다. 🤯
- [데이터] > [데이터 가져오기] > [파일에서] > [폴더에서]를 클릭합니다.
- 파일들이 들어있는 폴더 경로를 지정하고 '확인'을 누릅니다.
- 폴더 안의 파일 목록이 나타납니다. 여기서 중요한 것은 파일 목록을 그대로 가져오는 것이 아니라, 파일들의 '내용(Content)'을 합치는 것입니다.
- [결합] 드롭다운 메뉴를 클릭하고 [파일 결합 및 변환]을 선택합니다.
- '파일 결합' 창이 뜨면, 첫 번째 파일을 기준으로 어떻게 데이터를 가져올지 설정합니다. (예: CSV 파일의 경우 구분 기호 설정)
- '확인'을 누르면 파워 쿼리가 마법을 부리기 시작합니다. 폴더 내 모든 파일을 순회하며 데이터를 읽어와 하나의 테이블로 합쳐줍니다. 이때, 파일 이름이 새로운 열로 추가되어 어떤 데이터가 어떤 파일에서 왔는지 구분할 수도 있습니다.
매일 아침 각기 다른 팀에서 보낸 일일 실적 보고서(엑셀 파일)를 취합하여 종합 보고서를 만들어야 한다고 가정해봅시다.
1. '일일 보고서 취합'이라는 폴더를 하나 만듭니다.
2. 아침마다 이메일로 받은 보고서 파일을 이 폴더에 저장하기만 합니다.
3. 파워 쿼리에서 이 폴더를 '폴더에서' 기능으로 연결해 둡니다.
4. 보고서 작성이 필요할 때, 엑셀을 열고 '새로고침' 버튼을 한 번만 클릭합니다.
5. 그날까지 폴더에 쌓인 모든 보고서가 자동으로 취합되고, 미리 설정해둔 양식에 따라 정리된 후, 연결된 피벗 테이블까지 한 번에 업데이트됩니다.
이것이 바로 파워 쿼리가 만들어주는 '업무 자동화'의 현실입니다. 30분 걸리던 일이 3초 만에 끝나는 기적을 경험하게 될 거예요.
4. 데이터 대변신! 핵심 변환 기능 TOP 10 ✨
자, 이제 재료(데이터)를 주방(파워 쿼리 편집기)으로 모두 가져왔습니다. 지금부터는 본격적으로 재료를 손질하는 방법을 배워볼 시간입니다. 파워 쿼리에는 수십 가지의 변환 기능이 있지만, 이 10가지 핵심 기능만 마스터해도 웬만한 데이터 전처리 작업의 90% 이상을 해결할 수 있습니다.
각 기능은 주로 [홈], [변환], [열 추가] 탭에 나뉘어 있습니다.
- [변환] 탭: 선택한 열 자체를 변경합니다. (예: '텍스트' 열을 '숫자' 열로 바꿈)
- [열 추가] 탭: 기존 열은 그대로 두고, 변환 결과를 새로운 열로 추가합니다. (예: '텍스트' 열을 기반으로 한 '숫자' 열을 새로 만듦)
상황에 따라 원본을 유지해야 할 때는 [열 추가]를, 필요 없을 때는 [변환]을 사용하면 됩니다.
1. 열 제거 / 열 선택 (필요한 것만 남기기)
가장 기본적이면서도 중요한 작업입니다. 원본 데이터에는 분석에 불필요한 열들이 많이 포함되어 있는 경우가 많습니다. 이런 열들을 미리 제거해주면 데이터가 한결 깔끔해지고 처리 속도도 빨라집니다.
- 방법 1 (열 제거): 제거하고 싶은 열의 머리글을 클릭합니다. (여러 개를 선택하려면 Ctrl 키를 누른 채 클릭) > 마우스 오른쪽 버튼 클릭 > [열 제거] 또는 [홈] 탭 > [열 관리] > [열 제거]
- 방법 2 (열 선택): 남기고 싶은 열의 머리글만 선택합니다. > 마우스 오른쪽 버튼 클릭 > [다른 열 제거] 또는 [홈] 탭 > [열 관리] > [열 선택]
실무 팁: 보통은 '열 선택' 방법이 더 안전하고 효율적입니다. 왜냐하면 나중에 원본 데이터에 새로운 열이 추가되더라도, 내가 선택한 열만 가져오도록 설정되어 있기 때문에 쿼리가 깨질 위험이 적습니다.
2. 행 필터링 (원하는 조건의 데이터만 보기)
엑셀의 필터 기능과 동일합니다. 특정 조건을 만족하는 행만 남기거나 제거할 수 있습니다.
- 방법: 필터링하고 싶은 열 머리글의 드롭다운 화살표(▼)를 클릭합니다. > 엑셀 필터처럼 원하는 값을 체크/해제하거나, [텍스트 필터], [숫자 필터], [날짜/시간 필터] 등에서 다양한 조건을 선택할 수 있습니다. (예: '같음', '같지 않음', '시작 문자', '보다 큼' 등)
- Null 값 제거: 데이터에 빈 값(null)이 있는 경우, 필터 메뉴에서 '(null)'을 체크 해제하면 해당 행을 쉽게 제거할 수 있습니다. 데이터 정제 시 가장 많이 사용하는 기능 중 하나입니다.
3. 데이터 형식 변경 (가장 중요! ⭐)
파워 쿼리에서 발생하는 오류의 80%는 데이터 형식 불일치 때문에 발생합니다. 예를 들어, 숫자처럼 보이지만 실제로는 '텍스트' 형식으로 저장된 데이터는 합계를 구하거나 평균을 낼 수 없습니다.
열 머리글 왼쪽에 있는 아이콘을 통해 현재 데이터 형식을 알 수 있습니다.
- ABC: 텍스트
- 123: 정수
- 1.2: 10진수 (소수)
- 📅: 날짜
- 🕒: 시간
- 📅🕒: 날짜/시간
- $: 통화
- %: 백분율
- True/False: 논리값
방법:
1. 형식을 변경할 열의 머리글을 클릭합니다.
2. 열 머리글 왼쪽의 아이콘을 클릭하고 원하는 형식을 선택합니다.
또는, [홈] 탭이나 [변환] 탭의 [데이터 형식] 드롭다운 메뉴에서 변경할 수도 있습니다.
만약 텍스트와 숫자가 섞여있는 열을 '숫자' 형식으로 바꾸려고 하면, 텍스트가 포함된 셀은 'Error'로 표시됩니다. 이런 오류는 계산을 방해하므로, 형식 변경 전에 '값 바꾸기' 등의 기능으로 데이터를 먼저 깨끗하게 만들어야 합니다.
4. 값 바꾸기 (오타 수정 및 데이터 표준화)
엑셀의 '찾기 및 바꾸기(Ctrl+H)'와 유사한 기능입니다. 특정 값을 다른 값으로 일괄 변경할 수 있습니다. 오타를 수정하거나, 여러 가지로 표현된 값을 하나로 통일할 때(예: '서울', '서울특별시' -> '서울'로 통일) 매우 유용합니다.
- 방법: 변경하고 싶은 열 선택 > 마우스 오른쪽 버튼 클릭 > [값 바꾸기] 또는 [변환] 탭 > [값 바꾸기]
- '찾을 값'에 원래 값을, '바꿀 값'에 새로운 값을 입력하고 '확인'을 누릅니다.
5. 열 분할 (하나를 여러 개로 쪼개기)
하나의 열에 여러 정보가 합쳐져 있을 때, 이를 특정 기준으로 쪼개어 여러 열로 만드는 기능입니다.
예를 들어 '서울시 강남구'라는 주소 데이터가 있을 때, 이를 '시'와 '구'로 나누고 싶을 때 사용합니다.
- 방법: 분할할 열 선택 > [홈] 또는 [변환] 탭 > [열 분할] > 원하는 기준 선택
- 주요 분할 기준:
- 구분 기호 기준: 쉼표(,), 공백( ), 하이픈(-) 등 특정 문자를 기준으로 분할합니다. 가장 많이 사용됩니다. '각 구분 기호에서', '왼쪽 구분 기호에서' 등 세부 옵션을 선택할 수 있습니다.
- 문자 수 기준: 앞에서부터 특정 개수의 문자를 기준으로 분할합니다. (예: '12345-ABC'를 5글자 기준으로 분할)
- 대문자에서 소문자로, 소문자에서 대문자로: 'PowerQuery' 같은 텍스트를 'Power'와 'Query'로 분할할 수 있습니다.
6. 열 병합 (여러 개를 하나로 합치기)
열 분할의 반대 개념입니다. 여러 열의 값을 합쳐서 하나의 새로운 열을 만듭니다.
예를 들어 '연도', '월', '일' 열이 따로 있을 때, 이를 'YYYY-MM-DD' 형식의 날짜 텍스트로 합칠 수 있습니다.
- 방법: 병합할 열들을 순서대로 선택합니다. (Ctrl 키 사용) > [열 추가] 탭 > [열 병합] (보통 새로운 열로 만드므로 '열 추가' 탭에 있습니다. '변환' 탭에도 있긴 합니다.)
- '구분 기호'를 선택하거나 사용자 지정 문자를 입력할 수 있습니다. (예: 하이픈, 공백 등)
- '새 열 이름'을 지정하고 '확인'을 누릅니다.
7. 사용자 지정 열 추가 (나만의 공식으로 열 만들기)
엑셀에서 수식을 입력하여 새로운 열을 만드는 것과 비슷합니다. 파워 쿼리에서는 'M 언어'라는 자체 수식 언어를 사용하지만, 아주 간단한 형태는 엑셀 수식처럼 쉽게 사용할 수 있습니다.
예를 들어 '수량' 열과 '단가' 열을 곱해서 '매출액' 열을 만들고 싶을 때 사용합니다.
- 방법: [열 추가] 탭 > [사용자 지정 열]
- '새 열 이름'을 입력합니다. (예: 매출액)
- '사용자 지정 열 수식' 입력 창에 수식을 작성합니다. 오른쪽에 있는 '사용 가능한 열' 목록에서 열 이름을 더블클릭하면 `[열이름]` 형태로 자동으로 입력됩니다.
예: `[수량] * [단가]` - 구문 오류가 없는지 확인하고 '확인'을 누릅니다.
간단한 사칙연산 외에도 `if...then...else` 같은 조건문이나 다양한 내장 함수를 사용할 수 있어 활용도가 무궁무진합니다.
8. 조건부 열 추가 (IF 함수의 파워 쿼리 버전)
'사용자 지정 열'에서 `if`문을 직접 쓰는 것보다 훨씬 직관적이고 쉽게 조건에 따른 열을 추가할 수 있는 기능입니다. 엑셀의 `IF` 함수와 똑같다고 생각하시면 됩니다.
예를 들어 '판매 실적' 열의 값이 100 이상이면 '우수', 그렇지 않으면 '보통'으로 표시하는 '등급' 열을 만들고 싶을 때 사용합니다.
- 방법: [열 추가] 탭 > [조건부 열]
- 대화상자가 나타나면, 마치 문장을 만들 듯이 조건을 설정합니다.
- 새 열 이름: 등급
- If [열 이름] (판매 실적) [연산자] (다음보다 크거나 같음) [값] (100)
- Then 출력 (우수)
- Else (보통)
- [절 추가] 버튼을 눌러 `IF...ELSEIF...ELSE`처럼 여러 조건을 중첩해서 만들 수도 있습니다.
9. 피벗 / 언피벗 (데이터 구조를 뒤집는 마법)
데이터 분석가들에게는 성배와도 같은 기능입니다. 데이터의 구조를 '넓은 형식(Wide Format)'에서 '좁은 형식(Long Format)'으로, 또는 그 반대로 자유자재로 변경할 수 있습니다.
- 언피벗 (Unpivot): 가장 중요하고 많이 사용됩니다. '넓은 형식'의 데이터를 분석하기 좋은 '좁은 형식'으로 바꿔줍니다.
예시 (넓은 형식):
이름 | 1월 | 2월 | 3월
--- | --- | --- | ---
김사원 | 100 | 120 | 150
이 데이터를 '언피벗'하면 분석에 용이한 아래와 같은 형태로 바뀝니다.
결과 (좁은 형식):
이름 | 월 | 매출
--- | --- | ---
김사원 | 1월 | 100
김사원 | 2월 | 120
김사원 | 3월 | 150
방법: 기준이 되는 열(예: '이름')을 선택 > [변환] 탭 > [열 언피벗] 드롭다운 > [다른 열 언피벗] - 피벗 (Pivot): 언피벗의 반대 작업입니다. '좁은 형식'을 '넓은 형식'으로 바꿉니다. 보고서 양식을 만들 때 주로 사용됩니다.
방법: 항목 이름이 될 열(예: '월')을 선택 > [변환] 탭 > [피벗 열] > '값 열'에 실제 값이 들어있는 열(예: '매출')을 선택하고, '고급 옵션'에서 집계 함수(합계, 평균 등)를 지정합니다.
'언피벗'은 사람이 보기 편한 보고서 형태의 데이터를 기계(피벗 테이블 등)가 분석하기 좋은 형태로 바꿔주는 핵심 기능입니다.
10. 그룹화 (데이터 요약하기)
엑셀의 피벗 테이블과 유사한 기능이지만, 데이터를 시트로 로드하기 전에 미리 요약(집계)하는 기능입니다. 대용량 데이터를 다룰 때, 원본 데이터를 모두 로드하지 않고 요약된 결과만 가져올 수 있어 매우 효율적입니다.
예를 들어, 수백만 건의 판매 기록에서 '제품 카테고리별 총매출액과 평균 판매 단가'를 계산하고 싶을 때 사용합니다.
- 방법: [홈] 또는 [변환] 탭 > [그룹화]
- '그룹화' 대화상자에서 기준이 될 열을 선택합니다. (예: 제품 카테고리)
- '새 열 이름' (예: 총매출액), '연산' (예: 합계), '열' (예: 매출액)을 설정합니다.
- ['집계 추가'] 버튼을 눌러 여러 개의 요약 값을 동시에 계산할 수 있습니다. (예: 평균 판매 단가 추가)
5. 두 개의 데이터를 하나로! 쿼리 병합 & 추가 🤝
실무에서는 여러 개의 데이터 테이블을 합쳐서 분석해야 하는 경우가 비일비재합니다. 파워 쿼리는 이렇게 분리된 데이터를 합치는 강력한 두 가지 무기를 제공합니다: 추가(Append)와 병합(Merge).
이 두 가지 개념의 차이를 이해하는 것이 매우 중요합니다.
쿼리 추가 (Append): 데이터를 아래로 쌓기 (UNION)
'추가'는 구조가 동일한(또는 유사한) 여러 개의 테이블을 위아래로 이어 붙여 하나의 긴 테이블로 만드는 작업입니다. SQL의 `UNION ALL`과 같은 개념입니다.
언제 사용할까?
✅ 1월 매출, 2월 매출, 3월 매출 데이터를 하나의 연간 매출 데이터로 합칠 때
✅ 서울 지점, 부산 지점, 광주 지점의 고객 목록을 전국 고객 목록으로 합칠 때
방법:
1. [홈] 탭 > [쿼리 추가]
2. '두 개의 테이블' 또는 '세 개 이상의 테이블'을 선택합니다.
3. 대화상자에서 합치고 싶은 쿼리(테이블)들을 선택하고 '확인'을 누릅니다.
파워 쿼리는 열의 위치가 아니라 열의 이름을 기준으로 데이터를 합칩니다. 예를 들어 한 테이블에는 '판매일자' 열이 있고 다른 테이블에는 '판매일' 열이 있다면, 이 두 열은 서로 다른 열로 인식되어 데이터가 합쳐지지 않습니다. 따라서 '추가' 작업을 하기 전에는 각 테이블의 열 이름을 동일하게 맞춰주는 것이 중요합니다. 만약 열 이름이 다르더라도, 파워 쿼리는 각각의 열을 그대로 유지하고 빈 셀은 null로 채워주기 때문에 데이터 유실은 없습니다.
쿼리 병합 (Merge): 데이터를 옆으로 붙이기 (VLOOKUP/JOIN)
'병합'은 엑셀의 `VLOOKUP`이나 `INDEX/MATCH`, 데이터베이스의 `JOIN`과 같이, 공통된 열(Key)을 기준으로 두 개의 테이블을 좌우로 합치는 작업입니다.
언제 사용할까?
✅ '주문 내역' 테이블에 있는 '제품 ID'를 기준으로, '제품 정보' 테이블에서 '제품명'과 '카테고리'를 가져와 붙일 때
✅ '인사 정보' 테이블에 있는 '사원 번호'를 기준으로, '급여 정보' 테이블에서 '연봉' 정보를 가져올 때
방법:
1. 기준이 될 첫 번째 쿼리(테이블)를 선택합니다. (예: 주문 내역)
2. [홈] 탭 > [쿼리 병합]
3. '병합' 대화상자가 나타납니다.
a. 첫 번째 테이블(주문 내역)에서 기준이 될 공통 열(제품 ID)을 클릭합니다.
b. 두 번째 드롭다운 메뉴에서 합치고 싶은 다른 테이블(제품 정보)을 선택합니다.
c. 두 번째 테이블에서도 기준이 될 공통 열(제품 ID)을 클릭합니다. (두 열의 이름이 달라도 상관없습니다.)
d. '조인 종류(Join Kind)'를 선택합니다. (가장 중요!)
e. '확인'을 누릅니다.
4. 병합 결과로 새로운 열이 추가되는데, 값은 'Table'이라고 표시됩니다. 이 열의 머리글 오른쪽에 있는 확장 버튼(↔)을 클릭합니다.
5. 가져오고 싶은 열(예: 제품명, 카테고리)을 선택하고 '확인'을 누르면, 해당 열들이 옆으로 펼쳐지며 데이터가 합쳐집니다.
`VLOOKUP`은 엑셀 유저의 필수 함수였지만, 여러 단점이 있었습니다. 기준 열이 반드시 맨 왼쪽에 있어야 하고, 여러 개의 값을 가져오려면 수식을 여러 번 써야 하며, 데이터가 많아지면 파일이 매우 느려졌죠.
파워 쿼리의 '병합'은 이런 단점을 모두 해결합니다.
- 기준 열의 위치에 제약이 없습니다.
- 한 번의 작업으로 여러 개의 열을 동시에 가져올 수 있습니다.
- 대용량 데이터에서도 훨씬 빠른 성능을 보여줍니다.
- 다양한 '조인 종류'를 제공하여 훨씬 정교한 데이터 조합이 가능합니다.
이런 복잡한 데이터 병합 작업은 처음엔 어려울 수 있어요. 그럴 땐 **재능넷**의 엑셀 고수들에게 SOS를 쳐보는 것도 시간을 아끼는 지름길이죠. 전문가의 도움으로 한 번 원리를 깨우치고 나면, 데이터 활용 능력이 한 차원 달라질 거예요.
조인 종류(Join Kind) 간단히 이해하기
'병합' 시 가장 헷갈리는 부분이 바로 '조인 종류'입니다. 6가지나 있지만, 실무에서는 주로 2~3가지를 사용합니다.
- 왼쪽 외부 (Left Outer): (기본값, 가장 많이 사용) 첫 번째 테이블(왼쪽)의 모든 행을 기준으로, 두 번째 테이블에서 일치하는 값을 가져옵니다. 일치하는 값이 없으면 null로 표시됩니다. `VLOOKUP`과 가장 유사한 방식입니다.
- 오른쪽 외부 (Right Outer): 왼쪽 외부의 반대. 두 번째 테이블(오른쪽)의 모든 행이 기준이 됩니다.
- 내부 (Inner): 두 테이블 모두에 일치하는 데이터가 있는 행만 남깁니다. 교집합을 구하는 것과 같습니다.
- 완전 외부 (Full Outer): 두 테이블의 모든 데이터를 가져옵니다. 합집합과 같습니다.
- 왼쪽 안티 (Left Anti): 첫 번째 테이블에는 있지만 두 번째 테이블에는 없는 데이터만 남깁니다. (예: 주문은 했는데 제품 목록에는 없는 유령 제품 찾기)
- 오른쪽 안티 (Right Anti): 왼쪽 안티의 반대입니다.
6. M 언어? 그거 꼭 배워야 해? 🤔
파워 쿼리 편집기에서 [보기] 탭 > [고급 편집기]를 클릭해보세요. 아마 외계어처럼 보이는 코드들이 가득할 겁니다. 이것이 바로 파워 쿼리의 모든 작업을 관장하는 'M 언어(Power Query Formula Language)'입니다.
let
원본 = Excel.Workbook(File.Contents("C:\Data\Sales.xlsx"), null, true),
Sales_Sheet = 원본{[Item="Sales",Kind="Sheet"]}[Data],
#"승격된 헤더" = Table.PromoteHeaders(Sales_Sheet, [PromoteAllScalars=true]),
#"변경된 유형" = Table.TransformColumnTypes(#"승격된 헤더",{{"Date", type date}, {"Amount", type number}}),
#"필터링된 행" = Table.SelectRows(#"변경된 유형", each [Amount] > 100)
in
#"필터링된 행"
"헐, 결국 코딩을 해야 하는 거였어?" 라고 생각하며 창을 닫으려 하셨다면, 잠시만요! ✋
결론부터 말하자면, 초중급 수준에서는 M 언어를 한 줄도 몰라도 파워 쿼리를 사용하는 데 전혀 문제가 없습니다.
왜냐하면 우리가 지금까지 배운 모든 UI(사용자 인터페이스) 기반의 클릭 작업들(열 제거, 필터링, 값 바꾸기 등)이 사실은 M 코드를 자동으로 생성해주는 과정이었기 때문입니다. '적용된 단계'에 기록되는 내용 하나하나가 M 코드 한 줄에 해당합니다.
즉, 파워 쿼리는 코딩을 모르는 사용자도 마우스 클릭만으로 데이터 변환을 할 수 있도록 도와주는 아주 친절한 번역가인 셈이죠.
그럼에도 M 언어를 알면 좋은 점
물론, M 언어를 조금이라도 이해하면 파워 쿼리의 활용 범위가 비약적으로 넓어집니다.
- UI로 불가능한 세밀한 작업: UI에서 제공하지 않는 미세한 옵션을 조정하거나, 더 복잡한 논리를 구현할 수 있습니다.
- 에러 핸들링: 코드를 직접 보며 어디서 오류가 발생했는지 더 쉽게 파악하고 수정할 수 있습니다.
- 재사용 가능한 함수 제작: 반복적으로 사용하는 변환 로직이 있다면, 나만의 함수로 만들어두고 필요할 때마다 불러서 사용할 수 있습니다. (고급 기능)
- 성능 최적화: 비효율적으로 생성된 코드를 수정하여 데이터 처리 속도를 개선할 수 있습니다.
'사용자 지정 열' 기능이 바로 M 언어를 가장 쉽게 접하는 방법입니다.
예를 들어, `Date.Year([주문일자])` 라는 간단한 M 함수를 사용하면 '주문일자' 열에서 '연도'만 추출하는 새로운 열을 만들 수 있습니다.
이처럼, 처음에는 엑셀 함수처럼 간단한 M 함수들을 하나씩 사용해보면서 M 언어와 친해지는 것을 추천합니다. 인터넷에 'Power Query M function list'라고 검색하면 수많은 함수 목록을 찾아볼 수 있습니다.
7. 마무리! 데이터 로드 & 새로고침 🚀
자, 길고 긴 데이터 변환 여정이 끝났습니다. 이제 잘 손질된 데이터를 우리의 최종 목적지인 엑셀 시트로 가져올 시간입니다.
파워 쿼리 편집기 왼쪽 상단에 있는 [홈] 탭 > [닫기 및 로드] 버튼을 주목해주세요.
- 닫기 및 로드: 클릭하면, 변환된 데이터를 엑셀의 '새 워크시트'에 '표(Table)' 형태로 바로 가져오고 편집기 창을 닫습니다. 가장 일반적인 방법입니다.
- 닫기 및 다음으로 로드...: 클릭하면, 데이터를 어디에 어떤 형태로 로드할지 선택할 수 있는 대화상자가 나타납니다.
'다음으로 로드' 옵션 완전 정복
'데이터 가져오기' 대화상자에서는 다음과 같은 옵션을 선택할 수 있습니다.
- 데이터를 표시할 방법 선택:
- 표 (Table): 가장 기본 옵션. 데이터를 엑셀의 표 서식으로 가져옵니다. 필터링, 정렬이 쉽고 보기에도 깔끔합니다.
- 피벗 테이블 보고서: 변환된 데이터를 기반으로 즉시 피벗 테이블을 만듭니다. 요약/분석이 최종 목표일 때 가장 효율적인 방법입니다.
- 피벗 차트: 피벗 테이블과 차트를 동시에 만듭니다.
- 연결만 만들기: (매우 중요!) 데이터를 시트에 직접 로드하지 않고, 파워 쿼리 연결 정보만 유지합니다. 중간 단계의 쿼리(예: 다른 쿼리를 병합하기 위한 재료 쿼리)나, 최종 결과물이 피벗 테이블인 경우 원본 데이터를 굳이 시트에 뿌릴 필요가 없을 때 사용합니다. 파일 용량을 줄이고 성능을 향상시키는 데 큰 도움이 됩니다.
- 이 데이터가 추가될 위치 선택:
- 새 워크시트: 새로운 시트를 만들어 데이터를 로드합니다.
- 기존 워크시트: 현재 시트의 특정 셀 위치를 지정하여 데이터를 로드합니다.
자동화의 화룡점정: 새로고침! 🔄
파워 쿼리의 진정한 위대함은 바로 '새로고침' 기능에서 드러납니다.
여러분이 지금까지 설정한 모든 과정 - 데이터를 가져오고, 자르고, 붙이고, 계산하고, 합치는 이 모든 단계 - 은 '쿼리'라는 레시피로 저장되었습니다.
이제 원본 데이터가 변경되거나 추가되었을 때, 우리는 이 모든 과정을 다시 반복할 필요가 없습니다.
그저 다음 중 하나의 행동만 하면 됩니다.
- 결과 테이블 안을 마우스 오른쪽 버튼으로 클릭 > [새로 고침]
- [데이터] 탭 > [모두 새로 고침]
이 버튼을 누르는 순간, 파워 쿼리는 저장된 레시피(적용된 단계)에 따라 처음부터 끝까지 모든 과정을 1~2초 만에 다시 실행하고, 최종 결과물을 업데이트합니다. 매달 초, 전월 실적 보고서를 만들던 끔찍한 기억은 이제 안녕입니다. 👋
특정 시간마다 자동으로 데이터가 새로고침되도록 설정할 수도 있습니다.
1. [데이터] 탭 > [쿼리 및 연결]을 클릭하여 오른쪽에 창을 띄웁니다.
2. 원하는 쿼리에서 마우스 오른쪽 버튼 클릭 > [속성]
3. '새로 고침 컨트롤' 그룹에서 '다음 간격으로 새로 고침'을 체크하고 원하는 시간(분)을 설정합니다.
4. '파일을 열 때 데이터 새로 고침'을 체크하면, 엑셀 파일을 열 때마다 최신 데이터로 자동 업데이트됩니다.
마치며: 당신은 이제 데이터 마법사 🧙♂️
축하합니다! 여러분은 이제 파워 쿼리라는 강력한 마법 지팡이를 손에 넣었습니다. 처음에는 낯설고 복잡해 보일 수 있지만, 오늘 배운 내용들을 바탕으로 작은 데이터부터 하나씩 다루다 보면 어느새 지긋지긋한 '데이터 정제' 작업이 즐거운 '데이터 요리' 시간으로 바뀌어 있을 겁니다.
더 이상 단순 반복 작업에 당신의 소중한 시간과 에너지를 낭비하지 마세요. 파워 쿼리를 통해 확보한 시간으로, 우리는 더 깊이 있는 데이터 분석과 창의적인 문제 해결에 집중할 수 있습니다. 그것이 바로 데이터 시대에 우리가 갖춰야 할 진정한 경쟁력입니다.
물론, 모든 것을 혼자서 해결할 필요는 없습니다. 업무에 파워 쿼리를 적용하다가 막히는 부분이 있다면, **재능넷**과 같은 지식 공유 플랫폼에서 데이터 전문가들의 도움을 받아보세요. 때로는 전문가의 작은 조언 하나가 몇 시간 동안의 고민을 단번에 해결해주기도 하니까요.
이제 엑셀을 열고, [데이터] 탭을 자신 있게 클릭하세요. 당신의 칼퇴를 보장하고, 업무 생산성을 극적으로 높여줄 새로운 세계가 펼쳐질 것입니다.
당신은 더 이상 단순한 엑셀 사용자가 아닙니다. 당신은 데이터를 지배하는 데이터 연금술사입니다.
댓글 작성
이 글에 대한 여러분의 생각을 들려주세요
로그인이 필요합니다
댓글을 작성하려면 먼저 로그인해주세요.
댓글 0
지식인의 숲 - 지적 재산권 보호 고지
지적 재산권 보호 고지
- 저작권 및 소유권: 본 컨텐츠는 재능넷의 독점 AI 기술로 생성되었으며, 대한민국 저작권법 및 국제 저작권 협약에 의해 보호됩니다.
- AI 생성 컨텐츠의 법적 지위: 본 AI 생성 컨텐츠는 재능넷의 지적 창작물로 인정되며, 관련 법규에 따라 저작권 보호를 받습니다.
- 사용 제한: 재능넷의 명시적 서면 동의 없이 본 컨텐츠를 복제, 수정, 배포, 또는 상업적으로 활용하는 행위는 엄격히 금지됩니다.
- 데이터 수집 금지: 본 컨텐츠에 대한 무단 스크래핑, 크롤링, 및 자동화된 데이터 수집은 법적 제재의 대상이 됩니다.
- AI 학습 제한: 재능넷의 AI 생성 컨텐츠를 타 AI 모델 학습에 무단 사용하는 행위는 금지되며, 이는 지적 재산권 침해로 간주됩니다.
아직 댓글이 없습니다.