엑셀 반복 작업을 줄이는 Google Apps Script 자동화 실전 가이드

매주 하던 엑셀 정리를 1분짜리 작업으로 바꾸는 방법

매주 같은 형태의 엑셀 파일을 열어 데이터를 정리하고, 담당자별로 나누고, 결과를 다시 복사해 보고하는 업무가 있다면 굳이 매번 손으로 처리할 필요가 없습니다.

특히 Google 스프레드시트 ( (자세히 보기)자세히 보기)를 업무에 사용하고 있다면 Google Apps Script를 이용해 이런 반복 작업을 비교적 간단하게 자동화할 수 있습니다.

여기서 먼저 구분할 점이 있습니다. Google Apps Script는 PC에 설치된 Microsoft Excel 파일을 직접 자동화하는 도구가 아니라 (자세히 보기)Google 스프레드시트와 연결된 작업을 자동화하는 도구입니다. 회사에서 실제로 사용하는 것이 데스크톱 Excel이라면 Office Scripts나 VBA가 더 적합할 수 있습니다.

이번 글에서는 복잡한 프로그래밍 이론 대신, 실제 업무에서 자주 생기는 “판매 데이터를 담당자별로 분류하고 요약하는 작업”을 예제로 처음부터 자동화해 보겠습니다.

먼저 자동화할 업무를 숫자로 정의합니다

예를 들어 매주 다음과 같은 판매 데이터가 스프레드시트에 들어온다고 가정하겠습니다.

날짜 담당자 상품 수량 매출
2026-09-07 박지훈 A상품 12 360000
2026-09-07 이서연 B상품 8 280000
2026-09-08 박지훈 C상품 5 175000
2026-09-08 최민수 A상품 15 450000

기존에는 이 데이터를 받은 뒤 담당자 이름을 기준으로 필터링하고, 매출을 합산하고, 별도의 보고용 시트에 옮겨 적을 수 있습니다.

그런데 실제 자동화 목표를 다음처럼 정하면 작업이 훨씬 명확해집니다.

입력: 원본 시트에 판매 데이터가 추가된다.
처리: 담당자별 매출을 자동으로 합산한다.
결과: ‘담당자 요약’ 시트에 담당자별 총매출을 다시 만든다.

이 세 줄이 바로 자동화의 요구사항입니다. 처음부터 거대한 자동화 시스템을 만들 필요가 없습니다.

1단계: Google 스프레드시트에서 Apps Script 열기

Google 스프레드시트를 하나 만들고 첫 번째 시트 이름을 원본으로 설정합니다.

그다음 메뉴에서 확장 프로그램 → Apps Script를 선택합니다.

코드 입력 화면이 열리면 기본으로 들어 있는 함수를 지우고 자동화 코드를 넣습니다.

2단계: 원본 데이터를 읽는 것부터 시작합니다

첫 번째 목표는 데이터를 읽어오는 것입니다. 아래처럼 작성하면 현재 스프레드시트의 ‘원본’ 시트에서 데이터 전체를 가져올 수 있습니다.

function summarizeSales() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const source = ss.getSheetByName('원본'); const data = source.getDataRange().getValues(); Logger.log(data); }

여기서 직장인이 알아둘 부분은 많지 않습니다.

  • getActiveSpreadsheet(): 현재 스프레드시트를 가져옵니다.
  • getSheetByName(‘원본’): 이름이 ‘원본’인 시트를 찾습니다.
  • getDataRange().getValues(): 실제 입력된 데이터를 표 형태로 가져옵니다.

함수를 실행하면 처음에는 Google 계정 권한을 요청할 수 있습니다. 본인이 만든 업무용 스프레드시트에서 실행하는 경우 필요한 권한을 검토한 뒤 승인하면 됩니다.

3단계: 담당자별 매출을 자동으로 합산합니다

이제 실제 업무 결과를 만들어 보겠습니다.

원본 데이터에서 첫 번째 행은 제목이므로 제외하고, 담당자 이름과 매출 금액을 읽어 합산합니다.

function summarizeSales() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const source = ss.getSheetByName('원본'); const data = source.getDataRange().getValues(); const summary = {}; for (let i = 1; i < data.length; i++) { const manager = data[i][1]; const sales = Number(data[i][4]) || 0; if (!summary[manager]) { summary[manager] = 0; } summary[manager] += sales; } Logger.log(summary); }

예를 들어 원본 데이터가 다음과 같다면 결과는 다음처럼 계산됩니다.

박지훈 → 535,000원
이서연 → 280,000원
최민수 → 450,000원

여기서 중요한 것은 숫자 자체보다 사람이 하던 판단 과정을 코드에서 명확한 규칙으로 바꿨다는 것입니다.

“담당자 열을 보고 같은 사람끼리 묶고, 매출을 더한다.” 이 업무 규칙만 명확하면 나머지는 반복 실행할 수 있습니다.

원본 데이터가 자동으로 담당자별 요약 결과로 바뀌는 업무 자동화 흐름

4단계: 결과를 실제 시트에 만들어 봅니다

로그에 결과를 출력하는 것만으로는 업무 자동화라고 하기 어렵습니다. 사람이 실제로 사용하는 결과물을 만들어야 합니다.

이번에는 담당자 요약이라는 새 시트를 만들고 그곳에 결과를 기록하도록 변경합니다.

function summarizeSales() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const source = ss.getSheetByName('원본'); const data = source.getDataRange().getValues(); const summary = {}; for (let i = 1; i < data.length; i++) { const manager = data[i][1]; const sales = Number(data[i][4]) || 0; if (!summary[manager]) { summary[manager] = 0; } summary[manager] += sales; } let resultSheet = ss.getSheetByName('담당자 요약'); if (!resultSheet) { resultSheet = ss.insertSheet('담당자 요약'); } resultSheet.clearContents(); const output = [['담당자', '총매출']]; for (const manager in summary) { output.push([manager, summary[manager]]); } resultSheet .getRange(1, 1, output.length, output[0].length) .setValues(output); }

이제 실행 결과는 실제 시트에 다음처럼 나타납니다.

담당자 총매출
박지훈 535000
이서연 280000
최민수 450000

다음 주에 원본 데이터가 100행으로 늘어나도 같은 함수를 다시 실행하면 됩니다. 1,000행이 되더라도 동일한 규칙으로 처리할 수 있습니다.

대부분 놓치는 부분: 자동화는 ‘버튼 하나’부터 시작해도 됩니다

Apps Script를 처음 접하면 곧바로 시간 기반 트리거를 설정하거나 여러 API를 연결하려는 경우가 있습니다. 하지만 사무 업무에서는 오히려 수동 실행 가능한 작은 자동화가 더 안전한 출발점입니다.

예를 들어 월요일 오전에 원본 데이터를 붙여넣은 다음 Apps Script의 함수를 실행하는 것만으로도 충분합니다.

이 방식의 장점은 오류가 발생했을 때 원인을 찾기 쉽다는 것입니다. 자동화가 안정화된 뒤에야 매주 월요일 오전 자동 실행 같은 트리거를 추가하면 됩니다.

또 하나의 실무적인 방법은 스프레드시트에 버튼을 만들어 함수와 연결하는 것입니다. 사용자는 코드를 다시 볼 필요 없이 “주간 매출 집계” 버튼만 누르면 됩니다.

자동 집계된 데이터를 확인하며 업무 보고서를 작성하는 사무직 근무자

실제 업무에서는 무엇부터 자동화해야 할까?

모든 엑셀 작업을 자동화하려고 하면 오히려 시간이 오래 걸립니다. 다음 조건에 해당하는 업무부터 찾는 것이 좋습니다.

업무 자동화 적합도 이유
매주 같은 표 정리 높음 처리 규칙이 반복됨
담당자별 데이터 분류 높음 조건이 명확함
월별 합계 계산 높음 반복 계산 가능
정해진 형식의 보고서 생성 높음 출력 구조를 고정할 수 있음
사람의 주관적 판단이 필요한 업무 낮음 자동화 규칙 정의가 어려움

특히 “매번 복사 → 필터 → 합계 → 붙여넣기”가 반복되는 업무라면 자동화 후보로 볼 만합니다.

AI를 같이 사용하면 코드 작성 부담도 줄일 수 있습니다

비개발 직장인이 Apps Script를 시작할 때 가장 어려운 부분은 코드를 직접 작성하는 것입니다. 이때 ChatGPT 같은 AI에게 업무 규칙을 먼저 설명하고 스크립트 초 (자세히 보기) (자세히 보기)안을 만들도록 요청할 수 있습니다.

예를 들어 다음과 같이 입력합니다.

Google 스프레드시트에 ‘원본’ 시트가 있습니다.
A열은 날짜, B열은 담당자, C열은 상품명, D열은 수량, E열은 매출입니다.
담당자별 매출 합계를 계산해서 ‘담당자 요약’ 시트에 A열 담당자, B열 총매출 형태로 작성하는 Google Apps Script를 만들어 주세요.
첫 행은 헤더이므로 제외하고, 빈 매출값은 0으로 처리해 주세요.

이렇게 시트 이름, 열 구조, 결과 위치, 예외 처리까지 구체적으로 알려주는 것이 중요합니다.

단순히 “엑셀 업무 자동화 코드를 만들어 줘”라고 요청하는 것보다 실제 실행 가능성이 훨씬 높아집니다.

자동화하기 전에 반드시 확인할 보안 기준

회사 데이터를 자동화할 때는 편리함보다 먼저 데이터 취급 범위를 확인해야 합니다.

1. 개인정보를 그대로 넣지 않습니다

고객 이름, 전화번호, 이메일, 주민등록번호, 계좌번호 같은 개인정보가 포함된 데이터를 AI에게 그대로 전달하지 않는 것이 안전합니다. 테스트가 필요하다면 가상의 이름과 숫자로 구조만 재현합니다.

2. 사내 규정을 먼저 확인합니다

회사마다 외부 AI 사용, Google Workspace 사용, 데이터 반출에 대한 규정이 다릅니다. 특히 고객정보나 영업정보가 들어간 시트라면 개인 판단으로 외부 서비스에 복사하지 않는 것이 좋습니다.

3. 자동화 코드에도 최소 권한 원칙을 적용합니다

스크립트가 필요한 시트만 읽고 쓰도록 설계하는 것이 좋습니다. 처음부터 모든 파일이나 모든 드라이브에 접근하도록 권한을 넓히지 않는 편이 안전합니다.

4. 원본 데이터를 바로 덮어쓰지 않습니다

처음에는 원본 시트를 읽기 전용처럼 취급하고, 결과는 별도의 ‘요약’ 시트에 생성하는 방식을 권합니다. 자동화 오류가 발생해도 원본 데이터를 복구하기 쉽기 때문입니다.

자동화 효과는 ‘몇 시간 절약’보다 작업 횟수로 계산합니다

예를 들어 매주 30분씩 판매 데이터를 정리한다고 가정해 보겠습니다.

항목 수작업 자동화 후
데이터 정리 15분 1~2분
담당자별 집계 10분 수초~1분
보고용 표 작성 5분 자동 생성
주간 작업량 약 30분 약 2~3분

위 수치는 특정 환경에서의 실측 결과가 아니라 효과를 계산하기 위한 예시입니다. 실제 절감 시간은 데이터 크기와 기존 업무 방식에 따라 달라집니다.

하지만 계산 방법은 간단합니다.

주간 절감 시간 × 연간 작업 횟수 = 연간 절감 시간

작업 자체가 2분밖에 걸리지 않는다면 자동화할 이유가 없을 수도 있습니다. 반대로 매주 1시간 이상 반복되는 작업이라면 작은 스크립트 하나를 만들어도 투자 가치가 생깁니다.

처음 자동화할 때는 이 순서로 진행하세요

  1. 반복 업무 하나를 고릅니다. 매주 같은 방식으로 처리하는 표가 가장 좋습니다.
  2. 입력과 결과를 한 문장으로 정의합니다. “원본 데이터를 읽어 담당자별 매출을 만든다”처럼 작성합니다.
  3. 원본 시트와 결과 시트를 분리합니다. 처음부터 원본을 수정하지 않습니다.
  4. 데이터 읽기 → 계산 → 결과 쓰기 세 단계로 스크립트를 나눕니다.
  5. 작은 데이터로 먼저 실행합니다. 실제 업무 데이터 전체를 넣기 전에 테스트용 데이터를 사용합니다.
  6. 오류가 없는지 확인한 뒤 버튼이나 트리거를 추가합니다.

이렇게 하면 Google Apps Script를 어려운 개발 도구로 접근하지 않고 반복되는 사무 작업을 정해진 규칙대로 대신 실행하는 도구로 사용할 수 있습니다.

FAQ

Q1. 일반 Microsoft Excel에서도 Google Apps Script를 사용할 수 있나요?

직접적인 용도는 아닙니다. Google Apps Script는 Google 스프레드시트와 Google Workspace 자동화에 적합합니다. 실제 업무 파일이 Microsoft Excel 중심이라면 Office Scripts나 VBA 등 다른 자동화 도구를 검토하는 것이 맞습니다. 다만 Excel 파일을 Google 스프레드시트에서 열어 사용하는 업무 환경이라면 Apps Script를 활용할 수 있습니다.

Q2. 코딩을 전혀 몰라도 사용할 수 있나요?

간단한 데이터 정리 업무부터 시작한다면 가능합니다. 특히 시트 이름과 열 구조, 원하는 결과를 정확히 정의한 뒤 AI에게 Apps Script 초안을 요청하면 진입 장벽을 낮출 수 있습니다. 다만 AI가 만든 코드를 그대로 회사 업무에 적용하기보다는 테스트용 데이터로 먼저 결과를 확인해야 합니다.

Q3. 회사 고객정보를 넣은 시트를 자동화해도 되나요?

회사 규정을 먼저 확인해야 합니다. Apps Script 자체의 사용 가능 여부와 별개로 고객정보, 개인정보, 영업기밀을 외부 AI에 입력하는 행위가 허용되는지는 회사 정책에 따라 달라집니다. AI에게 코드를 요청할 때도 실제 개인정보 대신 가상의 데이터로 열 구조와 처리 규칙만 설명하는 방법이 안전합니다.

정리하면, 자동화의 출발점은 복잡한 코드를 배우는 것이 아닙니다. 매주 반복하는 업무를 “무엇을 입력하고 → 어떤 규칙으로 처리하고 → 어떤 결과를 만들 것인지”로 쪼개는 것부터 시작하면 됩니다.

Google 스프레드시트를 사용하고 있다면 Apps Script로 작은 작업 하나를 먼저 줄여 보세요. 원본 데이터를 건드리지 않고 결과 시트를 별도로 만드는 방식으로 시작하면 테스트와 오류 확인도 훨씬 수월합니다.

실행 가능한 전체 코드로 통합해줘
코드 실행 절차를 화면처럼 보강해줘