AND, OR, 중첩 IF
점수 81점에 출석률 70%인 학생은 점수 기준은 넘고 출석 기준은 못 넘습니다. AND는 둘 다, OR는 하나만 있으면 됩니다.
조건 두 개를 한꺼번에: AND와 OR
선생님에게는 규칙이 하나 더 있습니다. 통과하려면 점수 60점 이상과 출석률 80% 이상을 둘 다 넘어야 합니다. AND는 검사를 하나 이상 받고(Excel은 255개까지), 모든 검사가 TRUE일 때만 TRUE를 돌려줍니다. =AND(B2>=60,C2>=80)처럼 씁니다. OR는 검사 가운데 하나라도 TRUE면 TRUE입니다. =OR(B2>=90,C2=100)은 점수가 아주 높거나 결석이 한 번도 없는 학생에게 상을 줄 때 표시로 쓸 수 있습니다. NOT은 TRUE와 FALSE를 뒤집습니다. 「~가 아니면」으로 말하는 규칙에 어울립니다. 「출석 일수 3분의 2 이상이고 과제 제출」 같은 규칙도 AND 하나로 옮길 수 있습니다(지어낸 예입니다).
AND와 OR만 쓰면 TRUE나 FALSE만 나옵니다. 낱말로 바꾸려면 IF 안에 넣어 =IF(AND(B2>=60, C2>=80), "Yes", "No")처럼 씁니다. 안쪽 검사는 서로 다른 열을 가리켜도 되고, 텍스트를 비교하거나 계산을 넣어도 됩니다. AND와 OR는 범위 안의 텍스트와 빈칸을 건너뛰고, 검사할 값을 하나도 찾지 못하면 #VALUE!를 돌려줍니다. 아래 표는 점수 60 이상, 출석률 80 이상이라는 두 검사를 학생 네 명에게 적용한 결과입니다. TRUE와 FALSE만 늘어선 열은 읽는 사람이 다시 해석해야 하므로, 남에게 보여 줄 표라면 IF로 감싸 낱말로 바꾸는 편이 친절합니다.
수식을 쓰기 전에 규칙을 우리말 한 문장으로 먼저 말해 보세요. 「점수 60 이상이고 출석률 80 이상이면 통과」는 그대로 AND입니다. 「둘 중 하나만 넘으면 통과」는 OR입니다. 「60점 이상이면서, 출석률 80 이상이거나 진단서가 있으면」처럼 둘이 섞이면 함수 안에 함수를 넣어 =AND(B2>=60, OR(C2>=80, D2="note"))처럼 씁니다. 안쪽부터 먼저 써서 원하는 자리에서 TRUE와 FALSE가 나오는지 확인하고, 그다음에 바깥으로 감싸세요. 우리말 문장에 「~이고」나 「그리고」가 나오면 AND, 「~거나」나 「또는」이 나오면 OR라고 보면 대개 맞습니다.
| 점수 | 출석률 | AND | OR |
|---|---|---|---|
| 93 | 95 | TRUE | TRUE |
| 81 | 70 | FALSE | TRUE |
| 66 | 88 | TRUE | TRUE |
| 55 | 70 | FALSE | FALSE |
이야기 속 93점이 D가 된 까닭
IF 하나로는 결과가 두 가지뿐입니다. 더 필요하면 거짓일 때의 답 자리에 IF를 하나 더 넣습니다. 그러면 성적 기준은 =IF(B2>=90, "A", IF(B2>=80, "B", IF(B2>=70, "C", IF(B2>=60, "D", "F"))))가 됩니다. 스프레드시트는 첫 검사를 해 보고, 그 검사가 실패했을 때만 다음으로 넘어갑니다. 이야기 속 성적표가 틀린 이유도 여기에 있습니다. B2>=60을 맨 앞에 두면 93점은 첫 검사를 통과해 D에서 멈추고, 더 높은 기준은 읽히지도 않습니다. 가장 높은 기준부터 시작해 아래로 내려가야 합니다.
괄호도 세어 보세요. IF가 네 개면 끝에 닫는 괄호도 네 개입니다. Excel 제한 안내에 따르면 함수는 64단계까지 겹칠 수 있지만, 서너 단계만 넘어도 읽기 어렵고 고치다 망가뜨리기 쉽습니다. 두 프로그램의 새 버전에는 검사와 답을 겹치지 않고 나란히 늘어놓는 IFS가 있고, 구글의 IF 도움말도 이 함수로 이어집니다. 단계가 긴 기준표라면 다음 단원의 찾기 표가 더 깔끔합니다. 기준값이 칸에 들어 있어서 누구든 보고 바꿀 수 있기 때문입니다. 괄호를 셀 때는 여는 괄호마다 손가락을 하나씩 접었다가, 닫는 괄호를 칠 때마다 하나씩 펴 보세요. 끝에서 손가락이 다 펴져 있어야 맞습니다.
아래 실습장에서 성적 열은 IF 네 개를, 통과 열은 IF와 AND를 씁니다. 두 열을 채운 뒤 Ben과 Dev를 견줘 보세요. Ben은 점수가 더 높은데 출석률에서 걸리고, Dev는 출석은 좋은데 점수가 60점에 못 미칩니다. 두 사람 모두 통과하지 못하지만 이유는 서로 다릅니다.
끌어서 돌리고, 휠이나 두 손가락으로 확대하세요.
- 중첩 IF를 가장 낮은 기준부터 쓰기 처음으로 TRUE가 된 검사에서 끝납니다. B2>=60이 맨 앞이면 60점 이상은 모두 D에서 멈춥니다.
- =IF(B2>=60 AND C2>=80, ...)처럼 쓰기 AND는 검사 사이에 끼우는 낱말이 아니라 검사를 인수로 받는 함수입니다. AND(B2>=60, C2>=80)으로 씁니다.
- 둘 다 넘어야 하는 규칙에 OR 쓰기 81점에 출석률 70%인 학생은 OR로는 통과, AND로는 탈락입니다. 규칙을 소리 내어 읽었을 때 「그리고」가 들어가면 AND입니다.
- 닫는 괄호 개수 놓치기 IF 네 개를 겹치면 끝에 )가 네 개 있어야 합니다. 하나라도 모자라면 수식이 받아들여지지 않습니다.
- B2가 81, C2가 70입니다. =AND(B2>=60,C2>=80)의 결과는 무엇일까요?
- FALSE
- TRUE
- 같은 셀입니다. =OR(B2>=60,C2>=80)의 결과는 무엇일까요?
- TRUE
- FALSE
- =NOT(5>3)의 결과는 무엇일까요?
- FALSE
- TRUE
- B2가 93입니다. =IF(B2>=90, "A", IF(B2>=80, "B", "C"))의 결과는 무엇일까요?
- B2가 85입니다. 같은 수식의 결과는 무엇일까요?
- B2가 93입니다. 순서를 잘못 쓴 =IF(B2>=60, "D", IF(B2>=90, "A", "F"))의 결과는 무엇일까요?
- 다른 함수 없이 IF 네 개를 겹친 수식은 끝에 닫는 괄호가 몇 개일까요?
- Excel은 함수를 몇 단계까지 겹쳐 쓸 수 있을까요?
- B2가 66, C2가 88입니다. =IF(AND(B2>=60, C2>=80), "Yes", "No")의 결과는 무엇일까요?
- 「60 이상 합격」 수식을 점검하기에 가장 좋은 점수는 어느 것일까요?
- 60과 59.9
- 100과 0
- 75와 76
- 30과 90
- AND는 모든 검사가 TRUE, OR는 하나 이상 TRUE, NOT은 반대입니다.
- IF 안에 넣어 TRUE나 FALSE를 낱말로 바꿉니다.
- 중첩 IF는 거짓 자리에 다음 IF를 넣고, 가장 높은 기준부터 씁니다.
- 경계값을 시험하고, 단계가 길면 찾기 표가 더 깔끔합니다.
이 과정의 출처 (19)
- Microsoft Support, "Switch between relative, absolute, and mixed references" (support.microsoft.com/en-us/office/dfec08cd-ae65-4f56-839e-5f0d8d0baca9: $ before column and row, F4 to switch, copying two down and two right: $A$1 stays, A$1 to C$1, $A1 to $A3, A1 to C3)
- Microsoft Support, "AVERAGE function" (support.microsoft.com/en-us/office/047bac88-d466-426c-a32b-8f33eb960cf6: text, logical values and empty cells in a reference ignored, zeros included; 10, 7, 9, 27, 2 gives 11, with 5 gives 10; mean 5, median 4, mode 3 for 2 3 3 5 7 10)
- Microsoft Support, "COUNT function" (support.microsoft.com/en-us/office/a59cd7fc-b623-4d93-87a4-d23bf411294c: only numbers counted, dates count, errors and text do not)
- Microsoft Support, "ROUND function" (support.microsoft.com/en-us/office/c018c5d8-40fb-4053-90b1-b3e7f61a213c: num_digits required; 2.15 to 2.2, -1.475 to -1.48, 626.3 to 1000, 1.98 to 0, -50.55 to -100)
- Microsoft Support, "IF function" (support.microsoft.com/en-us/office/69aed7c9-4e8a-4755-a9bc-aa8bbff73be2: value_if_false optional, text in quotes except TRUE and FALSE, 0 and #NAME? problems)
- Microsoft Support, "VLOOKUP function" (support.microsoft.com/en-us/office/0bbc8083-26fe-4963-8ab8-93a18ad188a1: range_lookup TRUE by default, sorted first column, #N/A, #REF!, #VALUE!, absolute table range, wildcards with FALSE)
- Microsoft Support, "XLOOKUP function" (support.microsoft.com/en-us/office/b7fd680e-6d10-43e6-84f9-88eae8bf5929: not in Excel 2016 and Excel 2019, exact match by default)
- Microsoft Support, "How to correct a #VALUE! error" (support.microsoft.com/en-us/office/15e1b616-fbf2-4147-9c0b-0a11a20e409e: + and * may not calculate cells with text, use SUM instead, IFERROR hides all errors)
- Microsoft Support, "Excel specifications and limits" (15 digits, 64 nested levels, 255 arguments)
- Google Docs Editors Help, "VLOOKUP" (support.google.com/docs/answer/3093318: is_sorted TRUE by default, FALSE recommended, search down to a larger value, " Apple" and "Apple " differ, wildcards, IFNA, absolute range)
- Google Docs Editors Help, "XLOOKUP" (support.google.com/docs/answer/12405947)
- Google Docs Editors Help, "ROUND" (support.google.com/docs/answer/3093440: places optional, 0 by default, rounding by magnitude)
- Google Docs Editors Help, "IF" (support.google.com/docs/answer/3093364: order of the answers is the most common problem, IFS)
- Google Docs Editors Help, "AVERAGE" (support.google.com/docs/answer/3093615: text ignored, any number of arguments)
- Google Docs Editors Help, "COUNTA" (support.google.com/docs/answer/3093991: zero-length strings and spaces count)
- Google Docs Editors Help, "Keyboard shortcuts for Google Sheets" (support.google.com/docs/answer/181110: F4 and Fn+F4 while entering a formula, F4 as Redo)
- Pryor Learning and Exceljet (F4 cycle A1, $A$1, A$1, $A1; = comparison not case-sensitive)
- Ablebits (IF without value_if_false returns FALSE)
- Spreadsheet Class (Sheets circular dependency shows #REF!)
확인한 날: 2026-10-19