Excel 데이터를 매번 정리하고 있다면, 입력부터 바꿔볼 수 있습니다
매주 같은 형식의 Excel 데이터를 받아 담당자별로 정리하고, 수량과 단가를 곱해 매출액을 계산한 뒤, 매출액이 높은 순서로 다시 정렬하는 업무가 있다고 가정해 보겠습니다.
데이터가 10~20줄이라면 직접 처리해도 어렵지 않습니다. 하지만 매일 반복되거나 데이터가 수백 줄로 늘어나면 이야기가 달라집니다. 복사, 수식 입력, 정렬, 결과 확인을 계속 반복해야 하기 때문입니다.
이때 활용할 수 있는 방법이 Excel에서 받은 데이터를 Google Sheets로 가져온 뒤 Google Apps Scr (자세히 보기) (자세히 보기)ipt로 정리 작업을 자동화하는 방식입니다.
이번 글에서는 복잡한 프로그램을 만드는 대신, 실제 업무에서 자주 나오는 형태를 하나 정해 처음부터 끝까지 만들어 보겠습니다.
먼저 실제 데이터를 준비합니다
Excel에서 아래와 같은 판매 데이터를 받았다고 가정하겠습니다.
| 날짜 | 담당자 | 상품 | 수량 | 단가 |
|---|---|---|---|---|
| 2026-09-01 | 이수진 | 노트북 거치대 | 10 | 33,000 |
| 2026-09-02 | 박준호 | 무선 키보드 | 15 | 20,000 |
| 2026-09-03 | 최민서 | 모니터 받침대 | 12 | 15,000 |
| 2026-09-04 | 정하늘 | USB 허브 | 22 | 8,000 |
여기서 사람이 직접 해야 하는 작업은 간단해 보입니다.
- Excel 데이터를 Google Sheets로 가져옵니다.
- 수량 × 단가로 매출액을 계산합니다.
- 매출액이 높은 순서로 정렬합니다.
- 정리된 결과를 별도의 시트에 출력합니다.
문제는 이 과정이 반복될 때입니다. 같은 작업을 매일 한다면 계산과 정렬을 사람이 계속 수행할 이유가 줄어듭니다.
1단계. Excel 파일을 Google Sheets로 가져오기
Google Apps Script는 Google Sheets와 연결해서 사용하는 것이 가장 간단합니다. 따라서 Excel에서 받은 파일을 Google Drive에 올린 뒤 Google Sheets 형식으로 열어 사용합니다.
회사에서 Excel을 사용하고 있다면 원본 데이터를 그대로 유지하고, 자동화가 필요한 작업용 사본을 Google Sheets에서 관리하는 방식도 가능합니다.
새 Google Sheets를 만들고 첫 번째 시트 이름을 원본으로 변경합니다.
그리고 Excel의 데이터를 아래처럼 붙여 넣습니다.
날짜 / 담당자 / 상품 / 수량 / 단가
2026-09-01 / 이수진 / 노트북 거치대 / 10 / 33,000
2026-09-02 / 박준호 / 무선 키보드 / 15 / 20,000
2026-09-03 / 최민서 / 모니터 받침대 / 12 / 15,000
2026-09-04 / 정하늘 / USB 허브 / 22 / 8,000
첫 번째 행은 반드시 제목 행으로 둡니다.
2단계. Google Apps Script에 코드를 넣습니다

Google Sheets 상단 메뉴에서 확장 프로그램 → Apps Script를 선택합니다.
기존 코드를 지우고 아래 코드를 그대로 붙여 넣습니다.
이 코드는 원본 데이터를 읽고, 매출액을 계산하고, 매출액이 높은 순으로 정렬한 뒤 정리결과 시트에 출력합니다.
function 정리하기() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sourceSheet = ss.getSheetByName('원본'); // 원본 데이터 가져오기 const data = sourceSheet.getDataRange().getValues(); // 제목 행 분리 const header = data[0]; // 실제 데이터만 가져오기 const rows = data.slice(1); // 매출액 계산 const result = rows.map(row => { const date = row[0]; const manager = row[1]; const product = row[2]; const quantity = Number(row[3]); const unitPrice = Number(row[4]); const sales = quantity * unitPrice; return [ date, manager, product, quantity, unitPrice, sales ]; }); // 매출액 높은 순으로 정렬 result.sort((a, b) => b[5] - a[5]); // 결과 시트 생성 또는 초기화 let resultSheet = ss.getSheetByName('정리결과'); if (!resultSheet) { resultSheet = ss.insertSheet('정리결과'); } else { resultSheet.clearContents(); } // 제목 + 결과 출력 resultSheet.getRange(1, 1, 1, 6).setValues([[ '날짜', '담당자', '상품', '수량', '단가', '매출액' ]]); if (result.length > 0) { resultSheet .getRange(2, 1, result.length, 6) .setValues(result); } // 금액 형식 적용 resultSheet .getRange(2, 5, result.length, 2) .setNumberFormat('#,##0'); // 열 너비 자동 조정 resultSheet.autoResizeColumns(1, 6); }
코드를 처음 보면 길어 보일 수 있지만, 실제로 반복 작업을 하는 부분은 네 가지입니다.
- getValues()로 원본 데이터를 가져옵니다.
- quantity × unitPrice로 매출액을 계산합니다.
- sort()로 매출액 내림차순 정렬을 합니다.
- setValues()로 정리된 결과를 한 번에 기록합니다.
3단계. 실행하면 실제로 무엇이 나올까?
Apps Script에서 함수 이름이 정리하기로 선택되어 있는지 확인한 다음 실행합니다.
처음 실행할 때는 Google 계정 권한 승인 과정이 나타날 수 있습니다. 본인이 만든 스프레드시트에서 실행하는 코드인지 확인한 뒤 필요한 권한을 승인하면 됩니다.
실행이 완료되면 정리결과라는 시트가 만들어집니다.
앞서 입력한 데이터에 코드를 실행하면 결과는 다음과 같습니다.
| 날짜 | 담당자 | 상품 | 수량 | 단가 | 매출액 |
|---|---|---|---|---|---|
| 2026-09-01 | 이수진 | 노트북 거치대 | 10 | 33,000 | 330,000 |
| 2026-09-02 | 박준호 | 무선 키보드 | 15 | 20,000 | 300,000 |
| 2026-09-03 | 최민서 | 모니터 받침대 | 12 | 15,000 | 180,000 |
| 2026-09-04 | 정하늘 | USB 허브 | 22 | 8,000 | 176,000 |
즉, 날짜 → 담당자 → 상품 → 수량 → 단가 → 매출액의 6개 열이 모두 만들어지고, 매출액은 330,000원 → 300,000원 → 180,000원 → 176,000원 순서로 정렬됩니다.
여기서 중요한 점은 사람이 결과표를 다시 정렬한 것이 아니라는 것입니다. 원본의 입력 순서와 관계없이 스크립트가 매출액을 계산하고 높은 금액부터 결과를 다시 구성합니다.
4단계. 반복 업무에서는 무엇이 달라질까?
예를 들어 매일 오전에 전날 판매 데이터를 받아 정리한다고 가정해 보겠습니다.
기존 방식이라면 Excel을 열고 데이터를 확인한 다음 수식을 넣고, 결과를 복사하고, 정렬하고, 보고용 시트에 붙여 넣는 작업을 반복할 수 있습니다.
반면 위 구조에서는 다음 순서로 작업할 수 있습니다.
- Excel에서 받은 데이터를 원본 시트에 붙여 넣습니다.
- Apps Script에서 정리하기를 실행합니다.
- 정리결과 시트를 확인합니다.
데이터 행이 4개에서 400개로 늘어나도 같은 방식으로 처리할 수 있습니다. 물론 실제 업무에서는 열의 위치가 바뀌거나 빈 행, 문자형 숫자, 날짜 형식이 섞이는 경우가 있으므로 테스트 데이터로 먼저 검증하는 편이 안전합니다.

AI는 코드를 대신 생각하게 하는 데 활용할 수 있습니다
Google Apps Script를 처음 접한다면 코드를 직접 처음부터 작성하는 것보다 AI에게 업무 규칙을 설명하고 초안을 받는 방법이 현실적입니다.
예를 들어 ChatGPT에 다음처럼 요청할 수 있습니다. ( (자세히 보기)자세히 보기)
Google Sheets의 ‘원본’ 시트에 날짜, 담당자, 상품, 수량, 단가가 있습니다. 수량×단가로 매출액을 계산하고 싶습니다. 결과는 ‘정리결과’ 시트에 날짜, 담당자, 상품, 수량, 단가, 매출액 6개 열로 출력해 주세요. 매출액이 높은 순으로 정렬하고, 기존 결과 데이터는 실행할 때마다 지워 주세요. Google Apps Script 초보자가 그대로 붙여 넣어 실행할 수 있는 코드로 작성해 주세요.
이때 결과를 바로 업무에 적용하기보다는 실제 데이터가 아닌 테스트 데이터로 먼저 실행하는 것이 좋습니다.
특히 AI에게 코드를 요청할 때는 “자동화해 주세요”라고만 말하기보다 입력 시트 이름, 열 이름, 결과 시트 이름, 정렬 기준, 계산 방식을 구체적으로 알려주는 것이 좋습니다.
대부분 놓치기 쉬운 한 단계: 자동화보다 ‘입력 규칙’을 먼저 고정하기
자동화 코드가 아무리 잘 만들어져도 원본 데이터의 구조가 매번 달라지면 오류가 발생하기 쉽습니다.
예를 들어 오늘은 수량이 D열인데 다음 주 Excel 파일에서는 수량이 E열로 이동한다면, 단순히 열 번호를 기준으로 작성한 코드는 예상과 다른 결과를 만들 수 있습니다.
따라서 반복 업무를 자동화할 때는 코드보다 먼저 다음 규칙을 정하는 것이 좋습니다.
| 항목 | 권장 규칙 |
|---|---|
| 시트 이름 | 원본으로 고정 |
| 첫 번째 행 | 열 제목으로 고정 |
| 수량 | 숫자만 입력 |
| 단가 | 숫자만 입력 |
| 결과 시트 | 정리결과로 고정 |
| 정렬 기준 | 매출액 내림차순 |
이렇게 입력 구조를 고정하면 이후에는 같은 스크립트를 반복해서 사용할 수 있습니다.
시간 절약 효과는 이렇게 계산해 볼 수 있습니다
자동화 효과를 막연하게 “시간이 많이 줄어든다”고 표현하기보다 실제 업무 횟수로 계산해 보는 편이 정확합니다.
예를 들어 수동 정리에 한 번 8분이 걸리고 월 20회 반복한다면 한 달 작업 시간은 약 160분입니다.
스크립트를 실행하고 결과를 확인하는 데 1분이 걸린다고 가정하면 약 20분이 됩니다.
단순 계산으로는 약 140분의 차이가 생깁니다.
다만 실제 절약 시간은 데이터 양, 원본 파일 상태, 오류 확인 과정에 따라 달라집니다. 따라서 자동화를 적용한 첫 달에는 실제 작업 시간을 기록해 보고 효과를 판단하는 것이 좋습니다.
업무에 적용하기 전 확인할 사항
- 실제 고객명, 전화번호, 주소 등 개인정보를 AI 입력창에 그대로 붙여 넣지 않습니다.
- 회사 내부 자료를 Google Sheets에 저장할 수 있는지는 사내 보안 규정을 먼저 확인합니다.
- 매출·인사·거래처 등 민감한 데이터는 테스트용 가상 데이터로 먼저 검증합니다.
- 자동화 결과를 원본 데이터와 대조한 뒤 실제 보고서에 사용합니다.
- 스크립트 실행 권한을 다른 사람에게 무심코 공유하지 않습니다.
FAQ
Q1. Excel 파일을 그대로 Apps Script에 연결할 수 있나요?
이번 예제에서는 Excel 데이터를 Google Sheets로 가져온 뒤 Apps Script가 처리하는 방식을 사용했습니다. Google Apps Script는 Google Sheets와의 연동이 간단하기 때문에 초보자가 자동화 구조를 이해하기에 적합합니다. Excel 원본 파일을 직접 읽고 다시 Excel 파일로 저장하는 구조는 별도의 파일 처리 방식이 필요하므로 난도가 올라갑니다.
Q2. 회사 데이터를 ChatGPT에 넣어서 코드를 만들어도 되나요?
회사 규정에 따라 달라집니다. 특히 고객정보, 개인정보, 영업기밀, 계약정보가 포함된 원본 데이터를 그대로 입력하는 것은 피하는 것이 안전합니다. 열 이름과 가상의 데이터만 제공해 코드 초안을 만든 뒤, 회사에서 허용된 환경에서 직접 테스트하는 방법을 권장합니다.
Q3. 데이터가 수천 줄이어도 같은 코드를 사용할 수 있나요?
기본적인 구조는 사용할 수 있습니다. 다만 데이터가 커질수록 실행 시간, 빈 행, 잘못된 숫자 형식, 날짜 형식, 중복 데이터 같은 예외 상황을 확인해야 합니다. 처음부터 대규모 실데이터에 적용하기보다 10~20줄의 테스트 데이터로 결과를 확인한 후 범위를 확대하는 것이 안전합니다.
이번 방식의 장점은 거창한 시스템을 새로 만드는 데 있지 않습니다. 매번 반복하는 Excel 정리 작업을 일정한 입력 형식으로 만들고, 한 번 만든 스크립트가 같은 계산과 정렬을 반복하게 하는 것에 있습니다.
특히 AI를 활용하면 Apps Script 문법을 모두 외우지 않아도 됩니다. 실제 업무의 입력과 결과를 구체적으로 설명하고, 생성된 코드를 테스트 데이터로 검증하는 방식부터 시작하면 데이터 정리 자동화를 비교적 작은 단위로 적용할 수 있습니다.
