IF AND OR 주문 4행 검산: 출고와 알림 조건 구분하기
결제만 확인된 주문은 출고해도 될까요? 주소 확인이 없어도 알림 목록에는 올릴 수 있을까요? 두 질문의 조건이 다르면 같은 수식으로 처리해서는 안 됩니다. 이 실습에서는 둘 다 예일 때의 AND 출고와, 하나라도 예일 때의 OR 알림을 네 주문으로 나란히 비교합니다.
출고·알림은 가상 판정 문구입니다. 실제 물류 시스템을 호출하거나 고객에게 메시지를 보내지 않습니다. 첨부 주문 시트에는 원본 두 조건, 입력 검사, 두 판정, 고정 기대값과 대조가 있으며, 빈칸이나 철자 오류를 정상적인 아니오와 구분합니다.

네 주문은 두 조건의 조합을 모두 포함합니다
| 행 | 주문 A | 결제 B | 주소 C | AND 출고 기대 G | OR 알림 기대 H |
|---|---|---|---|---|---|
| 2 | P-01 | 예 | 예 | 출고 | 알림 |
| 3 | P-02 | 예 | 아니오 | 보류 | 알림 |
| 4 | P-03 | 아니오 | 예 | 보류 | 알림 |
| 5 | P-04 | 아니오 | 아니오 | 보류 | 대기 |
P-01과 P-04만 보면 AND와 OR의 결과를 구별하기 어렵습니다. 차이를 드러내는 행은 P-02와 P-03입니다. 조건 하나만 예인 두 행에서 AND는 보류, OR는 알림이어야 합니다. 고정 기대값 G:H는 이 네 조합을 보고 직접 작성한 값이며 판정 수식으로 만들지 않았습니다.
네 조합을 실행하는 순서
-
주문 A2:C5에 네 조합을 입력하고 G2:H5의 고정 기대값을 먼저 채웁니다.
-
D2의 입력 검사, E2의 출고 판정, F2의 알림 판정을 각각 입력한 뒤 5행까지 채웁니다.
-
I2:I5의 대조 결과가 모두 일치인지 확인하고 K2:K6을 1·3·4·4·0과 비교합니다.
-
B3만 바꾸는 실패 실험은 사본에서 하고, 예로 복구했을 때 초기 집계가 돌아오는지 확인합니다.
D열에서 예·아니오 외의 입력을 멈추기
예 처럼 끝에 공백이 붙거나 한 조건이 비어 있으면, 이 실습에서는 입력 확인으로 남깁니다. D2의 수식을 D5까지 복사합니다.
=IFERROR(IF(AND(OR(B2="예",B2="아니오"),OR(C2="예",C2="아니오")),"입력 정상","입력 확인"),"원본 오류")
안쪽 OR 두 개는 각 셀이 허용 단어 중 하나인지를 검사하고, AND는 양쪽 입력이 모두 정상인지 확인합니다. 여기서 OR를 썼다고 알림 판정을 먼저 내린 것이 아닙니다. 입력의 종류 검사와 업무 조건의 결합은 다른 계산입니다.
IFERROR의 원본 오류는 B·C 중 실제 오류값이 있다는 표지입니다. =NA()를 넣은 셀을 빈칸이나 아니오로 덮지 않습니다. 원본 수식이 있는 업무 파일에서는 먼저 그 오류를 해결해야 합니다.
E열은 둘 다, F열은 하나 이상
E2의 출고 판정입니다. D2가 입력 정상이 아니면 그 확인 문구를 그대로 반환합니다.
=IF(D2<>"입력 정상",D2,IF(AND(B2="예",C2="예"),"출고","보류"))
F2의 알림 판정입니다.
=IF(D2<>"입력 정상",D2,IF(OR(B2="예",C2="예"),"알림","대기"))
두 수식을 5행까지 채웁니다. Microsoft AND 문서는 모든 인수가 참일 때 TRUE를 반환한다고 설명합니다. OR 문서는 하나 이상 참이면 TRUE라고 설명합니다. 텍스트 범위를 그대로 논리값이라고 가정하지 않고 B2="예"처럼 비교식을 쓰는 이유입니다.

출고 1건과 알림 3건을 행별로 대조하기
I2에 아래 수식을 넣고 I5까지 채웁니다.
=IF(AND(E2=G2,F2=H2),"일치","차이")
초기에는 네 행 모두 일치입니다. K2는 =COUNTIF(E2:E5,"출고")로 1, K3은 =COUNTIF(F2:F5,"알림")로 3입니다. K4의 일치 수와 K5의 대조 기록 수는 모두 4, K6의 입력 확인 수는 0이 기대값입니다.
K6의 =COUNTIF(D2:D5,"입력 확인")는 그 문구만 셉니다. B3을 비우면 K6은 1이지만, =NA()로 바꾸면 D3·E3·F3은 원본 오류이고 K6은 0입니다. 따라서 K6=0만으로 입력이 모두 정상이라고 판단하지 않습니다. D열 상태와 I열 대조도 함께 확인한 뒤, 다음 실험 전 B3을 예로 복원하세요.
출고 개수만 맞아도 다른 주문이 출고로 바뀌어 있을 수 있습니다. P-01만 출고인지, P-02·P-03은 보류/알림인지 확인합니다. I3을 지우면 차이라는 표시가 없어도 대조 기록은 3으로 줄어듭니다. 검산 수식을 지운 상태를 오류 없는 상태로 받아들이지 않습니다.
B3 하나만 바꾸어 세 실패를 나누기
아래 변경은 사본에서 각각 수행합니다. G3=보류와 H3=알림은 초기 기대값으로 그대로 남기며, 각 실험을 끝내면 B3을 예로 복원합니다.
| B3 변경 | D3 입력 상태 | E3 출고 | F3 알림 | 볼 점 |
|---|---|---|---|---|
| 실제 빈칸 | 입력 확인 | 입력 확인 | 입력 확인 | 미확인을 아니오로 취급하지 않음 |
| 아니오 | 입력 정상 | 보류 | 대기 | 두 조건 모두 아니오로 바뀜 |
=NA() |
원본 오류 | 원본 오류 | 원본 오류 | 오류 원본을 먼저 해결 |
두 번째 사례에서 AND 결과는 여전히 보류지만 OR 결과만 대기로 바뀝니다. I3은 차이가 됩니다. 결과 둘 중 하나만 보고 수식 전체가 맞았다고 판단하지 않는 연습입니다. 세 변경의 계산 결과는 별도 파일에서 재계산해 저장값을 검산했으며, 실제 주문 시스템의 동작을 시험한 것은 아닙니다.
함수 선택 오류와 참조 오류의 복구
P-02와 P-03까지 출고가 된다면 E열에 OR를 썼는지 확인합니다. P-02가 대기라면 F열에 AND를 썼는지 봅니다. 3~5행이 첫 행과 모두 같은 결과라면 B·C 참조의 행까지 $B$2처럼 고정했는지 확인합니다. 각 행은 그 행의 두 조건을 읽어야 합니다.
입력 정상인데 기대값과 다를 때는 한 행에서 안쪽 비교식 두 개를 따로 계산합니다. P-02의 B3="예"는 TRUE, C3="예"는 FALSE입니다. 이 둘의 AND가 FALSE, OR가 TRUE인지 확인한 뒤 바깥 IF의 결과 문구를 봅니다. 수식을 전부 다시 쓰기보다 잘못된 한 단계부터 복구할 수 있습니다.

적용 한계: 실제 출고 승인으로 확대하지 않기
실제 출고에는 재고, 주소 유효성, 결제 취소 등 다른 규칙이 있을 수 있습니다. 여기서 예라고 입력했다고 외부 시스템의 검증을 마쳤다는 뜻은 아닙니다. 조건이 늘면 먼저 각 조건의 정의와 입력 누락 처리를 분리한 다음 최종 결합 규칙을 작성해야 합니다.
이번 결과는 합성 주문 네 행과 정해진 두 단어에 한정합니다. Microsoft Excel 앱은 실행하지 않았습니다. LibreOffice로 재계산한 합성 입력의 저장값을 Python으로 대조했습니다. Microsoft 문서는 함수 정의를 확인하는 데 사용했습니다. 마지막에는 B3=예를 복원하고 출고 1·알림 3·일치 4·대조 기록 4·입력 확인 0을 확인합니다. 점수 구간처럼 순서가 있는 조건은 중첩 IF의 경계값 실습과 구별해 사용하세요.
AND는 모든 인수가 참일 때 TRUE를 반환합니다. AND function | Microsoft Support
OR는 하나 이상의 인수가 참일 때 TRUE를 반환합니다. OR function | Microsoft Support
출처 원문 수집일: S1 2026-09-24; S2 2026-09-24.