단순 반복작업에 시간을 낭비하고 있다면, 구글 스프레드시트의 자동화 기능을 활용해보자. 특히 Google Apps Script를 활용하면 엑셀로는 불가능한 수준의 자동화가 가능하다. 이번 글에서는 실무에서 바로 활용 가능한 자동화 예제를 중심으로 누구나 따라할 수 있는 튜토리얼 형식으로 설명한다. 내용은 2025년 7월 기준 구글 워크스페이스 및 Google Apps Script 최신 버전 환경을 기준으로 구성했다.
예제 1. 특정 조건 만족 시 자동 이메일 발송
이 예제는 스프레드시트 내 특정 셀의 값이 조건을 만족할 경우, 등록된 이메일로 자동으로 알림을 발송하는 기능이다. 주로 재고 부족 알림, 미결제 안내, 신청서 접수 등에서 활용된다.
1. 기본 구조 준비
- A열: 이름
- B열: 이메일 주소
- C열: 상태 (예: "미결제", "완료")
2. 스크립트 편집기 열기
도구 > 확장 프로그램 > Apps Script 메뉴 클릭 후 새 프로젝트 생성
3. 코드 입력 예제
function sendEmailAlert() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("시트1");
const data = sheet.getDataRange().getValues();
for (let i = 1; i < data.length; i++) {
const name = data[i][0];
const email = data[i][1];
const status = data[i][2];
if (status === "미결제") {
MailApp.sendEmail({
to: email,
subject: "결제 알림",
body: `${name}님, 아직 결제가 완료되지 않았습니다. 빠른 확인 바랍니다.`
});
}
}
}
4. 실행 방법
스크립트 실행 후 > 트리거 설정 > 시간 기반 트리거 설정 (예: 매일 오전 9시) 이렇게 설정하면 매일 자동으로 상태를 확인하고 조건이 맞는 사람에게 이메일이 발송된다.
예제 2. 자동 날짜 입력 (입력 시점 기록)
양식 응답이나 특정 셀에 값이 입력될 때, 자동으로 옆 셀에 날짜가 기록되도록 설정할 수 있다. 예를 들어 A열에 작업내용이 입력되면 B열에 날짜가 자동 기록되는 구조다.
코드 예제
function onEdit(e) {
const sheet = e.source.getActiveSheet();
const range = e.range;
if (range.getColumn() === 1 && range.getValue() !== "") {
sheet.getRange(range.getRow(), 2).setValue(new Date());
}
}
해당 코드를 사용하면 매번 날짜를 직접 입력할 필요 없이, 값이 입력되면 실시간으로 입력 시간 기준 날짜가 기록된다.
예제 3. 조건부 색상 자동 변경 (상태 구분)
Google Apps Script를 사용하지 않고도, 조건부 서식을 통해 상태별로 셀 색상을 자동으로 변경할 수 있다.
- C열에 “완료” → 녹색
- C열에 “미결제” → 빨간색
설정 방법
- C열 전체 선택
- 서식 > 조건부 서식 메뉴 클릭
- 텍스트가 “미결제”일 때 → 배경 빨간색 설정
- 텍스트가 “완료”일 때 → 배경 녹색 설정
이 기능은 시각적으로 데이터를 빠르게 구분할 수 있어 보고서, 신청자 목록 관리, 진행 현황표 등에 활용도가 높다.
예제 4. 자동 요약 시트 생성
‘시트1’에 있는 데이터를 바탕으로 자동으로 요약 통계 시트를 생성하는 것도 가능하다. 예를 들어 상태값에 따른 개수 요약 테이블을 생성할 수 있다.
예제 코드
function summarizeStatus() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("시트1");
const data = sheet.getRange(2, 3, sheet.getLastRow()-1, 1).getValues(); // C열
let summary = {};
data.forEach(([status]) => {
if (status) {
summary[status] = (summary[status] || 0) + 1;
}
});
const summarySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("요약") ||
SpreadsheetApp.getActiveSpreadsheet().insertSheet("요약");
summarySheet.clear();
summarySheet.getRange(1,1).setValue("상태");
summarySheet.getRange(1,2).setValue("건수");
let row = 2;
for (let status in summary) {
summarySheet.getRange(row,1).setValue(status);
summarySheet.getRange(row,2).setValue(summary[status]);
row++;
}
}
매번 수동으로 정리하지 않고, 스크립트 실행만으로도 실시간 데이터 요약이 가능하다.
활용 팁 및 주의사항
- 스크립트 실행 시, 구글 계정 권한 승인 절차 필요
- MailApp 등 외부 연동 기능은 Google Workspace 계정일수록 안정적
- 트리거 설정 후에는 주기적으로 동작 여부 확인 필요
- Google Sheets가 아닌 Excel에서는 작동하지 않음
또한 일부 기능은 2025년 이후 변경될 가능성이 있으며, 구글의 API 정책이나 보안 정책에 따라 제한될 수도 있다. 정확한 변경 일정은 현재까지 확인된 바 없음.
맺음말
구글 스프레드시트 자동화는 단순 반복 업무를 줄이는 가장 강력한 방법 중 하나다. 초기 설정은 어렵게 느껴질 수 있지만, 기본 예제를 따라 해보면서 익히면 누구나 자신만의 자동화 시스템을 구축할 수 있다.
업무 속도를 높이고, 실수를 줄이며, 팀 협업까지 효율적으로 만들 수 있는 이 강력한 기능을 지금부터 하나씩 익혀보자.