AI로 Excel 수식 작성하기
AI가 Excel 수식 요청을 이해하는 방식
ChatGPT, Claude, GitHub Copilot과 같은 최신 AI 도구는 데이터 레이아웃과 원하는 결과를 명확히 설명하면 정확한 Excel 수식을 생성할 수 있습니다. 핵심은 컨텍스트를 제공하는 것입니다: 열 문자, 데이터 범위, 기대하는 출력입니다. 예를 들어 "조회 수식을 줘"라고 말하는 대신 "Sheet1의 A열에 직원 ID가 있고, Sheet2의 A열에 이름, B열에 급여가 있습니다. 각 직원의 급여를 Sheet1의 C열로 가져와야 합니다."라고 말하세요. 프롬프트가 구체적일수록 첫 시도에 올바른 수식을 얻을 확률이 높아집니다.
AI 모델은 문서, 포럼, 튜토리얼에서 수집한 수백만 개의 Excel 수식 예제로 학습되었습니다. 수백 개 함수의 구문을 이해하고, 사람이 구성하고 디버깅하는 데 몇 분이 걸릴 중첩 수식으로 조합할 수 있습니다. 그러나 AI는 실제 스프레드시트를 볼 수 없으므로 행 번호, 시트 이름, 데이터 유형과 같은 구조적 컨텍스트를 제공해야 합니다.
AI가 탁월한 주요 수식 카테고리
AI 도구는 다음 수식 카테고리에서 특히 뛰어난 성능을 보입니다:
- 조회 함수: VLOOKUP, XLOOKUP, INDEX-MATCH 조합
- 조건부 집계: SUMIFS, COUNTIFS, AVERAGEIFS, MAXIFS
- 텍스트 조작: TEXTJOIN, LEFT/RIGHT/MID, SUBSTITUTE, 정규식 패턴
- 날짜 및 시간 연산: NETWORKDAYS, EOMONTH, DATEDIF, WORKDAY
- 논리 중첩: 중첩 IF, IFS, SWITCH, AND/OR 조합
- 동적 배열: FILTER, SORT, UNIQUE, SEQUENCE, LAMBDA
- 재무 계산: XNPV, XIRR, PMT, FV, NPV
실제 수식 예제와 AI 프롬프트
예제 1: INDEX-MATCH-MATCH로 양방향 조회
프롬프트: "행(A3:A12)이 제품 이름이고 열(B2:E2)이 분기(Q1-Q4)인 판매 테이블이 있습니다. G1에 입력된 제품과 H1에 입력된 분기에 대한 판매액을 조회하는 수식이 필요합니다. INDEX-MATCH-MATCH로 알려주세요."
AI 생성 수식:
=INDEX(B3:E12, MATCH(G1, A3:A12, 0), MATCH(H1, B2:E2, 0))
이 수식은 첫 번째 MATCH로 G1의 제품이 A3:A12에서 몇 번째 행인지 찾고, 두 번째 MATCH로 H1의 분기가 B2:E2에서 몇 번째 열인지 찾은 다음, INDEX가 해당 교차점의 값을 반환합니다.
예제 2: 날짜 범위가 있는 다중 조건 SUMIFS
프롬프트: "A열에 날짜, B열에 제품 카테고리, C열에 판매 금액이 있습니다. 2026년 1월 1일부터 2026년 3월 31일까지 'Electronics' 카테고리의 판매액을 합산해야 합니다. 데이터는 2행부터 500행까지입니다."
AI 생성 수식:
=SUMIFS(C2:C500, B2:B500, "Electronics", A2:A500, ">=1/1/2026", A2:A500, "<=3/31/2026")
SUMIFS 함수는 세 가지 조건을 동시에 평가합니다: 카테고리가 "Electronics"와 일치하고, 날짜가 2026년 Q1 범위 내에 있어야 합니다. 각 조건 쌍은 (조건_범위, 조건) 패턴을 따릅니다.
예제 3: 백분율 구간별 중첩 IF
프롬프트: "D열에 판매 수치가 있습니다. 수수료 구간을 할당해야 합니다: 0-5000은 5%, 5001-10000은 7%, 10001-20000은 10%, 20000 초과는 12%. 2행용 수식을 작성해주세요."
AI 생성 수식:
=IF(D2<=5000, D2*0.05, IF(D2<=10000, D2*0.07, IF(D2<=20000, D2*0.10, D2*0.12)))
Excel 2019 이상에서는 AI가 더 간결한 IFS 대안을 제안할 수 있습니다:
=IFS(D2<=5000, D2*0.05, D2<=10000, D2*0.07, D2<=20000, D2*0.10, TRUE, D2*0.12)
예제 4: 다중 조건 FILTER (동적 배열)
프롬프트: "데이터가 A2:D200에 있고, 헤더는 Name, Department, Salary, Location입니다. Department가 'Engineering'이고 Salary가 80000을 초과하는 모든 행을 필터링하여 표시해야 합니다. FILTER 함수를 사용해주세요."
AI 생성 수식:
=FILTER(A2:D200, (B2:B200="Engineering")*(C2:C200>80000), "일치하는 레코드 없음")
곱셈은 FILTER 함수 내에서 논리 AND 연산자 역할을 합니다. 각 TRUE는 1로 평가되며, 두 조건이 모두 TRUE(1*1=1)인 행만 필터를 통과합니다.
Excel 수식을 위한 프롬프트 엔지니어링
AI로부터 신뢰할 수 있는 수식을 얻으려면 구조화된 프롬프트가 필요합니다. 다음은 검증된 템플릿입니다:
프롬프트 템플릿:
"[Excel 버전, 예: Excel 365]을 사용 중입니다. 데이터 구조는 다음과 같습니다:
- [A열 헤더]: [설명, 데이터 유형, 샘플 값]
- [B열 헤더]: [설명, 데이터 유형, 샘플 값]
[구체적인 결과]를 위한 수식이 필요합니다. 수식은 [대상 셀/열]에 들어갑니다. 추가 제약 조건: [공백 처리, 대소문자 구분 등]"
AI 수식 정확도를 높이는 주요 기법:
- Excel 버전 지정: Excel 365는 동적 배열(FILTER, SORT, UNIQUE)과 LAMBDA를 지원합니다. 이전 버전은 Ctrl+Shift+Enter가 필요한 기존 배열 수식을 사용해야 합니다.
- 정확한 셀 범위 제공: "내 판매 데이터"를 "SalesData라는 이름의 A2:A500"으로 대체합니다.
- 엣지 케이스 언급: 빈 셀, 오류, 중복, 0값 처리 방법을 AI에 알려줍니다.
- 대안 요청: "두 가지 접근법을 알려주세요"라고 요청하여 VLOOKUP과 INDEX-MATCH, SUMIFS와 SUMPRODUCT를 비교합니다.
- 설명 요청: "이 수식이 어떻게 작동하는지 단계별로 설명해주세요"를 추가하면 학습과 정확성 검증에 도움이 됩니다.
일반적인 함정과 AI 생성 수식 검증 방법
AI 생성 수식은 완벽하지 않습니다. 다음과 같은 반복적인 문제에 주의하세요:
- VLOOKUP 열 인덱스 오류: table_array가 A열이 아닌 다른 열에서 시작할 때 AI가 조회 열 번호를 잘못 셀 수 있습니다. 항상 col_index_num을 확인하세요.
- 절대 참조 vs 상대 참조: AI가 드래그다운 시나리오에 대해 상대 참조($A1 vs A$1 vs A1)를 잘못 사용할 수 있습니다. 수식을 복사하기 전에 달러 기호를 확인하세요.
- 날짜 형식 모호성: AI가 미국 날짜 형식(MM/DD/YYYY)을 가정할 수 있습니다. 지역 설정이 다르면 수식 내 날짜가 오작동할 수 있습니다.
- 배열 수식 호환성: AI가 사용 중인 Excel 버전에서 작동하지 않는 동적 배열 수식을 생성할 수 있습니다.
- 오프바이원 범위 오류: 헤더 행이 데이터 범위에 포함되면 불일치가 발생합니다.
검증 체크리스트:
- 수식을 스프레드시트에 복사하고 알려진 값 3-5개로 테스트합니다.
- 엣지 케이스 확인: 빈 셀, 최대/최소값, 숫자 열의 텍스트.
- 수식 감사(수식 탭 > 수식 평가)를 사용하여 계산을 단계별로 실행합니다.
- 최소 한 행에 대해 수동 계산과 비교합니다.
- 수식이 오류를 반환하면 AI에 질문: "이 수식이 #N/A를 반환했습니다. 데이터 범위는 A2:B50입니다. 무엇이 문제일까요?"
개인 AI 수식 라이브러리 구축
자신의 데이터셋에 맞는 AI 생성 수식이 쌓이면 재사용 가능한 라이브러리로 정리하세요. 수식 카테고리별로 별도의 시트(조회, 텍스트, 날짜, 조건, 재무)가 있는 Excel 워크북을 만듭니다. 각 시트에는 원본 프롬프트, 생성된 수식, 기능에 대한 평이한 설명, 테스트 후 수정 사항 메모 열을 포함합니다.
팀 환경에서는 Excel의 LAMBDA 함수(Excel 365)를 사용하여 복잡한 AI 생성 수식을 이름이 지정된 재사용 가능한 사용자 정의 함수로 패키징합니다. 예를 들어 위의 INDEX-MATCH-MATCH 로직을 LAMBDA로 래핑하면 한 번 정의한 후 모든 워크북의 모든 셀에서 호출할 수 있습니다:
=LAMBDA(lookup_val, row_header, col_header, data_range, row_range, col_range, INDEX(data_range, MATCH(lookup_val, row_range, 0), MATCH(col_header, col_range, 0)))
이름 관리자에서 이 LAMBDA를 "TwoWayLookup"이라는 이름에 할당하면, 팀 전체가 =TwoWayLookup(G1, H1, B3:E12, A3:A12, B2:E2)를 사용할 수 있으며 기본 INDEX-MATCH 메커니즘을 이해할 필요가 없습니다.
AI의 한계와 대처 방법
AI는 시각적 레이아웃 단서(병합된 셀, 숨겨진 행, 조건부 서식 규칙, 데이터 유효성 검사 제약 조건)에 의존하는 수식에서 어려움을 겪습니다. 또한 외부 워크북을 참조하거나 변동성이 있는 실시간 데이터(주가, API 피드)를 처리할 수 없습니다. 이러한 경우:
- 병합된 셀 레이아웃의 경우, AI에 수식을 요청하기 전에 병합을 해제하고 재구성합니다.
- 외부 데이터 연결의 경우, 프롬프트에 연결 구조를 설명합니다.
- 매우 복잡한 다단계 로직(10개 이상의 중첩 조건)의 경우, 먼저 AI에 문제를 보조 열로 분해하도록 요청한 다음 통합합니다.
- AI가 반복적으로 실패하면 오류 메시지를 공유하고 자체 출력을 디버깅하도록 합니다. 이 반복적 접근 방식은 보통 2-3회의 교환으로 문제를 해결합니다.