
Excel · Logic
IF · AND · OR로 조건식 완성하기 (실무 예제 총정리)
보고서의 80%는 조건식에서 갈립니다. IF/AND/OR 기본기부터 IFS·IFERROR·SWITCH 조합, 구간 계산·등급 산정·예외 처리까지 한 번에 끝내세요.
기본 문법 요약
| 함수 | 형식 | 설명 |
|---|---|---|
| IF | =IF(조건, 참값, 거짓값) | 조건이 TRUE면 참값, 아니면 거짓값 반환 |
| AND | =AND(조건1, 조건2, ...) | 모든 조건이 TRUE일 때만 TRUE |
| OR | =OR(조건1, 조건2, ...) | 하나라도 TRUE면 TRUE |
| IFS | =IFS(조건1, 결과1, 조건2, 결과2, ...) | 첫 번째로 TRUE인 조건의 결과 반환 |
단일 조건 – IF
예제 1) 합격/불합격
=IF(B2>=60, "합격", "불합격")
예제 2) 빈값 처리
=IF(B2="", "", B2*1.1)
입력 없을 때 계산을 건너뛰어 보고서가 깔끔해집니다.
다중 조건 – AND/OR
예제 3) 보너스 지급 (근속 ≥3년 AND 평가 A)
=IF(AND(C2>=3, D2="A"), "보너스 지급", "대상 아님")
예제 4) 무료배송 (등급 VIP OR 구매액 ≥ 50,000)
=IF(OR(E2="VIP", F2>=50000), "무료배송", "배송비 부과")
- TIP 복잡한 중첩 IF보다 AND/OR로 조건을 먼저 묶기가 가독성·성능에 유리합니다.
가독성 강화 – IFS
예제 5) 점수 → 등급
=IFS(B2>=90,"A", B2>=80,"B", B2>=70,"C", B2>=60,"D", TRUE,"F")
TRUE,"F"는 기본값 역할. 마지막에 넣어 두면 모든 예외를 커버합니다.
예제 6) IF 중첩 vs IFS
| 방식 | 수식 |
|---|---|
| 중첩 IF | =IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","D"))) |
| IFS | =IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"D") |
구간별 계산(요금·수수료·등급)
예제 7) 매출 구간별 수수료율
| 매출(누계) | 요율 |
|---|---|
| 0 | 2% |
| 10,000,000 | 3% |
| 30,000,000 | 5% |
LOOKUP으로 깔끔하게:
=LOOKUP(H2, {0,10000000,30000000}, {0.02,0.03,0.05}) * H2
예제 8) 배송비 (VIP 무료 또는 5만원 이상 무료)
=IF(OR(G2="VIP", H2>=50000), 0, 3000)
예제 9) 근무 교대 수당 (야간 AND 주말)
=IF(AND(I2="야간", WEEKDAY(J2,2)>=6), 15000, 0)
자주 쓰는 패턴 10가지
- 텍스트 포함 여부 →
=IF(ISNUMBER(SEARCH("VIP",A2)),"특가","일반") - 날짜 범위 →
=IF(AND(A2>=DATE(2025,8,1), A2<=DATE(2025,8,31)),"8월","기타") - 빈값/0 처리 →
=IF(A2="","",A2),=IF(A2=0,"-",A2) - 예외 안전장치 →
=IFERROR(수식,"확인필요") - 불리언 → 숫자 →
--(조건)또는N(조건) - SWITCH로 코드 매핑 →
=SWITCH(K2,"A","우수","B","보통","C","미흡","기타") - 다중 결과 반환(365) →
=IF(조건, 범위1, 범위2)(동적 배열) - 조건부 서식 공식 →
=AND($C2="지연",$D2>TODAY()) - 유효성 검사 메시지 → 사용자 지정에
=AND(A2>=0, A2<=100) - 복수 OR 간결화 →
=ISNUMBER(MATCH(A2,{"Gold","VIP","Admin"},0))
오류·함정과 해결책
- 텍스트 숫자 vs 숫자 →
VALUE()로 변환, 셀 서식 확인 - 날짜 비교 실패 →
DATE()사용, 지역 형식 불일치 주의 - 공백 문자 →
TRIM(),CLEAN()로 정리 - 중첩 난독화 → IFS/LOOKUP/테이블로 리팩터링
- 우선순위 실수 → AND가 OR보다 먼저 평가되도록 괄호로 의도 명확히
성능·유지보수 팁
- 조건·임계값은 테이블(Table)로 외부화 → 수식은 참조만
- 불필요한 전체열 참조(X:X) 지양, 정확 범위 지정
- 여러 시트에 동일 로직이면 이름 정의로 재사용
- 문서화: 시트 상단에
규칙 요약텍스트 박스 두기
요약 정리
| 핵심 포인트 | 체크리스트 |
|---|---|
| IF/AND/OR 조합으로 모든 조건식 커버 | 괄호·우선순위 명확히 |
| 가독성은 IFS/LOOKUP로 개선 | 구간·등급은 테이블+LOOKUP |
| 예외와 오류를 먼저 처리 | IFERROR/빈값 처리 |
FAQ
중첩 IF가 너무 길어요. 어떻게 줄이나요?
IFS/LOOKUP/CHOOSE로 치환하고, 임계값을 테이블에 두어 수식을 짧게 만드세요.
AND와 OR를 섞을 때 우선순위는?
AND가 OR보다 먼저 평가되는 경향이 있으므로 괄호로 의도를 명확히 하세요: IF(OR(AND(...), AND(...)), ...)
숫자와 텍스트 숫자가 섞여 비교가 틀려요.
VALUE()로 변환하거나 데이터 원천의 형식을 통일하세요.