PDF → 엑셀 자동 변환, 클릭 한 번에 끝내는 자동화 비법
PDF 엑셀 변화 목차 바로가기
영상 강의
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [실무기초] PDF 엑셀 변환 클릭 한 번에 해결하기예제파일
라이브 강의 전체영상도 함께 확인해보세요!
위캔두 회원이 되시면 매주 오빠두엑셀에서 진행하는 라이브강의 풀영상을 확인하실 수 있습니다.
파워쿼리로 PDF → 엑셀 불러오기
엑셀 2019 이후 버전에 새롭게 추가된 "PDF에서 가져오기" 기능을 사용하면, PDF의 전체 페이지나 표로 작성된 특정 데이터만 선택해 엑셀로 편리하게 불러올 수 있습니다. 오늘은 PDF 불러오기 기능으로 단순히 데이터를 가져오는 것을 넘어, 불필요한 공백을 제거하고 원하는 정보만 정확하게 추출하는 데이터 전처리 기초까지 단계별로 알아보겠습니다.
- 비어있는 통합문서를 실행한 후, [데이터] 탭 - [데이터 가져오기] - [파일에서] - [PDF 에서] 버튼을 클릭합니다. ([데이터] 탭에서 [데이터 가져오기] 의 위치는 엑셀 버전에 따라 조금씩 다를 수 있습니다.)

데이터 - 데이터 가져오기 - 파일에서 - PDF에서를 클릭합니다. - [데이터 가져오기] 파일 선택창이 실행되면 불러올 PDF 파일을 선택하고 [가져오기] 버튼을 클릭합니다.

PDF 파일을 선택하고 가져오기 버튼을 클릭합니다. - 잠시만 기다리면 [탐색창]이 실행되면서 PDF 에서 추출할 데이터를 확인할 수 있습니다. "Table"은 표 형태로 작성된 데이터만 추출하고, "Page"는 특정 페이지의 모든 텍스트를 추출할 수 있습니다. 또는 폴더 아이콘을 클릭하면 모든 페이지 정보를 한 번에 추출할 수 있습니다. 이번에는 견적서의 두번째 테이블인 구매 내역을 추출할 것이므로, "Table002"를 선택하고 [데이터 변환] 버튼을 클릭해 파워쿼리 편집기를 실행합니다.
· Table : 특정 표의 데이터를 추출
· Page : 특정 페이지의 모든 텍스트 추출
· 폴더 : PDF 모든 텍스트 추출
두번째 테이블을 선택합니다. - 파워쿼리 편집기에서 데이터를 가공합니다. 이번에는 구매 내역에서 비어있는 영역을 제거하겠습니다. [품명] 필드의 필터를 클릭하고 '빈 항목 제거'를 선택하면 비어있는 항목이 한 번에 제거됩니다.

품명 필드에서 빈 항목을 제거합니다. - 이제 가공된 데이터를 시트로 출력하겠습니다. [파일] 탭 - [닫기 및 로드]를 클릭합니다.

파일 - 닫기 및 로드로 데이터를 출력합니다. - 새로운 시트가 생성되면서 완성된 데이터가 시트에 출력됩니다.

데이터가 시트에 출력됩니다. - 파워쿼리의 더 자세한 사용법이 궁금하다면 무료로 참여할 수 있는 파워쿼리 기초 완성 원데이 무료 챌린지를 확인해보세요!👇
PDF → 엑셀 변환 함수 만들기
이전 과정에서 선택한 PDF 파일을 엑셀로 불러오는 방법을 알아봤습니다. 하지만 매번 새로운 파일을 불러와야 할 때, 같은 과정을 수작업으로 반복하는 것은 매우 비효율적입니다. 이제 한 단계 더 나아가, 방금 실행했던 PDF 변환 과정을 언제든 재사용할 수 있는 파워쿼리 함수로 생성해 파일 경로만 바꿔주면 PDF 데이터를 자동으로 불러오는 방법을 알아보겠습니다.
- 엑셀 화면 우측의 [쿼리 및 연결] 패널에서 방금 만들었던 쿼리를 우클릭 - [편집]으로 이동합니다.

쿼리를 우클릭 - 편집으로 이동합니다. - 만약 쿼리 및 연결 패널이 보이지 않는다면 [데이터] 탭 - [쿼리 및 연결]을 클릭해 패널을 열거나, 표를 선택한 후 [쿼리] 탭 - [편집] 버튼을 클릭해 파워쿼리 편집기를 실행합니다.

쿼리 탭 - 편집을 클릭해 파워쿼리 편집기를 실행합니다. - 파워쿼리 편집기가 실행되면 [홈] 탭 - [고급 편집기] 버튼을 클릭해 고급편집기를 실행합니다.

고급 편집기를 실행합니다. - 고급 편집기가 실행되면, 아래와 같이 기존 쿼리 구문위에 함수로 변환하기 위한 인수를 추가합니다.
(path as text) =>
...기존코드...
함수로 변환하기 위한 인수를 추가합니다. - 이후 기존 코드에서 파일 경로가 들어가는 부분을 path로 변경합니다.

파일 경로 부분을 path 로 변경합니다. - 모두 수정한 후, [완료] 버튼을 클릭하면 쿼리가 함수로 변경됩니다. 함수를 우클릭 - [이름 바꾸기] 에서 함수 이름을 원하는 값으로 변경합니다.

함수 이름을 원하는 값으로 변경합니다. - 이제 path 경로에 PDF로 변환할 파일의 경로를 입력하고 [호출] 버튼을 클릭하면 선택한 PDF의 구매내역 데이터가 파워쿼리 편집기로 출력됩니다.

함수 인수로 파일 경로를 입력하고 [호출] 버튼을 클릭해 테스트합니다. - 테스트로 출력한 쿼리는 우클릭 - [삭제]로 제거하고, 닫기 및 로드를 클릭해서 완성된 함수를 저장합니다.

테스트 쿼리를 삭제한 후, 쿼리를 저장합니다.
폴더 내 모든 PDF 파일 합치기
이제 마지막 단계로 폴더 안에 있는 모든 PDF 파일을 한 번에 취합하는 방법을 알아보겠습니다. 이전 과정에서 PDF 변환 함수를 만들었기에, 폴더 안의 모든 PDF 파일을 취합하는 쿼리도 손쉽게 만들 수 있습니다. 이 쿼리를 활용하면 폴더 안에 새 PDF 파일을 추가하거나 변경했을 때 엑셀에서 '새로고침' 한 번으로 모든 데이터가 실시간으로 업데이트되는 서식을 만들 수 있습니다.
- [데이터] 탭 - [데이터 가져오기] - [파일에서] - [폴더에서]를 클릭합니다.

데이터 가져오기 - 파일에서 - 폴더에서를 클릭합니다. - 폴더 선택창이 나오면 PDF 파일이 위치한 폴더 경로를 선택하고 [열기] 버튼을 클릭합니다.

PDF 파일이 있는 폴더 경로를 선택합니다. - 폴더 안에 있는 파일 목록이 이상 없는 것을 확인한 후, [데이터 변환] 버튼을 클릭해 파워쿼리 편집기를 실행합니다.

파일 목록을 확인 후, 데이터 변환 버튼을 클릭합니다. - PDF 출력 함수에 사용할 파일 경로를 만들기 위해 필드 목록에서 FolderPath와 Name 을 제외한 다른 필드를 제거합니다.

FolderPath와 Name을 제외한 나머지 필드를 제거합니다. - Ctrl + A 를 눌러 모든 필드를 선택한 후, [변환] 탭 - [열 병합] 버튼을 클릭하고 '열 병합' 대화상자가 실행되면 [확인] 버튼을 클릭해 구분기호 없이 열을 병합합니다.

FolderPath와 Name 필드를 병합합니다. - 이제 완성된 파일 경로로 PDF 불러오기 함수를 실행합니다. [열 추가] - [사용자 지정 함수 호출] 버튼을 클릭합니다.

열 추가 - 사용자 지정 함수 호출을 클릭합니다. - '사용자 지정 함수 호출' 대화상자가 실행되면, 실행할 함수로 이전에 만든 함수를 선택하고 함수의 인수로는 파일 경로가 입력된 필드를 선택합니다. 선택을 완료한 후, [확인] 버튼을 클릭해 함수를 호출합니다.

PDF 변환 함수를 선택한 후, 인수로 파일 경로가 입력된 필드를 선택합니다. - Table이 이상 없이 출력된 것을 확인했으면 [확장] 버튼을 클릭하고 '원래 열 이름을 접두사로 사용' 옵션은 체크 해제한 후, [확인] 버튼을 클릭해서 필드를 펼칩니다.

테이블 필드를 확장합니다. - [파일] 탭 - [닫기 및 로드] 버튼을 클릭해 완성된 쿼리를 출력하면 폴더 안의 모든 PDF 파일이 취합된 표가 시트에 출력됩니다.

폴더 안의 모든 PDF 파일의 데이터가 한 번에 취합됩니다. - 이제 폴더 안의 PDF 파일을 추가하거나 변경한 후, 표를 우클릭 - [새로고침] 버튼을 클릭하면 폴더 안의 PDF 파일 데이터가 실시간으로 업데이트 됩니다.

표를 우클릭 - 새로고침을 클릭하면 데이터가 실시간으로 업데이트됩니다. 오빠두Tip : 파일명을 기준으로 구매 날짜와 구매처 이름을 가공하는 방법은 영상 강의에서 알기 쉽게 정리했으니 참고하세요!😊
여러 페이지를 한 번에 합치는 방법
여러 페이지의 PDF 데이터를 취합할 때에는 각 페이지마다 구성된 필드 개수가 달라 최종 단계에서 데이터가 불규칙하게 취합되는 문제가 발생할 수 있습니다. 그럴 경우, 마지막 단계에 열의 개수를 맞추는 쿼리를 추가합니다.
- [데이터] 탭 - [데이터 가져오기] - [PDF 에서] 로 불러올 PDF 파일을 선택하고, '폴더' 아이콘을 클릭한 후 [데이터 변환] 버튼을 클릭합니다.

폴더 아이콘을 클릭해 PDF 파일의 모든 데이터를 취합합니다. - Kind 필드에서 'Page' 만 보이도록 필터를 적용한 후, Data 필드를 확장합니다.

Page 만 보이도록 필터를 적용한 후, Data 필드를 확장합니다. - 여러 페이지의 PDF 데이터를 확장하면, 아래 그림과 같이 페이지마다 구성되는 필드 개수가 달라 데이터가 불규칙하게 취합되는 문제가 있습니다. 이럴 때, 실습 파일에 함께 첨부해드린 열 병합 함수를 사용합니다.

여러 페이지를 취합하면 페이지 구조가 달라 필드가 꼬이는 문제가 발생할 수 있습니다. - 쿼리 목록을 우클릭 - [새 쿼리] - [기타 원본] - [빈 쿼리]를 추가한 후, 열 병합 함수를 등록합니다.

미리 준비한 열 병합 함수를 등록합니다. - 함수 이름은 "MergeCols"라고 변경합니다.

함수 이름은 MegeCols 함수로 변경합니다. - 이후 여러 페이지를 취합한 쿼리를 선택하고 [홈] 탭 - [고급 편집기] 에서 쿼리의 마지막 단계를 MergeCols로 함수로 묶어주면, 빈 필드가 제거되고 모든 페이지의 데이터가 깔끔하게 취합됩니다.

여러 페이지의 PDF를 취합한 쿼리에서 마지막 단계를 MergeCols 함수로 묶어줍니다. - 여러 페이지를 합치는 방법의 자세한 영상 설명은 아래 멤버십 라이브 전체 영상에서 알기 쉽게 정리했으니 참고하세요!👇
- 비어있는 통합문서를 실행한 후, [데이터] 탭 - [데이터 가져오기] - [파일에서] - [PDF 에서] 버튼을 클릭합니다. ([데이터] 탭에서 [데이터 가져오기] 의 위치는 엑셀 버전에 따라 조금씩 다를 수 있습니다.)

