엑셀 IF 다중조건, ChatGPT로 복잡한 할인율 수식 만드는 법

할인 규칙에 등급, 주문금액, 프로모션, 할인제외가 함께 걸리면 IF를 몇 겹 쌓을지보다 어느 조건을 먼저 판단할지가 더 어렵습니다. 입력이 비었을 때 멈출지, 프로모션과 등급 할인을 합칠지부터 정해야 수식의 분기도 정해집니다.

저는 AI가 만든 엑셀 파일을 받으면 계산이 맞는지, 통계가 제대로 적용됐는지, 여러 시트의 연결과 수식을 한 번 더 확인합니다. 이번에는 그중 한 시트 안의 복합 할인 수식만 다뤘고, 통계나 여러 시트 연결은 시험하지 않았습니다.

2026년 10월 24일, ChatGPT 웹의 Chat 모드(모델 선택기 표시 Instant)에 가상 주문 자료와 규칙을 보냈고, 첫 요청 한 번으로 xlsx 파일과 수식을 받았습니다. 정답표는 미리 따로 만들어 두었고 ChatGPT에는 보내지 않았습니다. 이후 오류 셀 처리를 보완하도록 한 차례 추가 요청해 v2를 받았고, 두 결과는 나눠서 설명합니다.

할인 조건표와 노트북의 수식을 함께 살펴보는 모습
복합 할인 조건을 수식으로 옮기는 상황을 표현한 AI 설명 이미지입니다. 실제 회사 자료나 ChatGPT·Excel 실행 화면이 아닙니다.

1. 수식을 맡기기 전에 판단 순서부터 정했습니다

실습 자료는 실제 회사 규정이 아닌 가상 규칙입니다. 입력은 등급(B), 주문금액(C), 프로모션(D), 할인제외(E)이고, 출력은 적용할인율(F), 할인액(G), 결제액(H)입니다. 등급은 일반·우대·VIP, 금액은 실제 숫자 0 이상, D와 E는 Y 또는 N을 사용합니다. 이 수식은 대소문자를 따로 구분하지 않으며, 소문자 입력은 이번에 시험하지 않았습니다.

가상 복합 할인 규칙 · 위에서부터 먼저 판단
순서조건결과
1. 입력 검증B·C·D·E 중 하나라도 비었거나 잘못된 값. 숫자처럼 보이는 텍스트도 포함F·G·H 모두 ‘확인 필요’. 빈칸을 0으로 바꾸지 않음
2. 할인제외입력이 유효하고 E가 Y등급·프로모션과 관계없이 0%
3. 기본 할인율주문금액 100만원 미만 / 100만원 이상일반 0%/2%, 우대 3%/5%, VIP 5%/8%. 초과분이 아닌 금액 전체에 적용
4. 프로모션D가 Y이면 6%기본율과 비교해 큰 값 하나만 적용
5. 금액할인액은 원 단위 반올림결제액은 주문금액에서 할인액을 뺀 값. 0원도 정상 금액

핵심은 ‘무엇을 무엇보다 먼저 판단하는가’를 문장으로 못 박아 두는 것입니다. 이 순서가 없으면 그럴듯하지만 서로 다른 수식이 여러 개 나올 수 있습니다.

2. ChatGPT에 열 구조와 예외까지 함께 전달했습니다

실제 요청에는 위 규칙과 가상 입력 22행을 함께 넣었습니다. 정답표는 보내지 않았습니다. 아래는 그 요청의 핵심을 다시 읽기 쉽게 정리한 예시입니다. 이 짧은 문구를 별도로 실행한 것은 아닙니다.

Mac Excel에서 쓸 수식을 만들어 주세요.
A=사례ID, B=등급, C=주문금액(원), D=프로모션, E=할인제외입니다.
1행은 제목이고 2행부터 입력입니다. F=할인율, G=할인액, H=결제액입니다.
등급은 일반/우대/VIP, 프로모션과 할인제외는 Y/N만 사용합니다.
금액은 실제 숫자 0 이상이어야 합니다. 빈칸·숫자형 텍스트는 자동 변환하지 마세요.
잘못된 입력이 있으면 할인제외보다 먼저 F/G/H 모두 ‘확인 필요’로 둡니다.
입력이 유효하고 할인제외 Y이면 할인율은 0%입니다.
100만원 미만/이상 기본율은 일반 0%/2%, 우대 3%/5%, VIP 5%/8%입니다.
기본율은 주문금액 전체에 적용합니다. 초과분만 계산하지 않습니다.
프로모션 Y이면 6%이며, 기본율과 큰 값 하나만 적용합니다. 합산하지 않습니다.
할인액은 주문금액×할인율을 원 단위 반올림하고 결제액은 주문금액−할인액입니다.
아래 행으로 복사 가능한 수식과 분기별 설명을 주세요.
모호한 조건은 수식을 만들기 전에 질문해 주세요.

3. 실제로 받은 수식과 오류 셀 보완

첫 응답 v1은 처음 정한 22개 사례의 저장값과 Excel 표시값에서 정답과 일치했습니다. 이후 Claude와 수식 구조를 검토하다가, 등급·프로모션·할인제외 셀에 #N/A 같은 Excel 오류가 들어오면 v1이 ‘확인 필요’ 대신 오류를 낼 수 있다는 점을 찾았습니다. v1에 오류 셀을 넣어 실행해 본 결과가 아니라 수식을 읽고 찾은 보완점입니다.

ChatGPT에 F열 전체를 IFERROR로 감싸도록 추가 요청해 v2를 받았습니다. 기존 22행 입력값·자료형·서식과 G/H 수식은 유지됐습니다. 아래는 v2의 수식입니다. F2·G2·H2 표시는 넣을 셀 주소이며, 붙여 넣을 때는 각 등호부터 사용합니다.

F2 =IFERROR(IF(OR(NOT(OR(B2="일반",B2="우대",B2="VIP")),NOT(ISNUMBER(C2)),IFERROR(C2<0,TRUE),NOT(OR(D2="Y",D2="N")),NOT(OR(E2="Y",E2="N"))),"확인 필요",IF(E2="Y",0,MAX(IF(B2="일반",IF(C2<1000000,0,2%),IF(B2="우대",IF(C2<1000000,3%,5%),IF(C2<1000000,5%,8%))),IF(D2="Y",6%,0)))),"확인 필요")
G2 =IF(F2="확인 필요","확인 필요",ROUND(C2*F2,0))
H2 =IF(F2="확인 필요","확인 필요",C2-G2)

4. 긴 F2 수식을 세 부분으로 읽기

입력 검증. IFERROR 안에 있는 IF의 OR는 다섯 가지 문제를 한 번에 묻습니다. 등급이 세 값 중 하나가 아닌지, 금액이 숫자가 아닌지, 금액이 음수인지, D와 E가 Y나 N이 아닌지입니다. 하나라도 해당하면 바로 ‘확인 필요’를 돌려줍니다. ISNUMBER는 텍스트로 저장된 숫자를 숫자로 바꿔 판단하지 않으므로 규칙 1과 맞습니다. 안쪽 IFERROR(C2<0,TRUE)는 금액 비교의 오류를 처리합니다. v2에서는 전체 IF도 IFERROR로 감쌌습니다. 그래서 B·D·E의 오류로 분기 평가가 중단돼도 ‘확인 필요’를 반환합니다. 오류를 모두 0으로 바꾸는 처리는 하지 않았습니다. 다만 이 표시만으로 어떤 입력이 잘못됐는지 알 수는 없으므로 B:E를 원자료와 대조해야 합니다.

할인제외. 검증을 통과한 행만 IF(E2=”Y”,0,…)에 들어옵니다. 검증이 할인제외보다 바깥에 있기 때문에, 금액이 비어 있으면 E가 Y여도 0%가 되지 않습니다.

기본율과 프로모션 중 큰 값. 안쪽 IF는 일반, 우대, 나머지 순으로 기본율을 고르고, 마지막 분기는 VIP를 뜻합니다. 앞에서 등급이 세 값 중 하나라는 것을 이미 확인했으니 ‘나머지’를 VIP로 봐도 됩니다. 금액 비교가 C2<1000000이라서 정확히 100만원은 ‘이상’ 구간에 들어갑니다. MAX는 기본율과 프로모션율 중 큰 값 하나만 고르므로 두 할인이 더해지지 않습니다.

참고: Microsoft IF·AND·OR·NOT 안내, IS 함수 안내

5. 결제액이 반올림된 할인액을 다시 쓰는 이유

G2는 주문금액에 할인율을 곱한 뒤 ROUND로 원 단위에 맞춥니다. VIP 100,010원에 5%를 적용하면 5,000.5원이고, 결과 파일에는 5,001원으로 표시됐습니다.

H2는 반올림이 끝난 G2를 주문금액에서 뺍니다. T13은 100,010원에서 할인액 5,001원을 빼 결제액 95,009원이 됩니다. 유효한 입력에서는 규칙 5대로 이미 반올림한 할인액을 결제액에서도 그대로 차감합니다. 따라서 표의 할인액과 결제액을 합쳐 원래 주문금액과 대조할 수 있습니다.

6. 경계값과 잘못된 입력을 함께 확인했습니다

사례는 경계값과 일부러 넣은 잘못된 입력을 섞어 22행으로 만들었습니다. T14~T21은 검증 분기를 확인하려고 의도적으로 넣은 잘못된 입력이며, AI가 만든 오류가 아닙니다.

사전 정답과 대조한 핵심 사례 · 할인율 / 할인액 / 결제액
사례입력정답보는 지점
T01일반 999,999원0% / 0 / 999,999100만원 미만
T02일반 1,000,000원2% / 20,000 / 980,000정확히 100만원은 이상
T03일반 1,000,001원2% / 20,000 / 980,001반올림한 할인액을 차감
T08일반 100만원, 프로모션6% / 60,000 / 940,000큰 값 선택
T10VIP 100만원, 프로모션8% / 80,000 / 920,00014% 합산 아님
T11T10 조건에 할인제외 Y0% / 0 / 1,000,000할인제외 우선
T13VIP 100,010원5% / 5,001 / 95,009원 단위 반올림
T14~T21의도적으로 넣은 잘못된 입력모두 확인 필요입력 검증
T21금액 빈칸, 할인제외 Y확인 필요검증이 할인제외보다 먼저
T22우대 0원, 프로모션6% / 0 / 00원은 정상 금액

Mac Excel 16.95.1에서 v2 검증 사본을 실제로 실행했습니다. 처음 22개 사례에 오류 셀 보충시험 3개를 더한 25행, F:H 결과 75개가 별도 정답과 일치했습니다. 등급 B24·프로모션 D25·할인제외 E26에는 문자열이 아닌 실제 #N/A 오류를 넣었고, 세 경우 모두 출력 세 칸이 ‘확인 필요’였습니다.

가상 할인 계산 25개 사례와 실제 수식이 있는 Mac Excel 검증 사본 재열람 화면
가상 할인 자료를 실제 Mac Excel에서 재계산·저장한 뒤 다시 연 화면입니다. 누르면 원본 크기로 볼 수 있습니다.

7. 입력을 바꿔도 규칙대로 다시 계산되는지 확인했습니다

저장된 정답만 보고 끝내지 않기 위해 검증 사본의 T02를 차례로 바꿨습니다. 주문금액을 100만원에서 999,999원으로 낮추자 할인율은 2%에서 0%로 바뀌었습니다. 원래 금액으로 복원한 뒤 프로모션을 Y로 바꾸자 6%가 됐고, 할인제외도 Y로 바꾸자 다시 0%가 됐습니다. 그 상태에서 금액을 지우자 할인제외가 Y여도 세 출력이 모두 ‘확인 필요’로 바뀌었습니다.

T02 검증 사본에서 차례로 바꾼 실제 결과
변경 상태할인율할인액(원)결제액(원)
일반 999,999원, 프로모션 N, 제외 N0%0999,999
100만원으로 복원, 프로모션 Y, 제외 N6%60,000940,000
위 조건에서 할인제외 Y0%01,000,000
위 조건에서 금액 공란확인 필요확인 필요확인 필요

시험이 끝나면 입력을 원래대로 복원했습니다. Excel의 ‘지금 계산’을 실행하고 저장한 뒤 닫았다가 다시 열어, 25개 사례의 결과와 입력 자료형·수식이 유지되는지 대조했습니다. 확인 범위에서 남은 불일치는 없었습니다.

이 결과는 가상 자료에 대한 최초 요청과, 오류 처리 위치를 지정해 도움을 준 후속 수정의 관찰입니다. v2를 독립적인 재시험이나 모든 업무에서의 정확성으로 확대하지 않습니다. #N/A가 들어간 세 사례도 의도적으로 만든 입력입니다. 대소문자 구분을 강제하지 않았으며, 셀 오류의 종류 전체·숫자 자릿수 한계·대량 자료·다른 Excel 환경은 검증하지 않았습니다.

IFS 같은 다른 작성 방식, 통계, 여러 시트 연결, 실제 회사 규정은 시험하지 않았습니다. 할인 결과를 여러 행에 걸쳐 집계해야 하고 중복·환불·빈칸 기준이 필요하다면 중복·환불·공란을 구분해 집계를 검산하는 글을 이어서 볼 수 있습니다.

8. 회사 기준에 맞게 고칠 때 확인할 것

이 수식에는 금액 기준 1,000,000이 등급별로 세 번 들어 있습니다. 기준이 달라지면 해당 비교를 모두 살펴야 합니다. 프로모션 6%와 등급별 할인율도 별도 조건입니다. 실무 규칙이 자주 바뀐다면 기준표나 보조열로 분리할지 검토하는 편이 낫습니다. 이번에는 기준표 참조식으로 다시 작성하거나 변경된 기준을 실행하지 않았습니다.

자주 묻는 질문

  1. VIP 고객이 프로모션까지 받으면 8%와 6%를 더해 14%인가요?

    이번 규칙에서는 아닙니다. 기본율과 프로모션율 중 큰 값 하나만 적용하므로 MAX로 8%를 고릅니다. T10의 결과도 8%였습니다. 실제 업무 규칙이 합산 방식이라면 수식 구조부터 달라집니다.

  2. 금액이 비어 있어도 할인제외가 Y이면 0%로 두면 되지 않나요?

    빈칸을 0%나 0원으로 처리하면 실제 0원 주문(T22)과 구분할 수 없습니다. 이번 규칙은 입력 검증을 할인제외보다 먼저 하도록 정했기 때문에 T21은 ‘확인 필요’가 맞습니다.

  3. 숫자처럼 보이는데 ‘확인 필요’가 나오면 왜 그런가요?

    셀에 숫자가 아닌 텍스트로 저장됐을 수 있습니다. ISNUMBER는 텍스트로 된 숫자를 숫자로 인정하지 않습니다. 셀 값이 어떤 형식으로 저장됐는지 먼저 확인하세요.

관련 글 보기