[카테고리:] 실무 자동화

  • Google Sheets와 AI로 반복 업무를 10분 만에 자동화하는 실전 방법

    Google Sheets와 AI로 반복 업무를 10분 만에 자동화하는 실전 방법

    매일 30분 걸리던 정리 업무, AI와 스프레드시트로 바꾸면?

    월요일 아침마다 비슷한 일을 반복하는 직장인이 많습니다.

    – 거래처에서 받은 주문 내역 복사
    – 제품명을 규격별로 정리
    – 수량 합계 계산
    – 비고 작성 후 보고서 붙여넣기

    문제는 어려운 작업이 아니라 **같은 작업을 계속 반복한다는 점**입니다.

    이번 글에서는 Google Sheets와 ChatGPT만으로 반복 업무를 약 1 ( ( ( ( (자세히 보기)자세히 보기)자세히 보기)자세히 보기)자세히 보기)0분 안에 끝내는 실제 방법을 보여드립니다. 별도의 프로그래밍 없이, 입력부터 결과까지 그대로 따라 할 수 있도록 구성했습니다.


    오늘 자동화할 실제 업무 예시

    제조·영업·구매 부서에서 흔히 받는 주문 데이터를 예로 사용하겠습니다.

    ① 거래처에서 받은 원본 데이터

    거래처 제품명 수량
    한빛 스펀지 5T 94×320 120
    대성 SPONGE-5MM-94-320 80
    미래 스폰지 5mm 94 320 150

    겉으로는 서로 다른 제품처럼 보이지만 실제로는 모두 같은 규격입니다.

    보통은 사람이 하나씩 수정하지만, AI에게 기준을 알려주면 몇 초 만에 통일됩니다.


    AI가 데이터를 정리하는 자동화 흐름 일러스트

    1단계. ChatGPT에게 정리 기준 먼저 알려주기

    많은 분들이 데이터를 붙여넣고 “정리해줘”만 입력합니다.

    더 정확한 방법은 **정리 규칙을 먼저 주는 것**입니다.

    ChatGPT 입력

    다음 제품명은 같은 규격이면 하나의 표준명으로 통일해줘.

    표준 형식: 스펀지 5T 94×320

    결과는
    거래처 / 표준제품명 / 수량 형태의 표로 만들어줘.

    원본 데이터를 바로 아래에 붙여넣습니다.

    AI 결과

    거래처 표준제품명 수량
    한빛 스펀지 5T 94×320 120
    대성 스펀지 5T 94×320 80
    미래 스펀지 5T 94×320 150

    **핵심은 제품명이 아니라 ‘규칙’을 먼저 알려주는 것**입니다. 이 한 단계만 추가해도 오탈자와 표기 방식이 크게 줄어듭니다.


    2단계. Google Sheets에 붙여넣으면 자동 계산

    정리된 표를 Google Sheets에 붙여넣습니다.

    이제 합계는 함수 하나면 끝납니다.

    사용 함수

    =QUERY(A:C,”select B,sum(C) group by B label sum(C) ‘총수량’”)

    자동 결과

    제품 총수량
    스펀지 5T 94×320 350

    거래처가 30곳이든 300곳이든 같은 방식으로 집계됩니다.

    별도의 피벗테이블을 만들지 않아도 되고, 원본만 바꾸면 결과도 함께 갱신됩니다.


    구글 스프레드시트에서 보고서를 작성하는 업무 장면

    3단계. AI에게 보고서 문장까지 작성시키기

    숫자를 계산한 뒤 보고서를 쓰는 시간이 의외로 오래 걸립니다.

    이번에는 집계표를 그대로 ChatGPT에 넣어보겠습니다.

    입력

    다음 집계표를 바탕으로 팀장 보고용 3줄 요약을 작성해줘.

    제품: 스펀지 5T 94×320

    총수량: 350

    거래처: 3곳

    결과

    – 금일 스펀지 5T 94×320 주문은 총 350개입니다.
    – 주문은 3개 거래처에서 접수되었습니다.
    – 동일 규격으로 통합되어 생산 계획 수립이 가능합니다.

    실무에서는 이 정도 길이가 가장 활용도가 높습니다. 메신저, 이메일, 업무일지 어디에도 그대로 사용할 수 있습니다.


    가장 많이 하는 반복 업무 3가지 응용

    업무 AI 입력 한 줄
    발주 정리 동일 품목은 표준명으로 통일하고 수량 합산
    영업 리스트 회사명 중복 제거 후 지역별 분류
    회의록 핵심 결정사항과 담당자만 표로 정리

    포인트는 **AI에게 계산을 맡기는 것이 아니라 ‘정리 기준’을 맡기는 것**입니다.

    계산은 스프레드시트가, 문장과 정리는 AI가 담당하면 가장 안정적입니다.


    대부분 놓치는 한 단계: 프롬프트를 시트에 저장하기

    매번 같은 문장을 입력할 필요는 없습니다.

    Google Sheets에 ‘프롬프트’ 탭 하나만 만들어 두면 됩니다.

    예를 들면 아래처럼 관리합니다.

    셀 내용
    A1 표준 제품명으로 통일
    A2 거래처/제품/수량 표 생성
    A3 팀장 보고 3줄 요약 작성

    필요할 때 복사해서 ChatGPT에 붙여넣기만 하면 됩니다.

    이 방식의 장점은 팀원 모두가 **같은 기준**으로 결과를 만들 수 있다는 점입니다. 사람이 바뀌어도 보고서 형식이 일정하게 유지됩니다.


    개인정보와 사내 데이터는 이렇게 처리하세요

    AI를 업무에 사용할 때 가장 중요한 것은 정확도보다 **정보 보호**입니다.

    안전하게 사용하는 방법은 어렵지 않습니다.

    • 고객명 대신 거래처 A·B·C로 변경
    • 전화번호·이메일·주소 삭제
    • 주민등록번호·계좌번호는 입력 금지
    • 사내 기밀 단가는 비율 또는 범위로 변경

    예시

    원본 AI 입력용
    ㈜한빛산업 거래처 A
    010-1234-5678 삭제
    단가 1,285원 단가 A

    이 정도만 지켜도 대부분의 일반적인 문서 정리 작업은 훨씬 안전하게 활용할 수 있습니다.


    10분 자동화 루틴 정리

    순서 소요 시간
    원본 붙여넣기 2분
    AI 표준화 2분
    Google Sheets 집계 3분
    보고 문장 생성 3분

    총 10분 정도면 반복적으로 하던 주문 정리와 보고 자료 작성까지 마무리됩니다.

    핵심은 복잡한 자동화 프로그램을 만드는 것이 아니라, **AI는 정리와 문장**, **Google Sheets는 계산과 누적 관리**라는 역할 분담을 만드는 것입니다. 이 방식은 구매, 생산관리, 영업, 사무직 대부분의 반복 업무에 그대로 응용할 수 있습니다.


    자주 묻는 질문 (FAQ)

    Q1. 엑셀만 사용하는데 Google Sheets여야 하나요?

    아닙니다. 대부분의 예시는 엑셀에서도 가능합니다. 다만 Google Sheets는 공유와 실시간 협업이 편리해서 팀 업무에 조금 더 유리합니다.

    Q2. ChatGPT에 회사 데이터를 넣어도 괜찮을까요?

    고객 정보, 개인정보, 기밀 단가 등은 제거하거나 익명화한 뒤 사용하는 것이 좋습니다. 회사의 보안 규정이 있다면 그 기준을 우선 따라야 합니다.

    Q3. 매일 같은 양식을 자동으로 만들 수 있나요?

    가능합니다. 스프레드시트에 템플릿과 프롬프트를 함께 저장해 두면 원본 데이터만 붙여넣어도 같은 형식의 집계표와 보고 문장을 빠르게 만들 수 있습니다.


  • Google Apps Script로 엑셀 반복 업무 자동화하기: 비개발자도 10분 만에 시작하는 방법

    Google Apps Script로 엑셀 반복 업무 자동화하기: 비개발자도 10분 만에 시작하는 방법

    엑셀에서 매일 하던 일을 10분 만에 자동화하는 방법

    출근해서 엑셀 파일을 열고, 어제 받은 데이터를 복사하고, 필요한 열을 정리한 다음 담당자에게 다시 보내는 업무가 있습니다. 한 번 하는 데는 몇 분밖에 걸리지 않지만, 같은 작업을 매일 반복하면 이야기가 달라집니다.

    이런 반복 작업은 Google Apps Script(GAS) ( ( (자세히 보기)자세히 보기)자세히 보기)로 상당 부분 자동화할 수 있습니다. 특히 코드를 처음 접하는 직장인이라도 복잡한 프로그램을 새로 설치할 필요 없이 Google 스프레드시트에 연결된 스크립트 편집기에서 바로 실행할 수 있다는 점이 장점입니다.

    이번 글에서는 개발 지식보다는 실제 업무 상황에 맞춰 보겠습니다. 예제로 거래처별 주문 데이터를 정리하고, 처리되지 않은 주문만 별도 시트로 모으는 작업을 자동화해 보겠습니다.

    먼저 자동화할 업무를 하나로 좁혀보세요

    처음부터 복잡한 업무 전체를 자동화하려고 하면 오히려 어렵습니다. 다음처럼 사람이 반복해서 하는 동작을 찾아보는 것이 좋습니다.

    • 새로운 데이터를 복사해서 붙여넣기
    • 특정 조건의 행만 찾아 별도 시트에 복사하기
    • 빈칸이나 특정 문구를 확인하기
    • 날짜 형식을 통일하기
    • 거래처별 데이터를 분류하기
    • 매일 같은 형식의 보고용 데이터를 만들기

    예를 들어 원본 시트가 다음과 같다고 가정하겠습니다.

    주문일 거래처 품목 수량 처리상태
    2026-08-11 A거래처 제품A 100 완료
    2026-08-11 B거래처 제품B 50 대기
    2026-08-11 C거래처 제품C 80 완료
    2026-08-11 D거래처 제품D 120 대기

    여기서 사람이 매일 하는 일은 간단합니다.

    ‘처리상태가 대기인 행만 찾아서 대기목록 시트로 복사한다.’

    바로 이런 작업이 첫 번째 자동화 대상으로 적합합니다.

    1단계. Google 스프레드시트 준비하기

    Google 스프레드시트를 새로 만들고 첫 번째 시트의 이름을 주문현황으로 지정합니다.

    첫 번째 행에는 반드시 열 제목을 넣습니다.

    주문일 | 거래처 | 품목 | 수량 | 처리상태

    그리고 두 번째 시트를 만들고 이름을 대기목록으로 지정합니다.

    이제 사람이 하던 작업을 코드로 옮길 준비가 끝났습니다.

    2단계. Apps Script 편집기 열기

    Google 스프레드시트 상단 메뉴에서 확장 프로그램 → Apps Script를 선택합니다.

    새로운 스크립트 편집 화면이 열리면 기존에 들어 있는 기본 코드를 지우고 다음 코드를 입력합니다.

    실제로 사용할 코드

    function makeWaitingList() { const spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); const sourceSheet = spreadsheet.getSheetByName("주문현황"); const targetSheet = spreadsheet.getSheetByName("대기목록"); const data = sourceSheet.getDataRange().getValues(); // 기존 대기목록 삭제 targetSheet.clearContents(); // 제목 행 복사 targetSheet.getRange(1, 1, 1, data[0].length).setValues([data[0]]); // "대기" 상태인 행만 추출 const waitingRows = data.slice(1).filter(row => row[4] === "대기"); if (waitingRows.length > 0) { targetSheet .getRange(2, 1, waitingRows.length, waitingRows[0].length) .setValues(waitingRows); } }

    코드를 처음 보면 낯설 수 있지만, 지금 단계에서는 모든 문법을 이해할 필요가 없습니다.

    이 코드가 하는 일은 네 가지입니다.

    1. 주문현황 시트의 데이터를 가져옵니다.
    2. 대기목록 시트를 비웁니다.
    3. 처리상태가 대기인 행만 찾습니다.
    4. 찾은 행을 대기목록에 다시 작성합니다.

    3단계. 처음 한 번 실행해보기

    스크립트 편집기 위쪽의 함수 선택 메뉴에서 makeWaitingList를 선택한 뒤 실행 버튼을 누릅니다.

    처음 실행하면 Google 계정 권한을 요청하는 화면이 나타날 수 있습니다. 스크립트가 해당 스프레드시트의 데이터를 읽고 수정하기 위해 필요한 절차입니다.

    권한 승인 후 다시 스프레드시트로 돌아가 대기목록을 확인합니다.

    앞의 원본 데이터라면 결과는 다음과 같이 만들어집니다.

    주문일 | 거래처 | 품목 | 수량 | 처리상태
    2026-08-11 | B거래처 | 제품B | 50 | 대기
    2026-08-11 | D거래처 | 제품D | 120 | 대기

    여기서 중요한 부분은 단순히 ‘코드가 실행됐다’는 것이 아닙니다. 원본 데이터를 건드리지 않고 필요한 결과를 별도의 시트로 생성했다는 것입니다.

    스프레드시트 데이터가 조건에 따라 자동으로 분류되는 과정

    4단계. 실제 업무에서는 조건을 바꿔 사용합니다

    실제 업무에 적용할 때는 대부분 이 부분을 수정하게 됩니다.

    현재 코드에서는 다음 부분이 조건입니다.

    row[4] === "대기"

    여기서 row[4]는 다섯 번째 열인 처리상태를 의미합니다. 컴퓨터는 첫 번째 열을 0으로 계산하기 때문에 다섯 번째 열은 4가 됩니다.

    예를 들어 수량이 100개 이상인 주문만 따로 모으고 싶다면 조건을 다음처럼 바꿀 수 있습니다.

    const waitingRows = data.slice(1).filter(row => row[3] >= 100);

    수량 열이 네 번째 열이므로 row[3]이 됩니다.

    이처럼 자동화에서 중요한 것은 코드를 많이 작성하는 것이 아니라 ‘어떤 조건의 데이터를 어떤 결과로 만들 것인가’를 먼저 정하는 것입니다.

    5단계. 사람이 하던 작업과 비교해보기

    예를 들어 매일 200~300개의 주문 데이터를 확인한다고 가정해 보겠습니다.

    작업 수동 처리 스크립트 사용
    원본 데이터 확인 수동 자동
    조건에 맞는 행 찾기 직접 필터링 자동
    결과 복사 복사·붙여넣기 자동
    반복 실행 매번 작업 함수 실행

    한 번의 작업이 5분 걸린다고 해도 월 20일이면 약 100분입니다. 여기에 데이터를 확인하거나 잘못 복사한 내용을 다시 수정하는 시간이 추가될 수 있습니다.

    다만 자동화의 시간 절감 효과를 모든 업무에 동일하게 적용할 수 있는 것은 아닙니다. 데이터의 양, 조건의 복잡성, 오류 검수 방식에 따라 차이가 큽니다. 따라서 처음에는 실제 업무에서 한 번 작업하는 데 걸리는 시간을 측정한 뒤 자동화 후 시간을 비교하는 것이 가장 정확합니다.

    대부분 놓치는 부분: 자동화보다 먼저 ‘실패 조건’을 정하세요

    처음 Apps Script를 사용하는 경우 ‘정상적으로 실행되는 코드’를 만드는 데 집중하기 쉽습니다.

    하지만 업무 자동화에서는 잘못된 데이터가 들어왔을 때 어떻게 할 것인가가 더 중요합니다.

    예를 들어 처리상태에 사람이 실수로 ‘대기 ’처럼 공백을 넣으면 현재 코드는 정확히 일치하지 않기 때문에 해당 행을 찾지 못합니다.

    따라서 실제 업무에 적용하기 전에는 다음과 같은 예외 상황을 테스트하는 것이 좋습니다.

    • 데이터가 한 건도 없는 경우
    • 처리상태가 비어 있는 경우
    • 같은 데이터가 중복된 경우
    • 열의 순서가 변경된 경우
    • 숫자가 문자로 입력된 경우
    • 예상하지 못한 값이 입력된 경우

    특히 열 위치를 기준으로 작성한 코드는 열 순서가 바뀌면 오작동할 수 있습니다. 업무용으로 장기간 사용할 계획이라면 단순히 ‘네 번째 열’이라고 가정하기보다 열 제목을 찾아 해당 열을 처리하도록 개선하는 방법이 더 안전합니다.

    직장인이 스프레드시트 데이터를 확인하고 자동화 결과를 검토하는 모습

    매일 자동으로 실행하려면?

    버튼을 누르는 것조차 반복 작업이라면 Apps Script의 트리거를 활용할 수 있습니다.

    예를 들어 매일 오전 9시에 특정 함수를 실행하도록 설정하면 출근 후 반복적으로 처리하던 작업을 자동 실행할 수 있습니다.

    Apps Script 편집기의 왼쪽 메뉴에서 트리거를 선택하고 새 트리거를 추가한 뒤 실행할 함수와 실행 조건을 지정합니다.

    다만 업무용 자동화에서는 처음부터 예약 실행을 설정하는 것보다 수동 실행 → 결과 검증 → 예외 상황 테스트 → 예약 실행 순서로 진행하는 것을 권장합니다.

    자동화가 잘못된 결과를 만들어내는 상황에서는 ‘자동으로 실행된다’는 사실이 장점이 아니라 위험 요소가 될 수 있기 때문입니다.

    직장인 업무에 적용하기 좋은 자동화 사례

    이번 예제의 구조를 이해했다면 다른 업무에도 응용할 수 있습니다.

    반복 업무 자동화 아이디어
    미처리 주문 확인 상태가 ‘대기’인 행만 추출
    재고 부족 확인 재고가 기준 수량보다 적은 품목 추출
    일일 실적 정리 당일 데이터만 별도 시트에 생성
    거래처별 자료 분류 거래처 조건에 따라 데이터 분리
    보고자료 작성 원본 데이터를 요약표로 변환

    예를 들어 재고 수량이 10개 미만인 제품만 추출하려면 조건을 다음처럼 바꾸는 식입니다.

    const lowStockRows = data.slice(1).filter(row => row[3] < 10);

    이때도 중요한 것은 코드 자체가 아니라 업무 담당자가 평소 어떤 기준으로 데이터를 판단하고 있는지를 정확하게 코드로 옮기는 것입니다.

    개인정보와 회사 데이터는 반드시 확인하세요

    Google Apps Script는 편리하지만 회사 업무 데이터를 다룰 때는 별도의 주의가 필요합니다.

    • 고객 이름, 전화번호, 주소 등 개인정보를 테스트 데이터로 그대로 사용하지 않습니다.
    • 회사에서 Google Workspace 또는 외부 서비스 사용을 제한하고 있다면 사내 규정을 먼저 확인합니다.
    • 스크립트에 비밀번호, API 키, 인증 토큰을 그대로 적어두지 않습니다.
    • 자동화 결과가 인사·급여·계약·거래 등 중요한 업무에 영향을 준다면 실행 결과를 검수하는 절차를 둡니다.
    • 공유 스프레드시트에서는 누가 스크립트를 실행하고 어떤 권한을 가지는지 확인합니다.

    특히 실제 고객 데이터나 사내 민감정보를 가지고 자동화를 처음 테스트하는 것은 피하는 편이 좋습니다. 처음에는 가상의 이름과 숫자로 복사본을 만든 뒤 테스트하는 것이 안전합니다.

    FAQ

    Q1. 엑셀 파일도 Apps Script로 자동화할 수 있나요?

    Apps Script는 기본적으로 Google 서비스와 Google 스프레드시트 환경을 중심으로 동작합니다. 기존 Microsoft Excel 파일을 그대로 대상으로 삼는 것과는 차이가 있습니다. Excel 중심 업무라면 먼저 파일을 Google 스프레드시트로 가져와 사용할 수 있는지, 또는 Microsoft 365 환경에서 Power Automate나 Office Scripts가 더 적합한지 검토하는 것이 좋습니다.

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

    간단한 데이터 필터링이나 복사 정도는 예제 코드를 수정하면서 시작할 수 있습니다. 다만 업무가 복잡해질수록 오류 처리, 권한, 데이터 구조 등에 대한 이해가 필요합니다. 처음에는 한 가지 반복 작업만 자동화하는 것이 좋습니다.

    Q3. 회사 데이터를 Google 스프레드시트에 넣어도 되나요?

    회사 규정에 따라 달라집니다. 회사에서 승인한 Google Workspace 환경인지, 외부 클라우드 사용이 허용되는지, 개인정보나 기밀정보가 포함되어 있는지 확인해야 합니다. 규정이 불분명하다면 실제 데이터를 사용하지 말고 비식별화한 테스트 데이터로 먼저 자동화 로직을 검증하는 것이 안전합니다.

    마무리: 자동화의 시작은 복잡한 프로그램이 아닙니다

    Google Apps Script를 활용한 업무 자동화는 거창한 프로그램을 만드는 작업부터 시작할 필요가 없습니다.

    먼저 ‘매일 반복하는 작업 하나’를 찾고 → 입력 데이터와 결과를 구분하고 → 조건을 코드로 옮기고 → 복사본에서 테스트한 뒤 → 필요할 때 예약 실행하는 순서로 접근하면 됩니다.

    오늘 예제처럼 ‘대기 상태인 주문만 별도 목록으로 만드는 작업’부터 시작해 보세요. 그다음에는 재고 부족 목록, 일일 실적, 거래처별 자료처럼 반복되는 업무를 하나씩 연결할 수 있습니다.

    특히 자동화의 목표를 ‘코드를 만드는 것’으로 잡지 않는 것이 좋습니다. 사람이 매일 확인하고 복사하던 판단과 작업을 어디까지 안전하게 줄일 수 있는가를 기준으로 접근하면 훨씬 실용적인 자동화가 됩니다.


  • 직장인을 위한 엑셀과 AI 반복 업무 자동화: ChatGPT로 매크로까지 쉽게 만드는 방법

    직장인을 위한 엑셀과 AI 반복 업무 자동화: ChatGPT로 매크로까지 쉽게 만드는 방법


    매일 반복하는 엑셀 작업, 직접 하지 않아도 되는 시대입니다

    매일 같은 형식의 데이터를 정리하고, 불필요한 행을 삭제하고, 제목에 색을 입히고, 열 너비를 맞추는 작업을 반복하는 직장인이 많습니다.

    작업 하나는 5분 정도밖에 걸리지 않아도 하루에 여러 번 반복하면 한 달 동안 상당한 시간을 소비하게 됩니다.

    이럴 때 가장 먼저 떠오르는 기능이 엑셀 매크로입니다. 하지만 많은 직장인은 VBA 코드가 어렵다고 느껴 시작조차 하지 못합니다.

    최근에는 ChatGPT를 활용하면 VBA를 직접 공부하지 않아도 원하는 매크 (자세히 보기) (자세히 보기) (자세히 보기) (자세히 보기)로를 상당 부분 만들 수 있습니다. 중요한 것은 AI에게 무엇을 어떻게 요청하느냐입니다.

    이번 글에서는 실제 업무에서 자주 사용하는 예제를 기준으로 ChatGPT에게 매크로를 요청하는 방법부터 엑셀에서 실행하는 과정까지 순서대로 살펴보겠습니다.


    실제 업무 장면으로 알아보기

    아래와 같은 판매 데이터를 매일 받아 정리한다고 가정해 보겠습니다.

    거래처 날짜 금액 비고
    A회사 2026-08-07 150000
    2026-08-07 230000 확인
    B회사 2026-08-07 95000

    매일 해야 하는 작업은 다음과 같습니다.

    • 빈 행 삭제
    • 첫 번째 행 굵게 표시
    • 제목 행 배경색 적용
    • 모든 열 너비 자동 맞춤
    • 금액에 천 단위 구분기호 적용

    사람이 하면 3~5분 정도 걸리지만, 매크로는 몇 초면 끝납니다.

    반복 업무가 자동화되는 흐름을 나타낸 일러스트

    ChatGPT에 이렇게 요청하면 됩니다

    많은 사람이 “매크로 만들어 줘” 정도로만 요청합니다. 하지만 조금만 구체적으로 작성하면 결과가 훨씬 좋아집니다.

    입력

    엑셀 VBA 매크로를 작성해 주세요.

    • 사용 중인 시트 전체를 대상으로 작업
    • 빈 행 삭제
    • 첫 번째 행을 굵게 표시
    • 첫 번째 행 배경색을 연한 파란색으로 변경
    • 모든 열 너비 자동 맞춤
    • C열 금액은 천 단위 구분기호 적용
    • 엑셀 365에서 실행 가능하도록 작성
    • 주석을 포함해 이해하기 쉽게 작성

    이처럼 작업 순서와 적용 범위를 함께 적어주면 수정할 부분이 크게 줄어듭니다.


    ChatGPT가 만들어 주는 VBA 예시

    아래는 위 요청으로 생성할 수 있는 대표적인 형태의 코드입니다.

     Sub FormatData() Dim ws As Worksheet Dim LastRow As Long Dim i As Long Set ws = ActiveSheet LastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row For i = LastRow To 2 Step -1 If WorksheetFunction.CountA(ws.Rows(i)) = 0 Then ws.Rows(i).Delete End If Next i With ws.Rows(1) .Font.Bold = True .Interior.Color = RGB(221, 235, 247) End With ws.Columns.AutoFit ws.Columns("C").NumberFormat = "#,##0" End Sub 

    코드를 모두 이해하지 못해도 괜찮습니다. 필요한 것은 원하는 작업을 정확하게 설명하는 능력입니다.


    엑셀에서 실행하는 방법

    1. 개발 도구 탭을 활성화합니다.
    2. Visual Basic을 클릭합니다.
    3. 삽입 → 모듈을 선택합니다.
    4. ChatGPT가 작성한 코드를 붙여 넣습니다.
    5. 저장 후 매크로 실행(F5)을 누릅니다.

    처음 한 번만 설정하면 이후에는 같은 작업을 반복해서 사용할 수 있습니다.

    노트북에서 엑셀 매크로를 실행하는 화면

    실행 전과 실행 후 비교

    항목 실행 전 실행 후
    빈 행 여러 개 존재 자동 삭제
    제목 일반 글꼴 굵게 + 배경색 적용
    열 너비 제각각 자동 정렬
    금액 표시 150000 150,000
    작업 시간 약 3~5분 수 초

    단순히 시간을 줄이는 것뿐 아니라, 사람이 직접 작업하면서 발생하기 쉬운 서식 누락이나 선택 실수도 줄일 수 있습니다.


    한 단계 더 활용하는 방법

    많은 사용자가 코드를 한 번 생성한 뒤 그대로 사용합니다. 하지만 실제 업무에서는 한 번 더 검토를 요청하면 품질이 크게 좋아집니다.

    예를 들어 다음과 같이 추가로 질문해 보세요.

    이 코드에서 오류가 발생할 가능성이 있는 부분을 찾아 수정해 주세요.

    실행 속도를 더 빠르게 개선해 주세요.

    주석을 초보자도 이해할 수 있게 다시 작성해 주세요.

    실행 전에 사용자에게 확인 메시지를 띄워 주세요.

    이 과정을 거치면 유지보수하기 쉬운 매크로를 만드는 데 도움이 됩니다.


    회사에서 사용할 때 꼭 확인할 사항

    • 고객 이름, 전화번호, 주민등록번호 등 개인정보는 ChatGPT에 그대로 입력하지 않습니다.
    • 회사 고유의 매출 자료나 계약 정보는 익명화하거나 예시 데이터로 바꾼 뒤 질문합니다.
    • 회사에서 생성형 AI 사용 정책이 있다면 반드시 해당 규정을 확인합니다.
    • 매크로는 실제 파일이 아닌 복사본에서 먼저 실행해 결과를 확인합니다.
    • 매크로 사용이 제한된 조직이라면 IT 부서의 정책을 먼저 확인하는 것이 안전합니다.

    마무리

    엑셀 매크로는 더 이상 개발자만 사용하는 기능이 아닙니다. 반복되는 작업을 정확하게 설명하고 ChatGPT의 도움을 받아 필요한 코드를 생성한 뒤, 테스트를 거쳐 업무에 적용하면 반복 업무를 훨씬 효율적으로 처리할 수 있습니다.

    처음에는 서식 정리처럼 단순한 작업부터 시작해 보세요. 익숙해지면 여러 개의 작업을 하나의 매크로로 연결하거나 버튼 하나로 실행하는 방식까지 확장할 수 있습니다.


    자주 묻는 질문(FAQ)

    Q1. VBA를 전혀 몰라도 ChatGPT로 매크로를 만들 수 있나요?

    가능합니다. 다만 원하는 작업을 순서대로 구체적으로 설명해야 합니다. 생성된 코드는 반드시 테스트 파일에서 먼저 실행해 결과를 확인하는 것이 좋습니다.

    Q2. 회사 데이터를 그대로 ChatGPT에 입력해도 되나요?

    권장하지 않습니다. 개인정보나 영업 정보, 계약 내용 등은 제거하거나 예시 데이터로 바꿔 질문하는 것이 안전합니다. 또한 회사의 생성형 AI 사용 정책을 먼저 확인해야 합니다.

    Q3. 매크로 실행이 안 되는 경우에는 어떻게 해야 하나요?

    먼저 엑셀의 개발 도구 탭과 매크로 실행 설정이 활성화되어 있는지 확인합니다. 이후 오류 메시지를 그대로 ChatGPT에 전달하면 원인 분석과 수정된 코드를 함께 받을 수 있어 문제 해결 속도를 높일 수 있습니다.


  • Zapier로 반복 업무 자동화하기: 이메일 첨부파일 저장부터 알림까지 단계별 설정법

    Zapier로 반복 업무 자동화하기: 이메일 첨부파일 저장부터 알림까지 단계별 설정법

    매일 같은 파일을 내려받고, 옮기고, 알리는 일을 줄여보겠습니다

    업무 자동화라고 하면 먼저 복잡한 프로그램이나 개발 지식부터 떠올리기 쉽습니다. 하지만 직장인이 실제로 반복하는 업무는 대부분 몇 가지 단순한 동작의 조합입니다.

    • 메일을 확인한다.
    • 첨부파일을 내려받는다.
    • 공용 폴더에 저장한다.
    • 담당자에게 도착 사실을 알린다.
    • 처리 여부를 기록한다.

    이 다섯 단계를 매번 사람이 수행하면 한 번에 3분밖에 걸리지 않더라도 하루 10건이면 30분이 필요합니다. 파일명을 잘못 저장하거나 담당자에게 알림을 빼먹는 실수도 생길 수 있습니다.

    이번 글에서는 Zapier를 이용해 다음 흐름을 직접 만들어보겠습니다.

    특정 제목의 이메일 수신 → 첨부파일을 Google Drive에 저장 → Slack으로 담당자에게 알림 (자세히 보기) (자세히 보기)(자세히 보기)

    개발 지식은 필요하지 않습니다. 다만 Gmail, Google Drive, Slack 계정이 준비되어 있어야 합니다. 회사에서 Microsoft Outlook이나 Teams를 사용한다면 같은 구조로 응용할 수 있습니다.

    Zapier 자동화는 ‘시작 조건’과 ‘실행 동작’으로 나뉩니다

    Zapier에서는 하나의 자동화 흐름을 ‘Zap’이라고 부릅니다. Zap은 크게 두 부분으로 구성됩니다.

    구성 의미 이번 예시
    Trigger 자동화를 시작하는 조건 특정 이메일이 도착했을 때
    Action 조건이 충족되면 실행할 작업 첨부파일 저장, Slack 알림 전송

    자동화를 처음 설계할 때는 도구 이름보다 업무 문장을 먼저 적는 편이 좋습니다.

    “거래처에서 ‘월간 실적 자료’라는 제목의 메일이 오면 첨부파일을 월간보고 폴더에 저장하고, 영업관리 채널에 파일 도착 사실을 알린다.”

    이 문장에서 “메일이 오면”이 Trigger이고, “저장하고 알린다”가 Action입니다. 이처럼 기존 업무를 한 문장으로 정리하면 Zapier 설정 화면에서도 무엇을 선택해야 할지 훨씬 명확해집니다.

    이메일 수신부터 파일 저장과 알림까지 이어지는 자동화 흐름

    실전 예시: 이메일 첨부파일을 Google Drive에 자동 저장하기

    1단계: 자동화할 이메일 조건을 먼저 정합니다

    모든 이메일을 자동 처리하면 광고 메일이나 서명 이미지까지 저장될 수 있습니다. 따라서 자동화 전에 처리 대상을 좁혀야 합니다.

    이번 예시에서는 다음 조건을 사용하겠습니다.

    항목 입력 예시
    발신자 report@partner-company.com
    메일 제목 포함 문구 [월간 실적 자료]
    첨부파일 있음
    저장 위치 Google Drive / 업무공유 / 월간실적
    알림 채널 Slack #영업관리

    발신자 주소를 사용할 수 없다면 제목에 반드시 들어가는 문구를 조건으로 설정해도 됩니다. 다만 “보고서”처럼 범위가 넓은 단어보다 “[월간 실적 자료]”처럼 구분이 명확한 문구가 안전합니다.

    2단계: Zapier에서 새 Zap을 만듭니다

    1. Zapier에 로그인합니다.
    2. Create 또는 Create Zap을 선택합니다.
    3. Trigger 앱으로 Gmail을 선택합니다.
    4. Trigger event에서 New Attachment 또는 첨부파일이 포함된 새 메일을 감지하는 항목을 선택합니다.
    5. 업무용 Gmail 계정을 연결합니다.

    계정 연결 과정에서 Zapier가 Gmail 접근 권한을 요청합니다. 이 단계에서는 어떤 계정을 연결하는지 반드시 확인해야 합니다. 개인 계정과 회사 계정을 동시에 사용하는 경우 자동화 대상이 아닌 계정을 잘못 연결하는 일이 자주 발생합니다.

    3단계: Gmail 검색 조건을 입력합니다

    Gmail 검색 조건을 입력할 수 있는 칸이 있다면 다음과 같이 설정할 수 있습니다.

    입력값
    from:report@partner-company.com subject:”[월간 실적 자료]” has:attachment

    각 조건의 의미는 다음과 같습니다.

    • from: 지정한 발신자가 보낸 메일만 선택합니다.
    • subject: 지정한 문구가 제목에 포함된 메일만 선택합니다.
    • has:attachment 첨부파일이 있는 메일만 선택합니다.

    이제 Zapier에서 테스트를 실행합니다. 조건에 맞는 최근 이메일이 검색되면 발신자, 제목, 첨부파일 이름 등의 데이터가 표시됩니다.

    예상 테스트 결과
    발신자: report@partner-company.com
    제목: [월간 실적 자료] 2026년 7월 매출 현황
    첨부파일: sales_report_2026_07.xlsx

    테스트 데이터가 나오지 않는다면 먼저 Gmail에서 동일한 검색어를 직접 입력해보는 것이 좋습니다. Gmail 검색창에서도 결과가 나오지 않으면 Zapier 설정 문제가 아니라 검색 조건이 실제 메일과 맞지 않는 경우가 많습니다.

    4단계: Google Drive 저장 동작을 추가합니다

    1. Action 앱으로 Google Drive를 선택합니다.
    2. Action event에서 Upload File을 선택합니다.
    3. 파일을 저장할 Google Drive 계정을 연결합니다.
    4. Drive와 Folder를 차례로 지정합니다.
    5. File 항목에는 Gmail 단계에서 가져온 첨부파일 데이터를 넣습니다.

    설정값은 다음과 같이 구성할 수 있습니다.

    Zapier 항목 선택값
    Drive My Google Drive 또는 회사 공유 드라이브
    Folder 업무공유 / 월간실적
    File Gmail 단계의 Attachment
    File Name Gmail 단계의 Attachment Filename
    Convert to Document 사용 안 함

    엑셀 파일이나 PDF 원본을 그대로 보관하려면 문서 변환 옵션을 사용하지 않는 편이 안전합니다. 변환 기능을 켜면 파일 형식이나 일부 서식이 달라질 수 있습니다.

    5단계: 파일명을 일정한 형식으로 정리합니다

    첨부파일을 원래 이름 그대로 저장하면 거래처마다 파일명 규칙이 달라 폴더가 금방 어수선해집니다. 여기서 자동화 품질을 한 단계 높일 수 있습니다.

    예를 들어 파일명을 다음 형식으로 통일합니다.

    입력 구성
    메일 수신일 + _월간실적_ + 기존 파일명

    예상 결과
    2026-08-05_월간실적_sales_report_2026_07.xlsx

    Zapier의 날짜 데이터를 사용하거나 Formatter 기능을 추가하면 날짜 형식을 정리할 수 있습니다. 날짜 형식을 지정할 때는 2026-08-05처럼 연도-월-일 순서를 권장합니다. 파일을 이름순으로 정렬해도 날짜순으로 배열되기 때문입니다.

    파일명이 지나치게 길다면 기존 파일명 대신 메일 제목 일부를 사용할 수도 있습니다.

    2026-08-05_7월매출현황.xlsx

    Slack 알림까지 연결해 담당자가 바로 확인하게 만들기

    파일 저장만 자동화하면 담당자는 새 파일이 들어왔는지 따로 확인해야 합니다. 다음 Action으로 Slack 알림을 추가하면 자동화가 실제 업무 흐름까지 이어집니다.

    6단계: Slack 메시지 전송 동작을 추가합니다

    1. Google Drive 단계 아래의 추가 버튼을 선택합니다.
    2. Action 앱으로 Slack을 선택합니다.
    3. Action event에서 Send Channel Message를 선택합니다.
    4. 업무용 Slack 워크스페이스를 연결합니다.
    5. 알림을 보낼 채널을 선택합니다.

    메시지는 단순히 “파일이 도착했습니다”라고 보내기보다 담당자가 추가 검색 없이 내용을 파악할 수 있도록 구성하는 편이 좋습니다.

    메시지 입력 예시
    월간 실적 자료가 도착했습니다.
    – 메일 제목: {{Gmail Subject}}
    – 발신자: {{Gmail From}}
    – 첨부파일: {{Attachment Filename}}
    – 수신 시각: {{Gmail Date}}
    – 저장 폴더: Google Drive / 업무공유 / 월간실적

    Zapier 설정 화면에서는 중괄호를 직접 입력하는 것이 아니라 앞 단계에서 가져온 데이터를 선택해 삽입합니다.

    예상 Slack 메시지
    월간 실적 자료가 도착했습니다.
    – 메일 제목: [월간 실적 자료] 2026년 7월 매출 현황
    – 발신자: report@partner-company.com
    – 첨부파일: sales_report_2026_07.xlsx
    – 수신 시각: 2026-08-05 09:12
    – 저장 폴더: Google Drive / 업무공유 / 월간실적

    공유 채널에서 자동 알림을 확인하며 업무를 진행하는 사무실 구성원

    자동화를 켜기 전에 반드시 테스트해야 할 세 가지 상황

    Zap을 바로 활성화하기보다 실제 업무에서 발생할 수 있는 예외를 먼저 확인해야 합니다.

    첨부파일이 두 개 이상인 경우

    거래처가 엑셀 파일과 PDF 파일을 함께 보내면 Zapier가 파일별로 작업을 실행하거나 첫 번째 파일만 처리할 수 있습니다. 사용 중인 Gmail Trigger의 동작 방식에 따라 결과가 달라질 수 있으므로 테스트 메일에 파일 두 개를 첨부해 확인해야 합니다.

    두 파일이 모두 저장되어야 한다면 각각 별도 항목으로 처리되는지 확인합니다. 첫 번째 파일만 저장된다면 반복 처리 기능을 추가하거나 메일 첨부파일 구조를 조정해야 합니다.

    같은 메일이 다시 전달된 경우

    담당자가 메일을 전달하면 동일한 파일이 중복 저장될 수 있습니다. 이를 줄이려면 발신자 조건을 원본 거래처 주소로 제한하고, 전달 메일을 뜻하는 “FW:” 또는 “Fwd:”가 제목에 포함된 경우 제외하는 필터를 추가할 수 있습니다.

    파일명이 같은 경우

    매달 “report.xlsx”라는 동일한 이름으로 파일이 도착하면 기존 파일을 덮어쓰거나 이름 뒤에 번호가 붙을 수 있습니다. 수신일이나 메일 제목을 파일명 앞에 붙이면 이 문제를 줄일 수 있습니다.

    대부분 놓치는 부분: 실패했을 때의 처리 방법도 자동화에 포함합니다

    자동화는 성공 흐름만 만드는 것으로 끝나지 않습니다. 계정 연결이 끊기거나 저장 폴더가 삭제되면 Zap이 실행되지 않을 수 있습니다.

    따라서 다음 항목도 함께 정해두는 것이 좋습니다.

    • Zapier 오류 알림을 받을 이메일 주소
    • 실패 내역을 확인할 담당자
    • 자동화가 중단됐을 때 사용할 수동 처리 절차
    • 월 1회 정상 작동 여부를 확인할 점검 일정

    예를 들어 업무 매뉴얼에 다음 한 줄을 추가할 수 있습니다.

    매월 첫 영업일에 Google Drive 월간실적 폴더와 Zapier 실행 기록을 확인하며, 실패 건이 있으면 원본 메일에서 파일을 수동 저장한다.

    자동화가 있더라도 원본 이메일은 바로 삭제하지 않는 편이 안전합니다. 파일 저장이 실패했을 때 다시 확인할 수 있는 근거가 되기 때문입니다.

    다른 반복 업무에는 이렇게 응용할 수 있습니다

    반복 업무 Trigger Action
    고객 문의 분류 문의 폼 제출 담당자에게 이메일 발송, 스프레드시트 기록
    회의 일정 공유 Google Calendar 일정 생성 (자세히 보기) Slack 채널에 일정 안내
    결재 요청 관리 특정 제목의 이메일 수신 업무 관리 도구에 할 일 생성
    설문 결과 취합 Google Forms 응답 제출 Google Sheets에 기록, 담당자 알림
    신규 파일 검토 요청 공유 폴더에 파일 생성 검토자에게 메시지 전송

    처음부터 여러 부서가 사용하는 복잡한 자동화를 만들 필요는 없습니다. 매주 세 번 이상 반복하면서, 입력 조건과 결과가 명확한 업무 하나를 고르는 것이 좋습니다.

    자동화 후보를 찾기 어렵다면 하루 동안 반복한 업무를 다음 형식으로 기록해보세요.

    나는 [어떤 일이 발생하면] → [무엇을 확인하고] → [어디에 옮긴 뒤] → [누구에게 알린다].

    예를 들면 다음과 같습니다.

    나는 거래처 견적 요청 메일이 오면 → 첨부파일을 확인하고 → 견적 검토 폴더에 저장한 뒤 → 구매 담당자에게 알린다.

    이 문장을 그대로 Trigger와 Action으로 나누면 다음 Zap의 초안이 됩니다.

    FAQ

    1. 회사 이메일과 파일을 Zapier에 연결해도 괜찮나요?

    회사 보안 규정과 정보보호 정책을 먼저 확인해야 합니다. Zapier는 외부 서비스이므로 회사가 승인하지 않은 업무용 계정, 고객 정보, 계약서, 인사자료, 주민등록번호, 계좌정보 등을 연결하면 안 됩니다. 내부 규정이 명확하지 않다면 실제 데이터를 사용하기 전에 정보보호 담당자나 시스템 관리자에게 연결 가능 여부를 확인해야 합니다. 테스트할 때는 개인정보가 없는 가상 파일과 테스트 계정을 사용하는 편이 안전합니다.

    2. ChatGPT와 Zapier를 함께 연결할 때 어떤 내용을 보내면 안 되나요?

    고객의 이름, 전화번호, 이메일 주소, 주문 내역, 사내 기밀, 미공개 실적, 계약 조건처럼 외부 AI 서비스 전송이 제한될 수 있는 정보는 보내지 않는 것이 원칙입니다. AI 분류가 필요하다면 원문 전체 대신 개인정보를 제거한 제목, 문의 유형, 공개 가능한 요약문만 전달하는 방식을 검토해야 합니다. 회사가 승인한 기업용 AI 환경이 있다면 해당 환경의 데이터 처리 조건을 따릅니다.

    3. 자동화가 잘못 실행되어 파일이나 메시지가 많이 생성되면 어떻게 하나요?

    처음에는 실제 운영 채널이 아닌 테스트 폴더와 비공개 테스트 채널을 사용해야 합니다. 조건에 맞는 메일 한 건으로 전체 흐름을 확인한 뒤 활성화하고, 실행 기록에서 예상한 횟수만 처리됐는지 점검합니다. 특히 자동 회신, 메일 전달, 반복 실행 기능을 연결할 때는 같은 작업이 계속 재실행되는 순환 구조가 생기지 않는지 확인해야 합니다. 문제가 발생하면 Zap을 즉시 끄고 실행 기록을 확인한 뒤 중복 생성된 파일이나 메시지를 정리합니다.


  • 엑셀 함수와 ChatGPT로 반복 데이터 분석 자동화하는 실전 방법

    엑셀 함수와 ChatGPT로 반복 데이터 분석 자동화하는 실전 방법

    매주 반복하는 엑셀 분석, 계산과 해석을 분리하면 빨라집니다

    매주 월요일마다 지난주 매출 파일을 열고, 담당자별 실적을 합산하고, 목표 달성률을 계산한 뒤, 특이사항을 찾아 보고 문장으로 정리하는 업무가 있습니다.

    데이터가 많지 않아도 과정은 번거롭습니다. 필터를 바꾸고, 수식을 복사하고, 지난주 보고서와 비교하며 문장을 다시 작성해야 하기 때문입니다. 특히 숫자 계산과 보고서 작성이 한 작업 안에 섞이면 실수가 발생하기 쉽습니다.

    이 업무는 엑셀 함수와 AI를 다음과 같이 역할 분담하면 효율적으로 처리할 수 있습니다.

    • 엑셀: 합계, 달성률, 증감률, 상태 분류처럼 기준이 명확한 계산
    • AI: 계산된 결과를 읽고 보고용 문장으로 정리하는 작업

    계산 기준은 엑셀에 고정하고, AI에는 검증된 결과만 전달하는 방식입니다. 이렇게 하면 AI가 숫자를 임의로 계산하면서 발생할 수 있는 오류를 줄이고, 반복 보고서 작성 시간도 단축할 수 있습니다.

    실제 장면: 담당자별 매출 현황을 자동으로 분석하기

    다음과 같은 주간 영업 실적표가 있다고 가정하겠습니다.

    담당자 목표 매출 실제 매출 전주 매출
    영업1팀 50,000,000 54,000,000 48,000,000
    영업2팀 45,000,000 39,600,000 42,000,000
    영업3팀 60,000,000 61,800,000 59,000,000
    영업4팀 40,000,000 30,000,000 36,000,000

    여기에 다음 세 가지 분석 항목을 추가하겠습니다.

    1. 목표 달성률
    2. 전주 대비 증감률
    3. 자동 상태 판정

    1단계: 목표 달성률 계산하기

    E2 셀에 아래 수식을 입력합니다.

    =IFERROR(C2/B2,0)

    C2의 실제 매출을 B2의 목표 매출로 나누는 수식입니다. IFERROR를 함께 사용하면 목표 매출이 비어 있거나 0일 때 발생하는 오류를 0으로 처리할 수 있습니다.

    E열의 표시 형식을 백분율로 바꾸면 다음 결과가 나옵니다.

    담당자 목표 달성률
    영업1팀 108.0%
    영업2팀 88.0%
    영업3팀 103.0%
    영업4팀 75.0%

    2단계: 전주 대비 증감률 계산하기

    F2 셀에는 아래 수식을 입력합니다.

    =IFERROR((C2-D2)/D2,0)

    현재 매출에서 전주 매출을 뺀 뒤 전주 매출로 나누는 방식입니다. F열도 백분율 형식으로 변경합니다.

    담당자 전주 대비 증감률
    영업1팀 12.5%
    영업2팀 -5.7%
    영업3팀 4.7%
    영업4팀 -16.7%

    여기까지는 일반적인 엑셀 분석입니다. 다음 단계부터는 사람이 매번 판단하던 기준까지 수식으로 고정합니다.

    엑셀 계산 결과가 AI 보고서로 이어지는 자동화 흐름

    3단계: 실적 상태를 자동으로 분류하기

    목표 달성률과 전주 대비 증감률을 함께 보고 상태를 분류하겠습니다. 예를 들어 다음 기준을 사용할 수 있습니다.

    • 목표 달성률 100% 이상: 목표 달성
    • 목표 달성률 90% 이상 100% 미만: 점검 필요
    • 목표 달성률 90% 미만이면서 전주 대비 10% 이상 감소: 집중 확인
    • 그 외: 개선 필요

    G2 셀에 다음 수식을 입력합니다.

    =IFS(E2>=1,"목표 달성",AND(E2<0.9,F2<=-0.1),"집중 확인",E2>=0.9,"점검 필요",TRUE,"개선 필요")

    수식을 아래 행까지 복사하면 결과는 다음과 같습니다.

    담당자 달성률 전주 대비 자동 판정
    영업1팀 108.0% 12.5% 목표 달성
    영업2팀 88.0% -5.7% 개선 필요
    영업3팀 103.0% 4.7% 목표 달성
    영업4팀 75.0% -16.7% 집중 확인

    이제 담당자가 매주 눈으로 달성률과 증감률을 비교해 상태를 판단할 필요가 없습니다. 새로운 매출 데이터를 붙여 넣으면 동일한 기준으로 결과가 자동 갱신됩니다.

    엑셀 결과를 AI용 분석 문장으로 바꾸기

    AI에 원본 엑셀 파일 전체를 바로 올리기보다, 필요한 결과만 정리해서 전달하는 편이 안전하고 정확합니다. 이를 위해 엑셀에서 AI 입력용 문장을 자동 생성할 수 있습니다.

    4단계: TEXTJOIN 함수로 AI 입력 자료 만들기

    H2 셀에 다음 수식을 입력합니다.

    =A2&" | 목표 "&TEXT(B2,"#,##0")&"원 | 실적 "&TEXT(C2,"#,##0")&"원 | 달성률 "&TEXT(E2,"0.0%")&" | 전주 대비 "&TEXT(F2,"0.0%")&" | 상태 "&G2

    영업1팀의 결과는 다음과 같이 표시됩니다.

    영업1팀 | 목표 50,000,000원 | 실적 54,000,000원 | 달성률 108.0% | 전주 대비 12.5% | 상태 목표 달성

    각 행의 분석 문장을 한 셀에 모으려면 별도의 셀에 다음 수식을 입력합니다.

    =TEXTJOIN(CHAR(10),TRUE,H2:H5)

    CHAR(10)은 각 팀의 결과를 줄바꿈으로 구분합니다. 셀 서식에서 ‘자동 줄 바꿈’을 적용하면 네 팀의 결과가 읽기 좋은 형태로 정리됩니다.

    ChatGPT에 입력해 주간 보고문 만들기 ( ( ( (자세히 보기)자세히 보기)자세히 보기)자세히 보기)

    앞에서 만든 결과를 복사한 뒤 ChatGPT에 다음과 같이 입력합니다.

    실제 AI 입력 예시

    아래 자료는 엑셀 함수로 계산한 주간 영업 실적입니다.

    숫자를 다시 계산하거나 변경하지 말고, 제공된 수치를 기준으로만 분석하세요.

    1. 전체 실적을 3문장으로 요약하세요.
    2. 목표를 달성한 팀과 집중 확인이 필요한 팀을 구분하세요.
    3. 확인이 필요한 원인을 단정하지 말고, 추가로 점검할 항목을 제안하세요.
    4. 부서장에게 보고하는 차분한 문체로 작성하세요.

    영업1팀 | 목표 50,000,000원 | 실적 54,000,000원 | 달성률 108.0% | 전주 대비 12.5% | 상태 목표 달성
    영업2팀 | 목표 45,000,000원 | 실적 39,600,000원 | 달성률 88.0% | 전주 대비 -5.7% | 상태 개선 필요
    영업3팀 | 목표 60,000,000원 | 실적 61,800,000원 | 달성률 103.0% | 전주 대비 4.7% | 상태 목표 달성
    영업4팀 | 목표 40,000,000원 | 실적 30,000,000원 | 달성률 75.0% | 전주 대비 -16.7% | 상태 집중 확인

    AI가 작성할 수 있는 결과 예시

    이번 주에는 영업1팀과 영업3팀이 각각 목표 대비 108.0%, 103.0%를 기록해 목표를 달성했습니다. 영업1팀은 전주 대비 12.5% 증가해 가장 뚜렷한 상승세를 보였습니다. 반면 영업4팀은 목표 달성률이 75.0%이고 전주 대비 16.7% 감소해 우선 확인이 필요합니다.

    영업2팀은 목표 달성률 88.0%로 목표에는 미달했으나, 전주 대비 감소 폭은 5.7%로 영업4팀보다 제한적입니다. 영업4팀은 주요 거래처 주문 변동, 납기 지연, 영업 활동량 변화, 일회성 매출 종료 여부를 추가로 확인하는 것이 적절합니다.

    이 과정에서 AI는 계산을 담당하지 않습니다. 엑셀이 확정한 수치를 바탕으로 요약하고, 확인할 항목을 제안하는 역할만 맡습니다.

    이 구분이 중요한 이유는 AI가 긴 표 안의 숫자를 잘못 읽거나, 사용자가 요청하지 않은 방식으로 다시 계산할 가능성이 있기 때문입니다. 보고서의 기준 숫자는 엑셀에 남겨 두고, AI 결과는 설명 초안으로 활용하는 편이 안전합니다.

    작성된 데이터 분석 보고서를 검토하는 직장인의 책상

    새 데이터가 들어올 때 자동으로 범위를 확장하는 방법

    매주 행이 추가되는 파일이라면 일반 셀 범위보다 ‘표’ 기능을 사용하는 것이 편리합니다.

    1. 원본 데이터 영역 안의 셀을 클릭합니다.
    2. Ctrl+T를 누릅니다.
    3. ‘머리글 포함’을 확인한 뒤 표로 변환합니다.
    4. 달성률, 증감률, 상태 판정 수식을 표 열에 입력합니다.

    표로 변환하면 다음 주 데이터를 마지막 행 아래에 붙여 넣을 때 수식이 자동으로 확장됩니다. H2:H5처럼 범위를 수동 수정하는 대신 구조화된 참조를 사용할 수도 있습니다.

    =TEXTJOIN(CHAR(10),TRUE,실적표[AI입력문장])

    표 이름이 ‘실적표’이고 문장을 만든 열 이름이 ‘AI입력문장’일 때 사용하는 방식입니다. 데이터가 4행에서 40행으로 늘어나도 범위를 다시 지정할 필요가 없습니다.

    대부분 놓치는 단계: 예외값을 먼저 분리하기

    자동화 수식이 정상 작동해도 원본 데이터에 문제가 있으면 보고서 역시 잘못됩니다. AI로 넘기기 전에 다음 예외를 엑셀에서 확인해야 합니다.

    • 목표 매출이나 전주 매출이 0인 행
    • 숫자가 문자 형식으로 저장된 행
    • 담당자명이 중복된 행
    • 취소·반품 매출이 반영되지 않은 행
    • 집계 기간이 다른 데이터가 섞인 행

    I2 셀에 아래 검증 수식을 추가하면 기본적인 오류를 표시할 수 있습니다.

    =IF(A2="","담당자 누락",IF(B2<=0,"목표값 확인",IF(D2<=0,"전주값 확인",IF(COUNTIF($A:$A,A2)>1,"중복 확인","정상"))))

    검증 결과가 ‘정상’이 아닌 행은 AI 입력 자료에서 제외하거나 담당자가 먼저 확인합니다. 보기 좋은 보고서를 빠르게 만드는 것보다 잘못된 숫자가 보고되는 것을 막는 일이 우선입니다.

    반복 업무에 적용하는 순서

    처음부터 복잡한 자동화를 만들 필요는 없습니다. 현재 사용 중인 엑셀 파일에 다음 순서로 적용해 볼 수 있습니다.

    1. 반복 판단 찾기: 매번 사람이 비교하는 달성률, 증감률, 지연 여부를 찾습니다.
    2. 판단 기준 수식화: IF, IFS, SUMIFS, COUNTIFS 등의 함수로 기준을 고정합니다.
    3. 예외값 검증: 빈칸, 0, 중복, 문자 형식 데이터를 별도 표시합니다.
    4. AI 입력문 생성: TEXT, TEXTJOIN, & 연산자로 필요한 결과만 문장으로 만듭니다.
    5. AI 역할 제한: 숫자를 다시 계산하지 않고 요약과 확인 항목만 작성하도록 지시합니다.
    6. 최종 검토: AI 보고문 속 수치가 엑셀 결과와 일치하는지 확인한 뒤 사용합니다.

    매출뿐 아니라 생산 불량률, 재고 부족 목록, 고객 문의 유형, 프로젝트 일정 지연, 부서별 비용 분석에도 같은 구조를 적용할 수 있습니다. 계산 항목과 판정 기준만 업무에 맞게 바꾸면 됩니다.

    개인정보와 사내 자료를 안전하게 다루는 방법

    업무용 데이터를 외부 AI 서비스에 입력하기 전에는 회사의 정보보안 규정과 AI 사용 지침을 먼저 확인해야 합니다. 회사가 외부 AI 도구 사용을 금지하거나 승인된 계정만 허용한다면 해당 기준을 따라야 합니다.

    외부 AI에 전달할 때는 다음 정보를 제거하거나 대체하는 것이 안전합니다.

    • 직원 이름, 사번, 전화번호, 이메일 주소
    • 고객명, 거래처명, 계약번호, 계좌번호
    • 아직 공개되지 않은 매출, 원가, 생산계획
    • 제품 설계 정보, 제조 조건, 내부 품질 기준
    • 인사평가, 급여, 민감한 고객 상담 내용

    예를 들어 ‘홍길동’이나 실제 거래처명을 입력하는 대신 ‘담당자 A’, ‘거래처 1’처럼 바꿀 수 있습니다. 분석 목적에 필요하지 않은 열은 처음부터 복사하지 않는 것이 좋습니다.

    민감한 자료를 외부로 전달할 수 없는 환경이라면 AI에는 실제 데이터 대신 표 구조와 가상의 예시값만 제공해 수식이나 보고서 양식을 만든 뒤, 실제 계산은 사내 엑셀에서 수행하는 방식이 적절합니다.

    FAQ

    Q1. ChatGPT에 엑셀 파일 전체를 올려도 되나요?

    파일에 개인정보, 고객정보, 매출, 원가, 계약 내용 등 민감한 정보가 포함돼 있다면 바로 올리지 않는 것이 안전합니다. 회사의 보안 규정과 승인된 AI 사용 범위를 먼저 확인해야 합니다. 가능하면 필요한 열만 남기고 이름과 식별정보를 익명화한 뒤 사용하세요. 외부 전송이 금지된 자료라면 실제 파일을 올리지 말고 가상의 데이터 구조만 활용해야 합니다.

    Q2. AI가 계산까지 하도록 맡기면 더 편하지 않나요?

    간단한 계산은 가능하지만, 업무 보고의 기준 숫자는 엑셀 함수로 계산하는 편이 안정적입니다. 엑셀은 같은 수식과 기준을 반복 적용하고 계산 과정을 셀에서 확인할 수 있습니다. AI는 검증된 숫자를 요약하고 의미를 설명하는 역할로 제한하면 계산 오류를 발견하기 쉽습니다.

    Q3. 매주 데이터를 바꿀 때 수식을 다시 복사해야 하나요?

    데이터 영역을 엑셀의 ‘표’로 변환하면 새 행을 추가할 때 수식과 서식이 자동으로 확장됩니다. AI 입력용 문장도 TEXTJOIN과 구조화된 참조를 사용하면 데이터 행 수에 맞춰 자동 갱신됩니다. 다만 새로 추가된 데이터의 빈칸, 중복, 숫자 형식 오류는 별도 검증 열에서 확인해야 합니다.


  • Perplexity로 엑셀 데이터 분석과 시각화까지 빠르게 처리하는 실전 방법

    Perplexity로 엑셀 데이터 분석과 시각화까지 빠르게 처리하는 실전 방법

    엑셀을 열어 숫자를 확인하는 데만 30분이 걸린다면

    월요일 오전, 지난달 실적 보고를 준비해야 한다고 가정해 보겠습니다. 엑셀 파일에는 날짜, 영업팀, 제품군, 매출액, 목표액, 반품액이 들어 있습니다.

    평소라면 피벗 테이블을 만들고, 달성률 수식을 넣고, 팀별 실적을 비교한 뒤 차트를 작성합니다. 데이터에 익숙하지 않은 직장인에게는 분석보다 “어디서부터 눌러야 하는지”를 찾는 시간이 더 오래 걸릴 수 있습니다.

    이때 Perplexity에 파일을 첨부하고 분석 조건을 구체적으로 적으면 다음 작업을 한 흐름에서 처리할 수 있습니다.

    • 열 구조와 데이터 오류 확인
    • 팀별 매출과 목표 달성률 계산
    • 실적이 나빠진 구간 탐색
    • 보고서용 표와 차트 생성
    • 결과를 직장인이 이해하기 쉬운 문장으로 해석

    다만 여기서 말하는 자동화는 회사 시스템과 연결해 매일 저절로 갱신되는 대시보드를 뜻하지 않습니다. 새로운 엑셀 파일을 올리고 정해 둔 요청문을 실행하면, 반복적인 분석 과정을 빠르게 재현하는 방식에 가깝습니다. Perplexity Pro에서는 연결된 원본 파일이 변경되더라도 자동 동기화되지 않을 수 있으므로, 최신 자료를 다시 첨부해야 합니다.

    실전 장면: 월간 영업실적 파일을 분석해 보겠습니다

    아래와 같은 CSV 또는 엑셀 파일이 있다고 가정하겠습니다. 숫자는 사용법을 보여주기 위해 만든 예시입니다.

    날짜 영업팀 제품군 매출액 목표액 반품액
    2026-06-03 동부팀 소형가전 38,500,000원 40,000,000원 720,000원
    2026-06-04 서부팀 생활가전 45,200,000원 42,000,000원 410,000원
    2026-06-05 남부팀 소형가전 31,800,000원 39,000,000원 1,360,000원

    1단계: 업로드 전에 민감정보부터 제거합니다

    원본 파일을 그대로 올리기 전에 복사본을 만듭니다. 고객 이름, 전화번호, 이메일, 사번, 거래처 담당자, 계약번호처럼 개인이나 거래를 식별할 수 있는 열은 삭제하거나 바꿉니다.

    원본 값 분석용 값
    서울유통 주식회사 거래처_A
    010-1234-5678 삭제
    EMP-2026-0142 직원_0142
    서울시 강남구 ○○로 25 서울권

    분석에 필요하지 않은 정보는 처음부터 넣지 않는 편이 가장 안전합니다. 회사의 생성형 AI 사용 지침에서 외부 서비스 업로드를 금지하고 있다면, 익명화 여부와 관계없이 사내 승인 없이 업로드해서는 안 됩니다.

    2단계: Perplexity에 파일을 첨부합니다

    새 세션의 입력창에서 Attach 또는 첨부 버튼을 누르고 분석용 파일을 선택합니다. 파일이나 폴더를 입력창으로 끌어다 놓는 방법도 사용할 수 있습니다. Perplexity는 텍스트 파일, PDF, 이미지 등을 첨부 자료로 처리하며, 긴 파일은 질문과 관련성이 높은 부분을 우선 추출할 수 있습니다.

    따라서 “이 파일을 분석해 줘”라고만 적기보다 분석 기준, 계산식, 출력 형식을 함께 지정해야 결과가 안정적입니다.

    파일 확인부터 계산과 시각화까지 이어지는 데이터 분석 흐름

    3단계: 첫 입력에서 데이터 상태를 점검합니다

    처음부터 차트를 만들어 달라고 하지 말고, 먼저 파일을 제대로 읽었는지 확인합니다. 다음 요청문을 그대로 복사해 사용할 수 있습니다.

    첨부한 파일은 2026년 6월 영업실적 자료입니다.

    아직 최종 분석은 하지 말고 먼저 데이터 상태를 점검해 주세요.

    1. 전체 행 수와 열 이름을 표시하세요.
    2. 각 열의 데이터 형식을 추정하세요.
    3. 빈값, 중복 행, 음수 금액, 날짜 형식 오류를 찾으세요.
    4. 매출액·목표액·반품액의 최솟값과 최댓값을 표시하세요.
    5. 분석에 영향을 줄 수 있는 이상 항목을 표로 정리하세요.
    6. 확인하지 못한 내용은 추측하지 말고 ‘확인 필요’라고 표시하세요.

    정상적으로 읽었다면 다음과 비슷한 결과를 받게 됩니다.

    데이터 점검 결과

    총 186행, 6개 열을 확인했습니다. 날짜 열은 날짜 형식, 매출액·목표액·반품액은 숫자 형식으로 인식했습니다.

    매출액 빈값 2건, 동일한 날짜·영업팀·제품군 조합의 중복 의심 행 1건이 있습니다. 반품액 음수 값은 없습니다. 남부팀 6월 18일 매출액은 같은 팀의 중앙값보다 현저히 낮아 원본 확인이 필요합니다.

    행 수, 열 이름, 오류 위치가 원본과 맞지 않으면 이 단계에서 멈춰야 합니다. 잘못 읽힌 파일을 바탕으로 만든 차트는 보기에는 그럴듯해도 보고 자료로 사용할 수 없습니다.

    4단계: 계산 기준을 고정하고 분석합니다

    파일 상태를 확인한 뒤 같은 세션에서 다음 요청을 이어서 입력합니다.

    방금 점검한 데이터에서 오류 의심 행은 별도 표시하되 임의로 수정하지 마세요.

    다음 기준으로 영업실적을 분석해 주세요.

    1. 목표 달성률 = 매출액 ÷ 목표액 × 100
    2. 순매출 = 매출액 − 반품액
    3. 영업팀별 매출액, 순매출, 목표 달성률, 반품률을 계산
    4. 반품률 = 반품액 ÷ 매출액 × 100
    5. 목표 달성률이 낮은 순서대로 영업팀을 정렬
    6. 전반부와 후반부 실적을 비교해 변화 원인을 데이터 안에서 찾기
    7. 근거가 없는 원인은 추정하지 않기

    결과는 ‘요약 → 계산표 → 주의할 이상값 → 해석’ 순서로 작성하세요. 모든 비율은 소수점 첫째 자리까지 표시하세요.

    예시 데이터 전체를 분석했다고 가정하면 출력은 다음과 같은 구조가 됩니다.

    영업팀 매출액 순매출 목표 달성률 반품률
    서부팀 432,000,000원 426,900,000원 105.4% 1.2%
    동부팀 398,000,000원 390,800,000원 98.3% 1.8%
    남부팀 351,000,000원 338,400,000원 87.8% 3.6%

    결과 해석 예시

    서부팀은 목표를 5.4% 초과했으며 반품률도 세 팀 중 가장 낮았습니다. 남부팀은 목표 달성률이 87.8%로 가장 낮고 반품률은 3.6%로 가장 높았습니다. 특히 후반부 소형가전 매출 감소와 반품액 증가가 동시에 나타났습니다.

    다만 현재 파일에는 할인율, 재고 부족, 영업일 수, 판촉 행사 정보가 없으므로 매출 감소의 업무상 원인을 확정할 수 없습니다.

    좋은 결과는 숫자만 요약하는 데서 끝나지 않습니다. 데이터로 확인한 사실과 추가 확인이 필요한 원인을 분리해야 합니다.

    분석 결과를 차트로 바로 확인하는 방법

    Perplexity는 문서, 스프레드시트, 프레젠테이션과 같은 파일을 생성하고 미리 볼 수 있으며, 완성된 결과물을 XLSX나 PDF 등의 형식으로 내보낼 수 있습니다. 다만 이용 중인 요금제와 화면의 제공 기능에 따라 생성 메뉴나 내보내기 형식이 다르게 보일 수 있습니다.

    같은 세션에서 아래처럼 요청합니다.

    방금 계산한 결과를 바탕으로 관리자가 10초 안에 상황을 파악할 수 있는 시각 자료를 만들어 주세요.

    1. 영업팀별 목표액과 매출액을 비교하는 막대그래프
    2. 영업팀별 목표 달성률을 보여주는 그래프
    3. 날짜별 순매출 추이를 보여주는 선그래프
    4. 날짜별 반품률 추이를 보여주는 선그래프

    차트 제목과 축 이름은 한국어로 표시하세요. 목표 달성률 100% 기준선을 추가하고, 각 차트 아래에 두 문장 이내의 해석을 붙이세요. 차트에 사용한 집계표도 함께 제공하세요.

    여기서 대부분이 놓치는 부분은 차트와 집계표를 동시에 요청하는 것입니다. 차트만 받으면 막대 높이가 실제 계산값과 일치하는지 확인하기 어렵습니다. 반면 집계표가 함께 있으면 다음처럼 바로 대조할 수 있습니다.

    영업팀별 목표 달성률 차트 해석

    서부팀만 100% 기준선을 넘었습니다. 남부팀은 동부팀보다 목표 달성률이 10.5%포인트 낮아, 제품군별 실적을 추가로 나누어 확인할 필요가 있습니다.

    팀 회의에서 매출 그래프와 분석 결과를 확인하는 장면

    실시간 피드백으로 결과를 수정하는 네 단계

    첫 답변을 그대로 보고서에 붙이는 것보다, 같은 세션에서 검증 질문을 이어 가는 방식이 안전합니다. Perplexity는 첨부 파일의 맥락을 활용해 후속 질문을 처리할 수 있습니다.

    피드백 1: 계산을 다시 검산합니다

    남부팀 목표 달성률 계산 과정을 식과 함께 다시 보여주세요. 원본 합계, 목표액 합계, 나눗셈 결과를 각각 표시하고 앞선 결과와 일치하는지 확인하세요.

    피드백 2: 다른 관점으로 나눠 봅니다

    남부팀의 실적을 제품군별로 다시 나눠 주세요. 제품군별 매출액, 목표 달성률, 반품률을 비교하고 전체 부진에 가장 크게 영향을 준 항목을 금액 기준으로 설명하세요.

    피드백 3: 과도한 해석을 제거합니다

    현재 해석에서 파일에 없는 정보를 근거로 추정한 문장을 찾아 삭제하세요. 확인된 사실과 추가 자료가 필요한 가설을 두 개의 표로 분리하세요.

    피드백 4: 보고 문장으로 바꿉니다

    최종 결과를 부서장 보고용으로 다시 작성하세요. 첫 문장은 전체 결론, 다음 세 문장은 근거, 마지막 두 문장은 확인이 필요한 항목과 다음 조치로 구성하세요. 과장 표현과 원인 단정은 사용하지 마세요.

    최종 보고 문장은 다음처럼 정리할 수 있습니다.

    6월 전체 영업실적은 목표에 근접했으나 팀별 편차가 확인됐습니다. 서부팀은 목표 달성률 105.4%를 기록한 반면, 남부팀은 87.8%에 머물렀습니다. 남부팀은 소형가전 순매출 감소와 높은 반품률이 함께 나타났습니다. 해당 수치는 원본 오류 의심 행을 임의 수정하지 않은 상태에서 계산했습니다. 재고 부족, 할인 행사, 영업일 수 자료를 추가한 뒤 남부팀 실적 저하 원인을 재검토할 필요가 있습니다.

    매달 같은 분석을 빠르게 반복하는 요청문

    분석이 끝나면 사용한 요청문을 메모장이나 사내 문서에 저장합니다. 다음 달에는 기간과 파일만 바꿔 같은 절차를 반복할 수 있습니다.

    첨부한 파일은 [분석 기간]의 [자료명]입니다.

    먼저 전체 행 수, 열 이름, 빈값, 중복, 형식 오류, 이상값을 점검하세요. 오류 의심값은 임의로 수정하지 말고 위치와 이유를 표시하세요.

    그다음 [계산식]에 따라 [부서/제품/기간]별 결과를 계산하세요. 결과는 요약, 집계표, 시각화, 해석, 확인 필요 항목 순서로 작성하세요.

    각 차트에 사용한 집계표를 함께 제공하고, 앞선 계산과 차트 값이 일치하는지 검산하세요. 파일에 없는 원인은 사실처럼 단정하지 마세요.

    이 구조는 영업실적뿐 아니라 생산 불량률, 고객 문의, 광고 성과, 재고 회전, 교육 이수 현황에도 적용할 수 있습니다. 바꿔야 하는 부분은 분석 단위와 계산식입니다.

    업무 데이터 분석 전 확인할 보안 기준

    Perplexity 공식 안내에 따르면 세션에 첨부한 파일은 질문과 작업에 맞는 답변을 제공하는 데 사용되며, 일반 이용자의 첨부 파일은 통상 30일, Enterprise Pro 이용자의 경우 7일 동안 보관될 수 있습니다. 프로젝트나 저장소에 올린 파일은 직접 삭제할 때까지 유지될 수 있습니다. 세션을 공개하면 링크를 가진 사람이 첨부 자료를 볼 수 있으므로 업무 파일이 있는 대화는 공개하지 않아야 합니다.

    또한 일반 계정의 검색 내용과 피드백은 서비스 개선에 활용될 수 있으며, 설정의 AI Data Usage 항목에서 학습 활용을 끌 수 있다고 안내되어 있습니다. 이 설정이 회사의 보안 규정을 대신하는 것은 아닙니다.

    • 원본 대신 민감정보를 제거한 복사본을 사용합니다.
    • 고객명, 연락처, 주민등록번호, 계좌번호, 사번을 넣지 않습니다.
    • 계약서, 인사평가, 미공개 실적은 사내 승인 여부를 먼저 확인합니다.
    • 업무 파일을 첨부한 세션은 공개 링크로 전환하지 않습니다.
    • 분석이 끝난 뒤 첨부 파일과 대화 삭제가 필요한지 확인합니다.
    • AI 결과는 원본 합계와 표본 행을 이용해 사람이 최종 검산합니다.

    FAQ

    1. 고객 이름만 지우면 회사 데이터를 올려도 괜찮나요?

    그렇지 않습니다. 거래처명, 전화번호, 이메일, 주소, 계약번호, 사번처럼 다른 정보와 결합해 대상을 알아볼 수 있는 값도 제거하거나 범주형 값으로 바꿔야 합니다. 무엇보다 회사가 외부 AI 서비스에 업무 자료를 업로드하지 못하도록 정했다면 익명화한 파일도 임의로 올리지 말고 보안 담당자나 상급자의 승인을 받아야 합니다.

    2. Perplexity가 만든 그래프를 그대로 보고서에 사용해도 되나요?

    원본 합계, 계산식, 집계표가 일치하는지 먼저 확인해야 합니다. 특히 비율의 분모, 빈값 처리, 중복 행, 날짜 범위를 점검하세요. “차트에 사용한 집계표를 함께 표시하고 계산을 검산하라”고 요청하면 확인이 쉬워지지만, 최종 책임은 보고서를 작성하는 담당자에게 있습니다.

    3. 매일 파일을 올리면 완전 자동 대시보드처럼 사용할 수 있나요?

    정해 둔 요청문을 반복하면 분석 시간을 줄일 수 있지만, 일반적인 파일 첨부만으로 원본 엑셀이 자동 갱신되는 것은 아닙니다. 원본이 변경되면 최신 파일을 다시 첨부하고, 분석 기간과 행 수가 맞는지 확인해야 합니다. 매일 자동 수집·자동 갱신이 필요한 업무라면 사내 승인 아래 데이터베이스, 스프레드시트 자동화 도구 또는 BI 시스템과 별도의 연동 구조를 검토하는 편이 적절합니다.


  • Notion과 Perplexity로 팀 프로젝트 진행 상황을 10분 만에 시각화하는 방법

    Notion과 Perplexity로 팀 프로젝트 진행 상황을 10분 만에 시각화하는 방법

    진행 상황을 묻는 회의가 길어지는 이유

    팀 프로젝트 회의에서 자주 나오는 질문은 비슷합니다.

    “전체 일정은 지금 몇 퍼센트까지 진행됐나요?”

    “이번 주에 지연된 업무는 무엇인가요?”

    “의사결정이 필요한 항목만 따로 볼 수 있을까요?”

    문제는 정보가 없어서가 아닙니다. 업무명, 담당자, 마감일, 상태가 Notion에 모두 기록돼 있어도 데이터가 표 형태로만 쌓여 있으 (자세히 보기) (자세히 보기) (자세히 보기)면 프로젝트의 흐름이 한눈에 들어오지 않습니다.

    이럴 때 Notion의 프로젝트 데이터를 정리한 뒤 Perplexity에 입력하면, 단순한 업무 목록을 다음과 같은 시각 자료용 요약으로 바꿀 수 있습니다.

    • 전체 진행률
    • 완료·진행 중·지연 업무 비율
    • 마감이 임박한 업무
    • 팀장이 결정해야 할 항목
    • 이번 주 우선순위

    여기서 말하는 ‘시각화’는 복잡한 그래프 프로그램을 새로 배우는 것이 아닙니다. Notion에서는 상태별 보드와 필터 화면을 만들고, Perplexity에서는 데이터를 분석해 회의용 요약문과 차트 작성용 표를 만드는 방식입니다.

    먼저 Notion 프로젝트 데이터를 정리합니다

    Notion에 프로젝트 데이터베이스가 이미 있다면 새로 만들 필요는 없습니다. 다만 AI가 데이터를 정확하게 해석하려면 열 이름과 상태값을 일정하게 맞춰야 합니다.

    권장 데이터베이스 항목

    항목 입력 형식 예시
    업무명 텍스트 제품 소개 페이지 문구 확정
    담당 사람 또는 부서 마케팅팀
    상태 선택 예정, 진행 중, 검토 중, 완료, 지연
    진행률 숫자 70
    마감일 날짜 2026-08-05
    우선순위 선택 높음, 보통, 낮음
    문제·요청사항 텍스트 최종 가격 정책 승인 필요

    상태를 작성할 때 ‘작업 중’, ‘진행’, ‘수행 중’처럼 비슷한 표현을 섞으면 AI가 서로 다른 상태로 계산할 수 있습니다. 상태값은 다섯 개 안팎으로 통일하는 편이 안전합니다.

    실제로 입력할 프로젝트 데이터 예시

    신제품 소개 페이지 제작 프로젝트를 예로 들어보겠습니다.

    업무명 담당 상태 진행률 마감일 우선순위 문제·요청사항
    제품 핵심 메시지 확정 마케팅팀 완료 100 2026-07-25 높음 없음
    상세 페이지 초안 작성 콘텐츠팀 진행 중 70 2026-07-31 높음 가격 정책 최종 확인 필요
    제품 이미지 촬영 디자인팀 지연 40 2026-07-29 높음 촬영 샘플 입고 지연
    모바일 화면 검수 개발팀 예정 0 2026-08-04 보통 디자인 최종본 필요
    법무 표현 검토 법무팀 검토 중 80 2026-07-30 높음 효능 관련 문구 수정 요청
    최종 게시 승인 사업부 예정 0 2026-08-06 높음 선행 업무 완료 후 승인 가능

    이 정도 데이터만 있어도 프로젝트의 진행률, 지연 원인, 선행 업무 관계를 상당히 구체적으로 정리할 수 있습니다.

    프로젝트 업무가 상태별로 분류되는 흐름을 표현한 일러스트

    Notion 데이터를 Perplexity에 전달하는 방법

    Notion과 Perplexity를 반드시 자동 연동해야 하는 것은 아닙니다. 10분 안에 결과를 만들 목적이라면 먼저 수동 복사 방식으로 시작하는 편이 빠르고 안전합니다.

    1단계: Notion에서 분석할 항목만 표시합니다

    프로젝트 데이터베이스에서 다음 열만 남깁니다.

    • 업무명
    • 담당
    • 상태
    • 진행률
    • 마감일
    • 우선순위
    • 문제·요청사항

    거래처 전화번호, 직원 개인 연락처, 계약 금액, 고객 이름처럼 분석에 필요하지 않은 정보는 숨깁니다. 이후 표의 행을 복사해 Perplexity 입력창에 붙여 넣습니다.

    2단계: 분석 기준을 포함한 프롬프트를 입력합니다

    데이터만 붙여 넣고 “분석해 줘”라고 요청하면 설명이 길어지거나 중요하지 않은 항목까지 요약될 수 있습니다. 결과물의 용도와 형식을 함께 지정해야 합니다.

    Perplexity 입력 예시

    아래는 신제품 소개 페이지 제작 프로젝트의 업무 현황입니다.

    이 데이터를 팀 주간회의에서 바로 사용할 수 있도록 분석해 주세요.

    1. 전체 평균 진행률을 계산해 주세요.
    2. 상태별 업무 개수와 비율을 표로 정리해 주세요.
    3. 지연되었거나 3일 이내 마감인 업무를 분리해 주세요.
    4. 다른 업무를 막고 있는 선행 업무를 찾아 주세요.
    5. 팀장이나 사업부의 결정이 필요한 항목을 정리해 주세요.
    6. 마지막에는 ‘현재 상황, 위험 요소, 이번 주 행동’의 3개 영역으로 요약해 주세요.
    7. 확인되지 않은 내용은 추측하지 말고 ‘확인 필요’로 표시해 주세요.

    [프로젝트 데이터]
    제품 핵심 메시지 확정 | 마케팅팀 | 완료 | 100 | 2026-07-25 | 높음 | 없음
    상세 페이지 초안 작성 | 콘텐츠팀 | 진행 중 | 70 | 2026-07-31 | 높음 | 가격 정책 최종 확인 필요
    제품 이미지 촬영 | 디자인팀 | 지연 | 40 | 2026-07-29 | 높음 | 촬영 샘플 입고 지연
    모바일 화면 검수 | 개발팀 | 예정 | 0 | 2026-08-04 | 보통 | 디자인 최종본 필요
    법무 표현 검토 | 법무팀 | 검토 중 | 80 | 2026-07-30 | 높음 | 효능 관련 문구 수정 요청
    최종 게시 승인 | 사업부 | 예정 | 0 | 2026-08-06 | 높음 | 선행 업무 완료 후 승인 가능

    3단계: AI가 계산한 숫자를 원본과 대조합니다

    AI가 표를 잘 정리하더라도 진행률과 날짜 계산은 반드시 한 번 확인해야 합니다. 위 예시의 단순 평균 진행률은 다음과 같습니다.

    (100 + 70 + 40 + 0 + 80 + 0) ÷ 6 = 약 48.3%

    Perplexity가 약 48%라고 표시했다면 계산은 맞습니다. 다만 업무마다 중요도가 다르기 때문에 이 수치는 ‘업무 수 기준 단순 평균’이라고 표기해야 합니다. 규모가 큰 업무와 작은 업무를 동일한 비중으로 계산한 값이기 때문입니다.

    AI 분석 결과는 이렇게 나옵니다

    앞의 데이터를 기준으로 정리하면 다음과 같은 회의용 결과물을 만들 수 있습니다.

    프로젝트 현황 요약

    지표 결과
    전체 업무 6개
    단순 평균 진행률 약 48%
    완료 1개
    진행·검토 중 2개
    예정 2개
    지연 1개
    의사결정 필요 가격 정책, 효능 표현

    회의에서 바로 읽을 수 있는 요약문

    현재 상황
    전체 6개 업무 중 1개가 완료됐으며, 단순 평균 진행률은 약 48%입니다. 콘텐츠 초안과 법무 검토는 마무리 단계에 들어갔지만 이미지 촬영이 지연되고 있습니다.

    위험 요소
    제품 이미지 촬영 지연이 모바일 검수와 최종 게시 승인 일정에 영향을 줄 가능성이 있습니다. 상세 페이지 초안은 가격 정책이 확정되지 않으면 최종 문구를 확정하기 어렵습니다.

    이번 주 행동
    촬영 샘플 입고일을 확인하고 대체 촬영 가능 여부를 결정합니다. 가격 정책과 효능 표현 수정안을 우선 승인한 뒤 콘텐츠와 법무 업무를 마감합니다.

    단순 표에서는 ‘제품 이미지 촬영 40%’만 보이지만, AI 분석을 거치면 이 업무가 모바일 검수와 게시 승인까지 늦출 수 있다는 연결 관계가 드러납니다. 이것이 업무 목록을 시각적 프로젝트 자료로 바꾸는 핵심입니다.

    Notion에서 직관적인 대시보드로 구성합니다

    Perplexity가 정리한 결과를 다시 Notion 프로젝트 페이지 상단에 배치합니다. 대시보드는 많은 정보를 보여주는 화면이 아니라, 회의 참석자가 10초 안에 상황을 이해하게 만드는 화면이어야 합니다.

    추천 배치 순서

    1. 상단: 전체 진행률과 완료 예정일
    2. 두 번째 영역: 현재 상황·위험 요소·이번 주 행동
    3. 세 번째 영역: 상태별 보드
    4. 네 번째 영역: 지연 및 의사결정 필요 업무
    5. 하단: 전체 업무 데이터베이스

    보기 화면은 세 개만 만들어도 충분합니다

    보기 1. 전체 진행 현황

    • 형식: 보드
    • 그룹 기준: 상태
    • 표시 항목: 담당, 진행률, 마감일

    보기 2. 이번 주 확인 업무

    • 형식: 표
    • 필터: 마감일이 7일 이내
    • 정렬: 우선순위 높은 순, 마감일 빠른 순

    보기 3. 지연·결정 필요

    • 형식: 표 또는 목록
    • 필터: 상태가 지연이거나 문제·요청사항이 비어 있지 않음
    • 표시 항목: 업무명, 담당, 문제·요청사항, 마감일
    회의 화면에 표시된 프로젝트 현황을 보며 의견을 정리하는 모습

    대부분 놓치는 부분: 진행률보다 ‘막히는 지점’을 보여주세요

    프로젝트 대시보드를 만들 때 진행률 숫자만 크게 표시하는 경우가 많습니다. 하지만 팀장과 실무자가 실제로 필요로 하는 정보는 “왜 멈췄는가”와 “누가 무엇을 결정해야 하는가”입니다.

    그래서 Perplexity에 다음 후속 질문을 한 번 더 입력하는 것이 좋습니다.

    앞의 프로젝트 데이터를 기준으로, 다른 업무의 시작이나 완료를 막고 있는 업무만 찾아 주세요.

    각 항목을 ‘막힌 업무 → 원인 → 필요한 결정 → 결정 담당’ 순서의 표로 작성해 주세요.

    데이터에 담당자가 명시되지 않은 경우 임의로 지정하지 말고 ‘담당 확인 필요’라고 표시해 주세요.

    예상 결과

    막힌 업무 원인 필요한 결정 결정 담당
    상세 페이지 초안 확정 가격 정책 미확정 최종 판매가격 승인 담당 확인 필요
    모바일 화면 검수 디자인 최종본 미완료 이미지 촬영 일정 또는 대체안 결정 담당 확인 필요
    최종 게시 승인 콘텐츠·디자인·법무 업무 미완료 선행 업무 완료 일정 확정 사업부

    이 표를 대시보드 상단에 배치하면 회의가 단순 현황 보고에서 의사결정 중심으로 바뀝니다. 각 담당자가 자신의 업무를 길게 설명하기 전에, 어떤 결정이 필요한지부터 확인할 수 있기 때문입니다.

    회의 피드백을 다음 대시보드에 반영하는 방법

    시각 자료를 한 번 만든 뒤 그대로 고정하면 실제 업무와 점점 멀어질 수 있습니다. 회의가 끝난 뒤에는 참석자의 질문을 기록해 다음 화면에 반영해야 합니다.

    회의 중 나온 질문을 세 가지로 분류합니다

    질문 유형 예시 반영 방법
    숫자 확인 완료 기준은 무엇인가요? 상태 정의를 데이터베이스 설명에 추가
    일정 확인 지연되면 최종 게시일도 바뀌나요? 선행 업무 또는 의존 관계 열 추가
    의사결정 확인 누가 가격을 승인해야 하나요? 결정 담당 열 추가

    예를 들어 첫 회의에서 “누가 결정해야 하는지 모르겠다”는 질문이 반복됐다면 Notion에 ‘결정 담당’ 속성을 추가합니다. 다음 분석에서는 해당 열까지 Perplexity에 전달합니다.

    피드백 반영용 프롬프트

    이번 회의에서 다음 피드백이 나왔습니다.

    – 진행률만으로는 실제 완료 여부를 판단하기 어렵다.
    – 지연 업무가 최종 일정에 미치는 영향이 보이지 않는다.
    – 의사결정 담당자가 명확하지 않다.

    다음 주 대시보드에 추가해야 할 데이터 항목을 제안해 주세요. 각 항목마다 입력 예시와 대시보드에서 표시할 위치도 알려 주세요. 기존 데이터로 확인할 수 없는 정보는 추정하지 마세요.

    이 과정을 반복하면 대시보드가 보기 좋은 보고서에 머무르지 않고 실제 팀의 질문에 답하는 운영 도구로 발전합니다.

    10분 안에 끝내는 실행 순서

    1. 0~2분: Notion에서 분석에 필요하지 않은 열과 민감정보를 숨깁니다.
    2. 2~4분: 업무명, 상태, 진행률, 마감일, 문제·요청사항을 복사합니다.
    3. 4~6분: Perplexity에 분석 기준과 함께 데이터를 입력합니다.
    4. 6~8분: 진행률, 날짜, 업무 개수를 원본과 대조합니다.
    5. 8~10분: 요약문과 지연 업무 표를 Notion 대시보드 상단에 붙여 넣습니다.

    처음에는 완전 자동화를 목표로 잡지 않는 편이 좋습니다. 매주 10분씩 수동으로 실행하면서 팀이 실제로 보는 항목을 확인한 뒤, 반복 구조가 확정됐을 때 자동화 도구나 API 연동을 검토하는 순서가 효율적입니다.

    FAQ

    1. 회사 프로젝트 데이터를 Perplexity에 그대로 입력해도 되나요?

    회사 보안 규정과 외부 AI 서비스 이용 지침을 먼저 확인해야 합니다. 고객명, 직원 개인정보, 계약 조건, 비공개 매출, 원가, 인증정보, 내부 시스템 주소 등은 입력하지 않는 것이 안전합니다. 분석에는 ‘거래처 A’, ‘담당 부서’, ‘승인 필요’처럼 식별이 어려운 표현을 사용하고, 꼭 필요한 열만 전달하세요. 외부 AI 사용이 금지된 회사라면 데이터 자체를 입력하지 말고 빈 템플릿과 가상 데이터로 화면 구조만 설계해야 합니다.

    2. Perplexity가 만든 분석 결과를 그대로 보고해도 되나요?

    그대로 보고하기보다 원본 데이터와 대조해야 합니다. 특히 평균 진행률, 마감일까지 남은 날짜, 지연 업무 수, 담당자 판단은 오류 가능성이 있습니다. AI가 원문에 없는 원인이나 담당자를 추가했다면 삭제하고 ‘확인 필요’로 바꾸세요. 최종 책임은 보고서를 작성하고 승인하는 조직에 있습니다.

    3. 프로젝트마다 진행률 기준이 달라서 숫자를 믿기 어렵습니다. 어떻게 해야 하나요?

    진행률 입력 기준을 먼저 통일해야 합니다. 예를 들어 0%는 미착수, 30%는 초안 작성, 70%는 내부 검토, 90%는 승인 대기, 100%는 최종 산출물 등록 완료로 정의할 수 있습니다. 프로젝트 성격상 숫자화가 어렵다면 진행률 대신 ‘예정·진행 중·검토 중·완료·지연’ 상태와 다음 행동을 중심으로 대시보드를 구성하는 편이 더 정확합니다.


  • AI와 Google Apps Script로 반복적인 엑셀 데이터 정리 자동화하기

    AI와 Google Apps Script로 반복적인 엑셀 데이터 정리 자동화하기

    매일 20분씩 하던 엑셀 정리, 버튼 한 번으로 끝내기

    매일 아침 전날 실적 파일을 열어 다음과 같은 작업을 반복하는 직장인이 많습니다.

    • 이름과 부서명 앞뒤의 불필요한 공백 삭제
    • 휴대전화 번호 형식 통일
    • 금액에 포함된 쉼표와 ‘원’ 문자 제거
    • 처리 상태가 비어 있는 행에 ‘확인 필요’ 입력
    • 중복된 접수번호 표시

    데이터가 20행이라면 손으로 처리할 수 있습니다. 하지만 매일 300행, 500행씩 쌓이면 단순 정리에만 상당한 시간이 들어갑니다. 더 큰 문제는 복사와 붙여넣기를 반복하다가 행을 잘못 지우거나 숫자 형식을 바꾸는 실수가 생긴다는 점입니다.

    이 글에서는 엑셀 파일을 Google 스프레드시트로 열고, ( ( (자세히 보기)자세히 보기)자세히 보기)Google Apps Script로 ‘데이터 정리’ 메뉴를 만들어 한 번의 클릭으로 수백 행을 정리하는 과정을 실제 예시와 함께 설명합니다. 코드를 이해하기 위해 프로그래밍을 따로 공부할 필요는 없습니다. 예제의 열 이름만 현재 업무 파일에 맞게 바꾸면 바로 시험할 수 있습니다.

    먼저 자동화할 업무 장면을 정해보겠습니다

    아래와 같은 일일 접수 현황을 매일 전달받는 상황을 가정하겠습니다.

    정리 전 원본 데이터

    접수번호 담당자 부서 연락처 처리금액 상태
    A-1001  박지훈   영업1팀 01012345678 1,250,000원 완료
    A-1002 이서연  고객 지원팀  010-9876-5432 850000
    A-1002  최민수 영업1팀 010 5555 1111 320,000 원 처리중

    이 표에는 눈으로는 쉽게 보이지만 집계와 필터링을 방해하는 문제가 섞여 있습니다.

    • 담당자와 부서명에 공백이 포함되어 있습니다.
    • 연락처 형식이 세 가지로 다릅니다.
    • 처리금액이 숫자가 아닌 문자로 저장될 수 있습니다.
    • 상태가 비어 있는 행이 있습니다.
    • 접수번호 A-1002가 중복되었습니다.

    목표는 이 데이터를 다음과 같이 바꾸는 것입니다.

    버튼 클릭 후 결과

    접수번호 담당자 부서 연락처 처리금액 상태 중복 여부
    A-1001 박지훈 영업1팀 010-1234-5678 1250000 완료 정상
    A-1002 이서연 고객 지원팀 010-9876-5432 850000 확인 필요 중복
    A-1002 최민수 영업1팀 010-5555-1111 320000 처리중 중복
    원본 데이터가 정리된 표로 변환되는 자동화 흐름

    1단계: 엑셀 파일을 Google 스프레드시트로 열기

    Google Apps Script는 Google 스프레드시트 안에서 작동합니다. 기존 엑셀 파일이 있다면 다음 순서로 변환합니다.

    1. Google Drive에 접속합니다.
    2. 엑셀 파일을 Drive에 업로드합니다.
    3. 업로드한 파일을 마우스 오른쪽 버튼으로 클릭합니다.
    4. 연결 앱 → Google 스프레드시트를 선택합니다.
    5. 원본과 구분할 수 있도록 파일명을 ‘일일접수현황_자동정리’처럼 변경합니다.

    처음부터 원본 파일에 적용하지 말고, 반드시 복사본에서 시험하는 편이 안전합니다. 자동화 코드에 오류가 있더라도 원본을 보존할 수 있기 때문입니다.

    실무 적용 전 확인: 회사에서 Google Drive 사용을 허용하지 않거나 외부 클라우드 업로드를 제한한다면, 실제 고객·직원 데이터를 올리지 마십시오. 이 경우 가상의 이름과 번호로 만든 테스트 파일에서만 구조를 검증한 뒤 사내 보안 담당 부서의 승인을 받아야 합니다.

    2단계: Apps Script 편집기 열기

    1. 자동화할 Google 스프레드시트를 엽니다.
    2. 상단 메뉴에서 확장 프로그램 → Apps Script를 누릅니다.
    3. 새 창에 기본으로 표시된 코드를 모두 지웁니다.
    4. 아래 스크립트를 복사해 붙여넣습니다.

    바로 사용할 수 있는 데이터 정리 스크립트

    function onOpen() { SpreadsheetApp.getUi() .createMenu('업무 자동화') .addItem('데이터 정리 실행', 'cleanDailyData') .addToUi(); } function cleanDailyData() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const lastRow = sheet.getLastRow(); const lastColumn = sheet.getLastColumn(); if (lastRow < 2) { SpreadsheetApp.getUi().alert('정리할 데이터가 없습니다.'); return; } const range = sheet.getRange(1, 1, lastRow, lastColumn); const values = range.getValues(); const headers = values[0].map(header => String(header).trim()); const receiptIndex = headers.indexOf('접수번호'); const nameIndex = headers.indexOf('담당자'); const departmentIndex = headers.indexOf('부서'); const phoneIndex = headers.indexOf('연락처'); const amountIndex = headers.indexOf('처리금액'); const statusIndex = headers.indexOf('상태'); const requiredHeaders = { '접수번호': receiptIndex, '담당자': nameIndex, '부서': departmentIndex, '연락처': phoneIndex, '처리금액': amountIndex, '상태': statusIndex }; const missingHeaders = Object.entries(requiredHeaders) .filter(([name, index]) => index === -1) .map(([name]) => name); if (missingHeaders.length > 0) { SpreadsheetApp.getUi().alert( '필수 열을 찾을 수 없습니다: ' + missingHeaders.join(', ') ); return; } let duplicateIndex = headers.indexOf('중복 여부'); if (duplicateIndex === -1) { duplicateIndex = headers.length; headers.push('중복 여부'); for (let i = 1; i < values.length; i++) { values[i].push(''); } } values[0] = headers; const receiptCounts = {}; for (let i = 1; i < values.length; i++) { const receiptNumber = String(values[i][receiptIndex]).trim(); if (receiptNumber) { receiptCounts[receiptNumber] = (receiptCounts[receiptNumber] || 0) + 1; } } for (let i = 1; i < values.length; i++) { values[i][receiptIndex] = String(values[i][receiptIndex]).trim(); values[i][nameIndex] = String(values[i][nameIndex]).trim(); values[i][departmentIndex] = String(values[i][departmentIndex]) .trim() .replace(/\s+/g, ' '); const phoneDigits = String(values[i][phoneIndex]).replace(/\D/g, ''); if (phoneDigits.length === 11) { values[i][phoneIndex] = phoneDigits.replace( /(\d{3})(\d{4})(\d{4})/, '$1-$2-$3' ); } else if (phoneDigits.length === 10) { values[i][phoneIndex] = phoneDigits.replace( /(\d{3})(\d{3})(\d{4})/, '$1-$2-$3' ); } const amountText = String(values[i][amountIndex]).replace(/[^\d.-]/g, ''); values[i][amountIndex] = amountText === '' ? '' : Number(amountText); if (String(values[i][statusIndex]).trim() === '') { values[i][statusIndex] = '확인 필요'; } else { values[i][statusIndex] = String(values[i][statusIndex]).trim(); } const receiptNumber = values[i][receiptIndex]; values[i][duplicateIndex] = receiptNumber && receiptCounts[receiptNumber] > 1 ? '중복' : '정상'; } sheet .getRange(1, 1, values.length, values[0].length) .setValues(values); sheet .getRange(2, amountIndex + 1, lastRow - 1, 1) .setNumberFormat('#,##0'); sheet.setFrozenRows(1); sheet.autoResizeColumns(1, values[0].length); SpreadsheetApp.getUi().alert( (lastRow - 1) + '개 행의 데이터 정리가 완료되었습니다.' ); }

    붙여넣은 뒤 상단의 저장 아이콘을 누르고 프로젝트 이름을 ‘일일 데이터 정리’로 지정합니다.

    3단계: 스크립트를 처음 실행하고 권한 승인하기

    처음 한 번은 스크립트 실행 권한을 승인해야 합니다.

    1. Apps Script 편집기 상단의 함수 선택란에서 cleanDailyData를 선택합니다.
    2. 실행 버튼을 누릅니다.
    3. 권한 확인 창이 나타나면 사용 중인 Google 계정을 선택합니다.
    4. 스크립트가 현재 스프레드시트를 수정하도록 승인합니다.

    권한 승인 후 스프레드시트 화면으로 돌아와 새로고침합니다. 상단 메뉴에 업무 자동화가 추가됩니다.

    이제 매일 데이터를 붙여넣은 뒤 다음 두 번의 클릭만 하면 됩니다.

    업무 자동화 → 데이터 정리 실행

    정리가 끝나면 ‘500개 행의 데이터 정리가 완료되었습니다’와 같은 안내 창이 표시됩니다.

    스프레드시트의 자동화 메뉴를 실행하는 화면

    스크립트가 실제로 처리하는 작업

    코드 전체를 해석할 필요는 없지만, 어떤 기준으로 원본이 바뀌는지는 알고 있어야 합니다.

    대상 열 입력 예시 정리 결과
    담당자 “ 박지훈 ” “박지훈”
    부서 “고객  지원팀 ” “고객 지원팀”
    연락처 “010 1234 5678” “010-1234-5678”
    처리금액 “1,250,000원” 숫자 1,250,000
    상태 빈칸 “확인 필요”
    접수번호 같은 번호가 두 번 등장 중복 여부 열에 “중복” 표시

    특히 처리금액을 단순히 보기 좋은 문자로 바꾸는 것이 아니라 실제 숫자 형식으로 변환한다는 점이 실무에서 유용합니다. 그래야 합계, 평균, 피벗 테이블, 차트에서 정상적으로 계산됩니다.

    대부분 놓치는 부분: 열 순서가 바뀌어도 작동하게 만들기

    간단한 자동화 예제는 흔히 “B열은 담당자, C열은 부서”처럼 열 위치를 고정합니다. 하지만 실무 파일은 작성자나 시스템에 따라 열 순서가 바뀔 수 있습니다.

    예를 들어 이번 주에는 연락처가 D열에 있었지만, 다음 주 파일에서는 신규 항목이 추가되어 E열로 밀릴 수 있습니다. 열 번호를 기준으로 만든 코드는 이때 엉뚱한 데이터를 수정합니다.

    위 스크립트는 열 번호가 아니라 첫 번째 행의 제목을 읽습니다.

    const phoneIndex = headers.indexOf('연락처'); const amountIndex = headers.indexOf('처리금액');

    따라서 ‘연락처’ 열이 D열에서 F열로 이동해도 제목이 같다면 정상적으로 찾아갑니다. 반대로 필수 제목이 빠졌다면 자동 정리를 중단하고 누락된 열 이름을 안내합니다. 잘못된 열을 조용히 수정하는 것보다, 실행을 멈추고 문제를 알려주는 방식이 업무용 자동화에 더 안전합니다.

    현재 업무 파일에 맞게 수정하는 방법

    열 이름이 다를 때

    회사 파일에서 ‘담당자’ 대신 ‘담당자명’을 사용한다면 아래 한 줄을 찾습니다.

    const nameIndex = headers.indexOf('담당자');

    다음과 같이 제목만 바꿉니다.

    const nameIndex = headers.indexOf('담당자명');

    아래의 필수 열 목록에서도 같은 이름으로 변경합니다.

    '담당자명': nameIndex

    빈 상태를 다른 문구로 표시할 때

    빈칸을 ‘미처리’로 표시하려면 다음 부분을 찾습니다.

    values[i][statusIndex] = '확인 필요';

    아래처럼 바꿉니다.

    values[i][statusIndex] = '미처리';

    ChatGPT에 수정 요청하는 실제 입력 예시

    코드를 직접 수정하기 어렵다면 회사의 실제 데이터가 아닌 가상의 열 구조를 사용해 ChatGPT에 요청할 수 있습니다.

    입력:
    아래 Google Apps Script에서 ‘담당자’ 열을 ‘검수자’로 바꾸고, ‘상태’가 비어 있으면 ‘검수 대기’가 입력되도록 수정해 주세요. 다른 기능은 변경하지 말고, 수정된 전체 코드를 출력해 주세요.

    이처럼 변경할 열 이름과 원하는 결과를 구체적으로 적으면 전체 코드를 다시 받을 수 있습니다. 고객명, 전화번호, 주문번호처럼 실제 업무 데이터는 함께 입력하지 않아도 됩니다.

    실무 적용 전 10행으로 먼저 시험하기

    자동화는 수백 행에 바로 적용하기보다 작은 표로 검증하는 것이 안전합니다. 아래 여섯 가지 상황을 포함한 테스트 데이터를 만들어 보십시오.

    1. 정상적으로 입력된 행
    2. 담당자 앞뒤에 공백이 있는 행
    3. 연락처에 하이픈이 없는 행
    4. 금액에 ‘원’과 쉼표가 포함된 행
    5. 상태가 비어 있는 행
    6. 접수번호가 중복된 두 행

    실행 후에는 단순히 화면만 보지 말고 다음 항목도 확인합니다.

    • 금액 셀을 선택했을 때 숫자로 인식되는지
    • 원래 정상인 값이 바뀌지 않았는지
    • 빈 행이나 제목 행까지 수정되지 않았는지
    • 중복 기준이 실제 업무 규칙과 일치하는지
    • 같은 스크립트를 두 번 실행해도 결과가 망가지지 않는지

    예를 들어 접수번호가 같더라도 접수일자가 다르면 정상으로 봐야 하는 회사가 있습니다. 이런 경우에는 접수번호만으로 중복을 판단하면 안 됩니다. ‘접수번호+접수일자’를 묶어 비교하도록 기준을 수정해야 합니다. 자동화의 정확도는 코드 길이보다 회사에서 실제로 사용하는 판단 기준을 얼마나 정확하게 반영했는지에 달려 있습니다.

    엑셀 파일로 다시 내려받는 방법

    정리한 결과를 사내 시스템에 업로드하거나 동료에게 엑셀 형식으로 전달해야 한다면 다음 순서로 저장합니다.

    1. Google 스프레드시트에서 파일을 누릅니다.
    2. 다운로드 → Microsoft Excel(.xlsx)을 선택합니다.
    3. 내려받은 파일을 열어 날짜, 금액, 수식 형식을 확인합니다.
    4. 원본과 구분되는 파일명으로 저장합니다.

    매크로가 포함된 엑셀 파일로 변환되는 것은 아닙니다. Apps Script는 Google 스프레드시트에서 실행되고, 내려받은 엑셀 파일에는 정리된 결과만 들어갑니다. 다음 날 새 데이터를 처리하려면 원래의 Google 스프레드시트에서 다시 실행해야 합니다.

    FAQ

    1. 고객 이름과 연락처가 포함된 파일을 Google 스프레드시트에 올려도 되나요?

    회사의 보안 규정과 개인정보 처리 기준을 먼저 확인해야 합니다. 고객명, 연락처, 주소, 사번, 급여 정보가 포함된 파일은 개인 판단으로 외부 클라우드에 업로드하지 않는 것이 안전합니다. 회사가 승인한 Google Workspace 계정과 저장 정책이 있는 경우에만 정해진 범위에서 사용하십시오. 승인 여부가 불분명하다면 가상의 데이터로 기능만 검증하고, 실제 적용 전 보안 담당자나 관리자에게 확인하는 방식이 적절합니다.

    2. 스크립트를 실행했는데 ‘필수 열을 찾을 수 없습니다’라는 메시지가 나옵니다.

    첫 번째 행의 제목이 코드와 정확히 일치하는지 확인하십시오. 코드가 ‘처리금액’을 찾도록 되어 있는데 파일에는 ‘처리 금액’ 또는 ‘결제금액’으로 적혀 있으면 다른 제목으로 인식합니다. 파일의 제목을 코드에 맞추거나, 코드의 headers.indexOf('처리금액') 부분을 실제 제목으로 변경하면 됩니다. 제목 앞뒤의 공백은 자동으로 제거하지만 띄어쓰기와 단어 자체의 차이는 구분합니다.

    3. 회사 엑셀 파일의 수식과 서식도 그대로 유지되나요?

    이 예제는 셀의 값을 읽어 정리한 뒤 다시 입력하는 방식입니다. 대상 범위 안에 복잡한 수식이 있으면 계산 결과가 값으로 바뀌거나, 업무 파일의 구조에 따라 예상하지 못한 변경이 생길 수 있습니다. 따라서 원본 복사본에서 먼저 실행하고, 자동화 대상 시트에는 가능한 한 원본 데이터 값만 두는 편이 안전합니다. 수식 열을 유지해야 한다면 데이터 입력 영역과 계산 영역을 분리하거나, 스크립트가 특정 열만 수정하도록 범위를 제한해야 합니다.


  • AI와 구글 스프레드시트로 업무 데이터 시각화 10분 만에 완성하기

    AI와 구글 스프레드시트로 업무 데이터 시각화 10분 만에 완성하기

    숫자만 가득한 보고용 표, 10분 안에 차트로 바꾸는 방법

    월요일 오전, 팀장에게 지난 6개월간의 매출 실적을 보고해야 하는 상황을 가정해 보겠습니다. 구글 스프레드시트에는 월별 매출과 목표가 정리되어 있지만, 숫자만 나열된 표로는 어느 달의 실적이 좋았는지 한눈에 파악하기 어렵습니다.

    월 매출 목표 실제 매출 광고비
    1월 45,000,000 42,000,000 5,500,000
    2월 47,000,000 49,000,000 6,000,000
    3월 50,000,000 53,000,000 6,800,000
    4월 52,000,000 48,000,000 6,200,000
    5월 55,000,000 58,000,000 7,100,000
    6월 58,000,000 64,000,000 7,800,000

    이럴 때 처음부터 AI에게 차트를 만들어 달라고 맡기기보다, 역할을 나누는 편이 빠르고 안정적입니다.

    • ChatGPT: 데이터 구조를 확인하고 적절한 차트와 계산식을 제안
    • 구글 스프레드시트: 실제 계산, 차트 생성, 공유와 수정 담당

    AI가 판단을 돕고, 스프레드시트가 결과물을 만드는 구조입니다. 파일 업로드나 복잡한 확장 프로그램 없이도 바로 따라 할 수 있습니다.

    1단계: 예제 데이터를 스프레드시트에 입력합니다

    새 구글 스프레드시트를 열고 A1 셀부터 아래 데이터를 붙여 넣습니다.

    월 매출 목표 실제 매출 광고비
    1월 45000000 42000000 5500000
    2월 47000000 49000000 6000000
    3월 50000000 53000000 6800000
    4월 52000000 48000000 6200000
    5월 55000000 58000000 7100000
    6월 58000000 64000000 7800000

    금액 열을 선택한 뒤 상단 메뉴에서 서식 → 숫자 → 맞춤 숫자 형식을 열고 천 단위 구분 형식을 적용합니다. 입력값 자체에 쉼표나 ‘원’을 직접 넣는 것보다 숫자 형식으로 처리해야 계산 오류를 줄일 수 있습니다.

    분석용 열 두 개를 추가합니다

    E1에는 달성률, F1에는 광고비 대비 매출을 입력합니다.

    E2 셀에는 다음 수식을 넣습니다.

    =IFERROR(C2/B2,0)

    F2 셀에는 다음 수식을 넣습니다.

    =IFERROR(C2/D2,0)

    E2와 F2의 오른쪽 아래 모서리를 아래로 끌어 6월 행까지 수식을 복사합니다. E열은 백분율 형식, F열은 소수점 한 자리 숫자 형식으로 바꾸면 됩니다.

    계산 결과는 다음과 비슷하게 나타납니다.

    월 달성률 광고비 대비 매출
    1월 93.3% 7.6배
    2월 104.3% 8.2배
    3월 106.0% 7.8배
    4월 92.3% 7.7배
    5월 105.5% 8.2배
    6월 110.3% 8.2배
    AI가 데이터 구조를 분석하고 스프레드시트에서 차트로 연결되는 흐름

    2단계: AI에게 ‘차트 제작’이 아니라 ‘차트 설계’를 맡깁니다

    많은 직장인이 AI에 표 전체를 붙여 넣은 뒤 “분석해 줘”라고만 입력합니다. 그러면 결과가 길어지거나, 어떤 차트를 만들어야 하는지 불분명한 답변이 나오기 쉽습니다.

    아래처럼 데이터의 목적과 필요한 결과 형식을 함께 지정해 보겠습니다.

    ChatGPT에 입력할 프롬프트

    아래는 1월부터 6월까지의 매출 목표, 실제 매출, 광고비 데이터입니다.

    이 데이터를 구글 스프레드시트에서 시각화하려고 합니다.
    보고 대상은 팀장이고, 확인하려는 내용은 다음 세 가지입니다.

    목표 대비 실제 매출 추이

    목표를 달성하지 못한 월

    광고비 증가와 매출 증가의 흐름

    다음 형식으로 답해 주세요.

    가장 적합한 차트 2개

    각 차트에 사용할 열

    구글 스프레드시트에서 선택할 차트 유형

    차트 제목

    색상이나 축 설정 시 주의할 점

    보고서에 넣을 3문장 요약

    데이터:
    월, 매출 목표, 실제 매출, 광고비
    1월, 45000000, 42000000, 5500000
    2월, 47000000, 49000000, 6000000
    3월, 50000000, 53000000, 6800000
    4월, 52000000, 48000000, 6200000
    5월, 55000000, 58000000, 7100000
    6월, 58000000, 64000000, 7800000

    AI가 제안하는 결과의 형태

    위와 같이 입력하면 대체로 다음과 같은 설계안을 얻을 수 있습니다.

    차트 1: 목표 대비 실제 매출 추이
    – 사용 열: 월, 매출 목표, 실제 매출
    – 차트 유형: 꺾은선형 차트
    – 제목: 2026년 상반기 목표 대비 매출 추이
    – 설정: 세로축의 최솟값을 0으로 지정하고 목표와 실제 매출을 서로 다른 선으로 표시

    차트 2: 광고비와 실제 매출 변화

    사용 열: 월, 광고비, 실제 매출

    차트 유형: 콤보 차트

    설정: 실제 매출은 막대, 광고비는 선으로 표시하고 광고비를 오른쪽 축에 배치

    보고용 요약
    상반기 실제 매출은 1월과 4월을 제외하고 목표를 초과했습니다. 6월 매출은 6,400만 원으로 가장 높았으며 목표 달성률은 약 110.3%입니다. 광고비가 증가한 기간에 매출도 대체로 상승했지만, 두 값만으로 광고비가 매출 상승의 직접적인 원인이라고 단정하기는 어렵습니다.

    여기서 주목할 부분은 마지막 문장입니다. 광고비와 매출이 함께 증가했다고 해서 광고비가 매출을 올렸다고 바로 결론 내리면 안 됩니다. AI에게 보고용 문장을 요청할 때는 상관관계와 인과관계를 구분해 달라는 조건을 넣는 것이 안전합니다.

    3단계: 구글 스프레드시트에서 첫 번째 차트를 만듭니다

    이제 AI의 제안대로 실제 차트를 생성합니다.

    1. A1부터 C7까지 선택합니다.
    2. 상단 메뉴에서 삽입 → 차트를 누릅니다.
    3. 오른쪽 차트 편집기의 설정에서 차트 유형을 꺾은선형 차트로 변경합니다.
    4. X축이 ‘월’, 계열이 ‘매출 목표’와 ‘실제 매출’인지 확인합니다.
    5. 맞춤설정 → 차트 및 축 제목에서 제목을 입력합니다.

    2026년 상반기 목표 대비 매출 추이

    차트가 이상하게 표시된다면 행/열 전환이 켜져 있는지 확인합니다. 월이 각각의 데이터 계열로 표시된다면 행과 열이 뒤바뀐 경우가 많습니다.

    목표 미달 월을 표에서도 바로 보이게 만듭니다

    차트만으로 끝내지 않고 조건부 서식을 함께 적용하면 보고자가 원본 데이터까지 빠르게 확인할 수 있습니다.

    1. C2:C7 범위를 선택합니다.
    2. 서식 → 조건부 서식을 누릅니다.
    3. 규칙에서 맞춤 수식을 선택합니다.
    4. 아래 수식을 입력합니다.

    =$C2<$B2

    배경색은 지나치게 강한 빨간색보다 연한 강조색을 선택하는 편이 좋습니다. 적용하면 목표보다 실제 매출이 낮은 1월과 4월 셀이 자동으로 표시됩니다.

    4단계: 광고비와 매출은 콤보 차트로 비교합니다

    광고비는 550만 원에서 780만 원, 매출은 4,200만 원에서 6,400만 원 수준입니다. 단위 차이가 커서 일반 막대 차트 하나에 넣으면 광고비가 거의 보이지 않을 수 있습니다.

    이럴 때는 콤보 차트와 보조축을 사용합니다.

    1. A1:A7을 선택한 상태에서 Ctrl 키를 누르고 C1:D7을 추가로 선택합니다.
    2. 삽입 → 차트를 누릅니다.
    3. 차트 유형을 콤보 차트로 변경합니다.
    4. 실제 매출 계열은 세로 막대로 설정합니다.
    5. 광고비 계열은 선으로 설정합니다.
    6. 맞춤설정 → 계열에서 광고비를 선택하고 축을 오른쪽 축으로 바꿉니다.

    차트 제목은 다음처럼 구체적으로 작성합니다.

    월별 광고비와 실제 매출 변화

    ‘매출 현황’처럼 넓은 제목보다 기간과 비교 항목을 제목에 넣어야 차트를 보고 바로 의미를 파악할 수 있습니다.

    업무 보고서에 매출 차트를 배치하고 검토하는 모습

    5단계: 완성된 차트를 보고용 문장으로 바꿉니다

    차트를 완성한 뒤에는 AI에게 처음 데이터를 다시 설명할 필요가 없습니다. 계산된 결과와 관찰한 사실만 전달해 보고 문장을 다듬습니다.

    입력 예시

    다음 내용을 팀장에게 보고할 수 있는 짧은 문장으로 정리해 주세요.
    과장된 표현은 쓰지 말고, 숫자가 확인되는 내용과 추가 확인이 필요한 내용을 구분해 주세요.

    1월 실제 매출 4,200만 원, 목표 달성률 93.3%

    4월 실제 매출 4,800만 원, 목표 달성률 92.3%

    6월 실제 매출 6,400만 원, 목표 달성률 110.3%

    광고비는 1월 550만 원에서 6월 780만 원으로 증가

    광고비와 매출이 전반적으로 함께 증가했지만 원인 관계는 확인하지 않음

    출력 형식:

    한 줄 결론

    확인된 사실 2문장

    다음에 확인할 항목 1문장

    결과 예시

    한 줄 결론: 상반기 매출은 1월과 4월의 목표 미달 이후 회복했으며, 6월에는 목표를 10.3% 초과했습니다.

    확인된 사실: 1월과 4월의 목표 달성률은 각각 93.3%, 92.3%였고, 6월 실제 매출은 6,400만 원으로 집계 기간 중 가장 높았습니다. 광고비는 1월 550만 원에서 6월 780만 원으로 증가했으며 매출도 전반적으로 상승했습니다.

    추가 확인: 광고비 증가가 매출 상승에 미친 영향을 판단하려면 캠페인별 전환율과 신규 고객 매출을 함께 확인해야 합니다.

    이렇게 작성하면 AI가 데이터를 근거로 결론을 정리하되, 확인하지 않은 원인을 임의로 만들어 내는 일을 줄일 수 있습니다.

    대부분 놓치는 부분: 원본 표와 차트용 표를 분리하세요

    실무에서는 원본 데이터 옆에 수식과 차트를 계속 추가하다가 표 구조가 복잡해지는 경우가 많습니다. 다음 달 데이터를 추가했는데 차트 범위가 늘어나지 않거나, 정렬 과정에서 수식이 어긋나는 문제도 발생합니다.

    조금 더 안정적으로 운영하려면 시트를 세 개로 나눕니다.

    시트 이름 역할 입력 원칙
    원본데이터 월별 실적 보관 숫자와 분류값만 입력
    분석 달성률과 효율 계산 수식과 보조 열 사용
    대시보드 차트와 보고 요약 배치 원본 수치를 직접 수정하지 않음

    처음에는 시트 하나로 시작해도 괜찮지만, 매달 반복해서 사용하는 문서라면 이 구조가 수정 실수를 줄여 줍니다. 특히 여러 부서가 함께 보는 파일에서는 원본 데이터의 편집 권한을 제한하고 대시보드만 공유하는 방식도 고려할 수 있습니다.

    AI 연동 과정에서 자주 발생하는 오류와 해결 방법

    오류 1. AI가 제안한 수식이 스프레드시트에서 오류로 표시됩니다

    지역 설정에 따라 함수의 인수 구분자가 쉼표가 아닌 세미콜론으로 표시되는 경우가 있습니다. 먼저 스프레드시트의 파일 → 설정 → 언어 및 지역을 확인합니다.

    또한 AI가 열 위치를 잘못 이해할 수 있으므로 “목표는 B열, 실제 매출은 C열”처럼 열 위치를 프롬프트에 함께 적는 편이 좋습니다.

    오류 2. 금액이 숫자가 아니라 텍스트로 인식됩니다

    셀에 ‘42,000,000원’처럼 단위까지 직접 입력하면 계산이나 차트 생성이 제대로 되지 않을 수 있습니다. 숫자만 입력한 뒤 표시 형식으로 원 단위를 적용합니다.

    숫자가 왼쪽 정렬되어 있거나 SUM 함수 결과가 0으로 나온다면 텍스트로 저장됐을 가능성이 있습니다. 해당 열을 선택하고 서식 → 숫자 → 숫자를 적용한 뒤 다시 확인합니다.

    오류 3. 차트에 새로 추가한 월이 반영되지 않습니다

    차트의 데이터 범위가 A1:C7처럼 고정되어 있다면 7월 데이터를 추가해도 자동으로 포함되지 않습니다. 차트 편집기에서 데이터 범위를 A:C처럼 열 전체로 지정하거나, 데이터가 누적될 때마다 범위를 확인합니다.

    다만 열 전체를 선택하면 빈 셀이나 중간 합계까지 포함될 수 있으므로, 실제 업무 문서에서는 원본 표 안에 합계 행을 섞지 않는 편이 안전합니다.

    오류 4. AI가 실제 데이터에 없는 내용을 분석합니다

    “매출 상승은 광고 성과 개선 때문이다”처럼 데이터만으로 확인할 수 없는 설명이 포함될 수 있습니다. 프롬프트에 다음 조건을 추가합니다.

    제공된 숫자로 직접 확인할 수 없는 원인은 추정하지 마세요. 추정이 필요한 내용은 ‘추가 확인 필요’로 구분해 주세요.

    10분 실행 순서 요약

    1. 0~2분: 월, 목표, 실적, 비용 데이터를 스프레드시트에 입력합니다.
    2. 2~4분: 달성률과 광고비 대비 매출 수식을 추가합니다.
    3. 4~6분: 데이터를 AI에 붙여 넣고 차트 종류와 보고 문장을 요청합니다.
    4. 6~8분: 꺾은선형 차트와 콤보 차트를 생성합니다.
    5. 8~10분: 목표 미달 조건부 서식과 보고용 요약을 완성합니다.

    데이터가 이미 정리되어 있다면 10분 안에도 충분히 가능합니다. 데이터가 여러 표에 흩어져 있거나 날짜·금액 형식이 제각각이라면 시각화보다 정리 작업에 시간이 더 필요할 수 있습니다.

    FAQ

    Q1. 회사 매출 데이터를 ChatGPT에 그대로 붙여 넣어도 되나요?

    사내 보안 규정과 사용 중인 AI 서비스의 데이터 처리 정책을 먼저 확인해야 합니다. 고객명, 거래처명, 직원 정보, 계약 금액처럼 외부 공개가 제한된 정보는 그대로 입력하지 않는 편이 안전합니다.

    연습이나 차트 설계가 목적이라면 실제 숫자를 일정 비율로 변환하거나, 거래처명을 A사·B사처럼 익명화해 입력할 수 있습니다. 구조만 필요한 경우에는 실제 데이터를 넣지 않고 “월, 목표 매출, 실제 매출, 광고비로 구성된 표”라고 설명해도 됩니다.

    Q2. AI가 추천한 차트가 항상 가장 적합한가요?

    AI의 추천은 시작점으로 활용해야 합니다. 보고 목적에 따라 같은 데이터도 다른 차트가 적합할 수 있습니다. 월별 변화를 보려면 꺾은선형 차트, 항목 간 크기를 비교하려면 막대 차트, 단위가 다른 두 지표를 함께 보려면 콤보 차트가 이해하기 쉽습니다.

    최종적으로는 차트를 처음 보는 동료가 5초 안에 비교 대상과 결론을 파악할 수 있는지 확인하는 것이 좋습니다.

    Q3. AI 확장 프로그램을 설치해야 자동화할 수 있나요?

    이 글의 방법은 별도 확장 프로그램 없이 사용할 수 있습니다. AI에는 차트 설계, 수식 제안, 보고 문장 정리를 맡기고 실제 계산과 차트 생성은 구글 스프레드시트에서 진행합니다.

    확장 프로그램은 반복 작업을 줄일 수 있지만, 회사 계정에서는 외부 서비스의 문서 접근 권한이 문제가 될 수 있습니다. 설치 전에는 관리자의 승인 여부, 접근 가능한 파일 범위, 데이터 저장 방식, 삭제 방법을 확인해야 합니다.


  • Asana와 Notion 연동하기: 업무 진행 상황과 협업 문서를 한 화면에서 관리하는 방법

    Asana와 Notion 연동하기: 업무 진행 상황과 협업 문서를 한 화면에서 관리하는 방법

    업무는 Asana에 있는데, 회의할 때마다 Notion을 다시 정리하고 있다면 ( ( (자세히 보기)자세히 보기)자세히 보기)

    프로젝트 담당자가 금요일 오후 주간회의를 준비하는 장면을 떠올려 보겠습니다. Asana에는 담당자와 마감일이 정리되어 있지만, 회의 자료는 Notion에 있습니다. 담당자는 두 도구를 번갈아 열어 다음 내용을 다시 적습니다.

    Asana 원본
    상세페이지 초안 작성 · 담당: 콘텐츠팀 · 마감: 7월 24일 · 상태: 진행 중

    Notion에 다시 입력한 내용
    상세페이지 초안 작성은 현재 진행 중이며 7월 24일까지 완료할 예정입니다.

    문제는 입력 시간이 아닙니다. Asana에서 마감일이나 상태가 바뀌면 Notion에 옮겨 적은 정보는 곧바로 오래된 정보가 됩니다. 회의 참석자는 어느 쪽이 최신인지 다시 확인해야 합니다.

    이럴 때 두 도구의 역할을 합치기보다 명확히 나누는 편이 효과적입니다.

    • Asana: 담당자, 마감일, 진행 상태처럼 계속 변하는 실행 정보
    • Notion: 회의록, 의사결정 배경, 업무 지침처럼 맥락이 필요한 문서

    Notion의 Asana 연동 기능을 사용하면 Asana 프로젝트와 작업을 Notion에서 링크 미리보기 또는 동기화된 데이터베이스 형태로 확인할 수 있습니다. 반대 방향으로는 Asana 규칙을 이용해 특정 조건에서 Notion 페이지를 만들고 해당 페이지를 Asana 작업에 연결하는 방식도 지원됩니다. 다만 회사 요금제와 관리자 설정에 따라 표시되는 기능이 다를 수 있으므로 실제 적용 전에 팀 워크스페이스에서 확인해야 합니다.

    먼저 정해야 할 운영 원칙: 업무 상태는 Asana만 수정합니다

    연동 전에 팀원들과 다음 한 문장부터 합의하는 것이 좋습니다.

    “업무 상태와 마감일은 Asana에서만 수정하고, Notion은 현황 조회와 회의 기록에 사용한다.”

    이 원칙이 없으면 같은 업무를 Asana와 Notion에서 각각 수정하게 됩니다. 연동은 되었지만 어느 데이터가 기준인지 모르는 상황이 생길 수 있습니다.

    예를 들어 신제품 출시 프로젝트를 다음과 같이 나눌 수 있습니다.

    관리 항목 기준 도구 예시
    담당자와 마감일 Asana 광고 소재 검수 · 마감 7월 25일
    진행 상태 Asana 대기, 진행 중, 검토 중, 완료
    회의록 Notion 7월 22일 출시 점검회의
    업무 배경과 결정 사항 Notion 광고 문구 변경 이유, 승인 기준
    실행 업무 연결 두 도구 연동 회의록에서 Asana 작업 현황 확인

    방법 1. Asana 프로젝트를 Notion 회의 페이지에 연결하기

    가장 먼저 적용하기 좋은 방식입니다. Notion의 주간회의 페이지에서 Asana 프로젝트의 최신 작업을 확인하도록 구성합니다.

    1단계: Asana에서 연결할 프로젝트를 정리합니다

    Asana에서 연동할 프로젝트를 열고 작업 이름, 담당자, 마감일, 상태를 확인합니다. 처음부터 모든 프로젝트를 연결하지 말고, 현재 진행 중인 프로젝트 하나로 시험하는 편이 안전합니다.

    예시 프로젝트는 다음과 같습니다.

    작업 담당 마감일 상태
    제품 소개 문구 확정 마케팅팀 7월 23일 검토 중
    상세페이지 이미지 제작 디자인팀 7월 25일 진행 중
    판매 페이지 등록 운영팀 7월 28일 대기

    2단계: Asana 프로젝트 링크를 복사합니다

    1. Asana에서 연결할 프로젝트를 엽니다.
    2. 브라우저 주소창의 프로젝트 주소를 복사합니다.
    3. 개별 작업만 보여주려면 해당 작업을 열어 작업 주소를 복사합니다.

    3단계: Notion 페이지에 링크를 붙여넣습니다

    1. Notion에서 ‘신제품 출시 주간회의’ 페이지를 엽니다.
    2. ‘실행 현황’이라는 제목을 만듭니다.
    3. 복사한 Asana 링크를 빈 줄에 붙여넣습니다.
    4. 표시되는 선택지에서 미리보기 또는 데이터베이스 형태의 연결 방식을 선택합니다.
    5. 처음 연결하는 경우 Asana 계정 로그인과 접근 권한 승인을 진행합니다.

    계정 연결이 완료되면 단순한 인터넷 주소 대신 프로젝트명이나 작업 상태를 확인할 수 있는 형태로 표시됩니다. Notion에서 제공하는 Asana 연동은 프로젝트와 작업의 상태를 링크 미리보기로 확인하거나, 동기화된 데이터베이스에서 필터와 보기를 적용하는 용도로 사용할 수 있습니다.

    Asana의 업무 정보가 Notion 대시보드로 연결되는 흐름

    4단계: 회의용 화면으로 필터링합니다

    연동한 데이터를 모두 보여주면 회의 페이지가 복잡해집니다. 회의에서 확인할 항목만 남기는 것이 좋습니다.

    예를 들어 다음 조건으로 보기를 구성합니다.

    • 상태가 ‘완료’가 아닌 작업
    • 마감일이 이번 주 안에 있는 작업
    • 우선순위가 ‘높음’인 작업

    그 결과, Notion 회의 페이지에는 다음 두 작업만 남습니다.

    이번 주 확인 대상

    ① 제품 소개 문구 확정 · 7월 23일 · 검토 중
    ② 상세페이지 이미지 제작 · 7월 25일 · 진행 중

    이제 회의 진행자는 전체 업무를 읽는 대신 지연 가능성이 있는 작업만 확인할 수 있습니다. 회의 중 상태가 바뀌었다면 Notion에 다시 적지 않고 Asana 원본을 수정합니다.

    방법 2. Asana 작업에서 Notion 문서를 바로 열기

    두 번째 방식은 실행 담당자가 Asana를 보다가 필요한 기획서나 회의록을 바로 여는 구조입니다.

    예를 들어 Asana에 ‘제품 소개 문구 확정’이라는 작업이 있고, 실제 문구 작성 기준은 Notion의 ‘신제품 메시지 가이드’ 페이지에 있다고 가정하겠습니다.

    직접 연결하는 기본 방법

    1. Notion에서 연결할 문서 페이지를 엽니다.
    2. 페이지의 공유 메뉴에서 링크를 복사합니다.
    3. Asana에서 관련 작업을 엽니다.
    4. 작업 설명 또는 관련 링크 영역에 Notion 주소를 붙여넣습니다.
    5. 링크 옆에 용도를 적습니다. 예: ‘문구 작성 기준 문서’

    연결 전에는 담당자가 메신저에서 기획서를 검색해야 했지만, 연결 후에는 Asana 작업 안에서 바로 문서를 열 수 있습니다.

    연결 전
    “지난주에 공유한 문구 기준 문서가 어디에 있나요?”

    연결 후
    Asana 작업 열기 → ‘문구 작성 기준 문서’ 선택 → Notion 문서 확인

    Asana 규칙으로 Notion 페이지 생성을 자동화하는 방법

    반복 프로젝트에서는 Asana의 규칙 기능을 이용할 수 있습니다. 예를 들어 작업이 ‘기획 확정’ 섹션으로 이동하면 Notion 페이지를 만들도록 설정하는 방식입니다.

    1. Asana 프로젝트에서 사용자 지정 또는 규칙 메뉴를 엽니다.
    2. 새 규칙 만들기를 선택합니다.
    3. 트리거를 ‘작업이 특정 섹션으로 이동했을 때’로 설정합니다.
    4. 대상 섹션을 ‘기획 확정’으로 지정합니다.
    5. 작업 항목에서 Notion 페이지 생성과 관련된 옵션을 선택합니다.
    6. 페이지를 생성할 Notion 위치와 사용할 문서 양식을 지정합니다.
    7. 테스트용 작업 하나를 이동해 페이지 생성 여부를 확인합니다.

    Asana 공식 도움말에 따르면 특정 작업이 섹션으로 이동하는 등의 조건을 기준으로 Notion 페이지를 자동 생성하고, 생성된 페이지를 관련 Asana 작업에 추가하는 흐름을 구성할 수 있습니다. 해당 기능은 계정과 요금제, 조직 관리자의 앱 허용 정책에 따라 이용 가능 여부가 달라질 수 있습니다.

    AI를 더하는 방법: 회의록에서 실행 업무만 추출하기

    Asana와 Notion을 연결했다고 해서 모든 업무가 자동으로 정리되는 것은 아닙니다. 실제로 시간이 많이 드는 구간은 회의록에 섞여 있는 결정 사항과 실행 업무를 구분하는 과정입니다.

    Notion에 회의 내용을 기록한 뒤 회사에서 사용이 허용된 AI 도구에 다음과 같이 입력할 수 있습니다.

    실제 입력 예시

    입력

    아래 회의록에서 실행이 필요한 업무만 추출해 주세요.
    결과는 ‘업무명 / 담당 부서 / 마감일 / 완료 조건’ 표로 작성하세요.
    담당자나 날짜가 없는 항목은 추측하지 말고 ‘확인 필요’라고 표시하세요.

    [회의록]
    상세페이지의 제품 사진이 어둡다는 의견이 나왔다. 디자인팀에서 밝기를 조정한 시안을 금요일까지 다시 공유한다. 제품 소개 문구는 법무 검토 후 확정한다. 검토 일정은 아직 정하지 않았다. 운영팀은 다음 주 월요일까지 판매 페이지 초안을 등록한다.

    AI 결과 예시

    업무명 담당 부서 마감일 완료 조건
    제품 사진 밝기 조정 디자인팀 금요일 수정 시안 공유
    제품 소개 문구 법무 검토 확인 필요 확인 필요 법무 검토 완료
    판매 페이지 초안 등록 운영팀 다음 주 월요일 초안 등록 완료

    이 표를 그대로 Asana에 등록하기 전에 ‘금요일’과 ‘다음 주 월요일’을 실제 날짜로 바꾸고 담당자를 확인합니다. AI가 만든 결과는 업무 등록 초안으로 사용하고, 최종 담당자와 기한은 회의 참석자가 검토해야 합니다.

    회의 내용을 확인하며 담당 업무와 마감일을 정리하는 팀원들

    협업이 실제로 어떻게 달라지는가

    연동 전에는 주간회의 준비가 다음 순서로 진행됩니다.

    1. Asana에서 진행 중인 작업을 찾습니다.
    2. 담당자와 마감일을 Notion 회의록에 다시 적습니다.
    3. 메신저에서 관련 문서 주소를 검색합니다.
    4. 회의 후 결정된 업무를 다시 Asana에 등록합니다.

    연동 후에는 흐름이 단순해집니다.

    1. Notion 회의 페이지에서 연결된 Asana 현황을 확인합니다.
    2. 지연 작업과 이번 주 마감 작업만 필터링합니다.
    3. 각 Asana 작업에서 연결된 Notion 문서를 엽니다.
    4. 회의록을 AI로 정리한 뒤 검토된 실행 항목만 Asana에 등록합니다.

    여기서 많은 팀이 놓치는 부분은 연동 개수보다 수정 권한과 원본 위치를 명확히 정하는 것입니다. 모든 정보를 양쪽에서 수정할 수 있게 만들면 편리해 보이지만, 실제로는 중복 입력과 상태 충돌이 늘어납니다.

    업무 상태는 Asana, 업무 맥락은 Notion이라는 기준을 유지하면 각 도구의 장점을 살리면서도 회의 준비와 자료 검색 과정을 줄일 수 있습니다.

    직장 환경에서 안전하게 적용하는 점검표

    외부 서비스 연동은 편의성뿐 아니라 접근 권한도 함께 검토해야 합니다. 다음 항목을 확인한 뒤 연결하는 것이 좋습니다.

    • 회사에서 Asana와 Notion 사용을 공식적으로 허용하는지 확인합니다.
    • 관리자의 승인 없이 개인 계정과 회사 워크스페이스를 연결하지 않습니다.
    • 전체 워크스페이스 대신 업무에 필요한 프로젝트와 페이지만 연결합니다.
    • 주민등록번호, 계좌번호, 고객 연락처, 인사평가 자료는 연동 대상에서 제외합니다.
    • 퇴사자나 부서 이동자의 접근 권한을 정기적으로 회수합니다.
    • AI에 회의록을 입력할 때 고객명, 계약 금액, 내부 계정 정보 등 민감정보를 제거합니다.
    • 연동 테스트는 실제 고객 데이터가 아닌 예시 프로젝트에서 먼저 진행합니다.

    특히 Notion 페이지 링크가 있다고 해서 모든 사람이 내용을 볼 수 있는 것은 아니며, 반대로 공유 범위를 넓게 설정하면 의도하지 않은 인원이 접근할 수 있습니다. 링크 연결 후에는 팀원이 실제로 열 수 있는지뿐 아니라, 열어서는 안 되는 인원에게 노출되지 않는지도 확인해야 합니다.

    처음 도입할 때는 한 프로젝트만 시험하세요

    처음부터 전사 프로젝트를 연결하면 권한 문제와 중복 데이터가 한꺼번에 발생할 수 있습니다. 아래 순서로 작은 범위에서 시험하는 편이 현실적입니다.

    1. 진행 중인 내부 프로젝트 하나를 선택합니다.
    2. Asana에는 담당자, 마감일, 상태만 정리합니다.
    3. Notion에는 회의록과 결정 사항을 정리합니다.
    4. Notion 회의 페이지에 Asana 프로젝트를 연결합니다.
    5. Asana 작업 세 개에 관련 Notion 문서를 연결합니다.
    6. 일주일 동안 중복 입력과 권한 문제를 기록합니다.
    7. 문제가 없으면 다음 프로젝트로 확대합니다.

    도입 성공 여부는 연결 버튼이 작동하는지가 아니라 다음 질문으로 판단할 수 있습니다.

    “회의 전에 진행 상태를 다시 옮겨 적지 않아도 되는가?”
    “담당자가 업무 화면에서 필요한 문서를 바로 찾을 수 있는가?”
    “팀원들이 어느 도구의 정보를 수정해야 하는지 알고 있는가?”

    세 질문에 모두 그렇다고 답할 수 있다면 Asana와 Notion이 단순히 연결된 상태를 넘어, 실제 업무 흐름 안에서 작동하고 있는 것입니다.

    자주 묻는 질문

    1. Asana와 Notion을 연결하면 모든 내용이 자동으로 양방향 동기화되나요?

    연결 방식에 따라 다릅니다. Asana 작업을 Notion에서 미리 보거나 동기화된 데이터베이스로 조회하는 기능과, Asana 규칙을 통해 Notion 페이지를 생성하는 기능은 목적이 서로 다릅니다. 모든 필드가 양쪽에서 동일하게 수정된다고 가정하면 안 됩니다. 실제 사용 전 테스트 작업을 만들어 상태, 담당자, 마감일 중 어떤 항목이 반영되는지 확인해야 합니다.

    2. 회사 자료를 개인 Notion 계정에 연결해도 되나요?

    회사 승인 없이 연결하지 않는 편이 안전합니다. 개인 계정은 퇴사, 계정 분실, 공유 설정 오류가 발생했을 때 회사가 권한을 통제하기 어렵습니다. 회사 워크스페이스와 승인된 계정을 사용하고, 고객정보나 인사자료처럼 민감한 내용은 연동 대상에서 제외해야 합니다.

    3. AI로 회의록을 정리한 결과를 바로 Asana에 등록해도 되나요?

    바로 등록하기보다 담당자, 실제 날짜, 완료 조건을 사람이 확인해야 합니다. AI는 회의록에 없는 담당자나 일정을 정확히 알 수 없습니다. 프롬프트에 ‘정보가 없으면 추측하지 말고 확인 필요라고 표시하라’고 지시하고, 사내 규정상 허용된 AI 도구에 비식별화한 내용만 입력하는 것이 좋습니다.