엑셀 LET 함수로 수식을 깔끔하게 만드는 법
LET으로 긴 수식의 각 부분에 이름을 붙여 한 번만 계산하고, 문장처럼 읽히게 만들고, IFNA로 필요한 오류만 골라 처리해요.
- 난이도
- 고급
- Time
- 12분 분량
- 수정:
- 적용 대상:
- Microsoft 365용 Excel, Excel 2024, Excel 2021, 웹용 Excel

배울 내용
- 같은 계산을 반복하는 수식을 한 번만 계산하도록 고치기
- 이름 붙인 단계가 여러 개인 LET 수식 쓰기
- 긴 수식을 한 층씩 만들며 확인하기
- 진짜 실수가 보이도록 IFNA와 IFERROR 중 알맞은 것 고르기
예제 파일
엑셀 LET 함수로 수식을 깔끔하게 만드는 법.xlsx
이 튜토리얼에서 사용하는 통합 문서를 내려받아 엑셀에서 직접 따라 해 보세요.
엑셀 통합 문서(.xlsx) · 7 KB
같은 부분이 몇 번씩 되풀이되는 긴 수식은 읽기가 어려워요. LET을 쓰면 수식 안에서 각 부분에 이름을 붙이고, 한 번만 계산한 다음 그 이름을 쓸 수 있어요. 그러면 위에서 아래로 읽히고, 한 곳만 고치면 되고, 믿을 수 있는 수식이 돼요. 이 글에서는 오류를 일부러 골라 잡는 방법도 다뤄요. 조회 결과가 없는 경우는 처리하되, 진짜 실수는 그대로 드러나게 하는 방법이에요.
예시는 영업 담당자 다섯 명의 매출과 목표, 그리고 G1:H5에 있는 작은 보너스 배율 표를 사용해요. 배율 표에 Lena가 없다는 점을 기억해 두세요. 나중에 중요해져요.
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | 담당자 | 매출 | 목표 | 상태 | 배율 | 보너스 | 담당자 | 배율 |
| 2 | Ari | 9,200 | 8,000 | Ari | 1.1 | |||
| 3 | Mina | 6,100 | 7,000 | Mina | 1 | |||
| 4 | Jon | 8,000 | 8,000 | Jon | 1.2 | |||
| 5 | Lena | 5,400 | 6,000 | Dev | 1.15 | |||
| 6 | Dev | 15,000 | 12,000 | |||||
| 7 | 보너스율 | 5% |
문제: 같은 계산이 반복돼요
담당자마다 상태를 표시한다고 해 볼게요. 목표의 120% 이상이면 초과 달성, 100% 이상이면 달성, 그 밖에는 미달이에요. LET 없이 쓰면 비율 B2/C2가 조건마다 들어가야 해요.
=IF(B2/C2>=1.2,"초과 달성",IF(B2/C2>=1,"달성","미달"))동작은 해요. Ari의 비율은 9,200 / 8,000 = 1.15라서 결과는 달성이에요. 하지만 비율 계산이 바뀌면(반품을 빼야 한다든가) 두 군데를 고쳐야 하고, 하나를 놓칠 수도 있어요. LET을 쓰면 비율에 이름을 붙여 한 번만 쓰면 돼요.
=LET(ratio,B2/C2,IF(ratio>=1.2,"초과 달성",IF(ratio>=1,"달성","미달")))결과는 같아요. Ari는 달성, Dev는 초과 달성(15,000 / 12,000 = 1.25)이에요. 게다가 엑셀은 B2/C2를 한 번만 계산해요. 반복되는 부분이 단순한 나눗셈이 아니라 큰 조회나 FILTER일 때 특히 도움이 돼요.
LET은 이렇게 동작해요
=LET(name1, value1, [name2, value2, ...], calculation)- name1은 직접 정하는 이름이에요.
ratio,sales같은 거예요. - value1은 그 이름이 뜻하는 값이에요. 셀, 범위, 숫자, 계산식 전체 모두 넣을 수 있어요.
- name2, value2, …는 넣지 않아도 돼요. 필요한 만큼 쌍을 추가하세요. 뒤의 값에서 앞에서 정한 이름을 쓸 수 있어요.
- calculation은 항상 마지막 인수이고, 수식이 돌려주는 결과예요. 앞에서 정한 이름을 모두 쓸 수 있어요.
이름을 지을 때 지킬 규칙이 있어요. 문자로 시작하고, 공백을 쓰지 말고, r1이나 tax2026처럼 엑셀이 셀 주소로 읽을 수 있는 이름은 피하세요. 이름은 그 수식 하나 안에서만 존재해요. 다른 셀에서 ratio라는 이름을 전혀 다른 뜻으로 써도 충돌하지 않아요.
수식을 한 층씩 쌓아 올리기
긴 수식을 정확하게 만드는 가장 빠른 방법은 조각조각 만들면서 다음 층으로 감싸기 전에 각 조각을 확인하는 거예요.
핵심 계산을 쓰고 확인하세요
D2에
=B2/C2를 입력하고 Enter를 누르세요. Ari의 값으로 1.15가 나와야 해요. 이 조각이 틀리면 그 위에 쌓은 것도 맞을 수 없어요.논리로 감싸세요
D2를
=IF(B2/C2>=1,"달성","미달")로 고치세요. 결과는 달성이에요.반복되는 부분에 LET으로 이름을 붙이세요
비율에 이름이 붙도록 다시 쓰세요.
=LET(ratio,B2/C2,IF(ratio>=1,"달성","미달"))D6까지 아래로 복사하세요. 결과는 달성, 미달, 달성, 미달, 달성이에요. Jon은 매출이 목표와 똑같아서 비율이 1이고, 달성으로 쳐요.
A B C D E F G H 1 담당자 매출 목표 상태 배율 보너스 담당자 배율 2 Ari 9,200 8,000 달성 Ari 1.1 3 Mina 6,100 7,000 미달 Mina 1 4 Jon 8,000 8,000 달성 Jon 1.2 5 Lena 5,400 6,000 미달 Dev 1.15 6 Dev 15,000 12,000 달성 LET 수식을 D2:D6에 복사했어요. 세 명이 목표를 달성했어요. 이상해 보이면 이름 붙인 단계를 하나씩 확인하세요
이름에 무엇이 들어 있는지 보려면 잠시 그 이름을 마지막 인수로 두세요.
=LET(ratio,B2/C2,ratio)는 비율 자체를 보여 줘요. 값이 맞으면 원래 계산을 다시 넣으세요.
이름 붙인 단계가 여러 개인 보너스 수식
LET은 수식에 단계가 여러 개일 때 진가를 발휘해요. 다음 수식은 목표를 달성한 담당자에게만 매출 × 보너스율 × 담당자 배율만큼 보너스를 줘요.
=LET(ratio,B2/C2,mult,IFNA(XLOOKUP(A2,$G$2:$G$5,$H$2:$H$5),1),IF(ratio>=1,B2*$H$7*mult,0))엑셀 수식에는 줄 바꿈과 공백을 넣을 수 있어서, 수식 입력줄에서 다음처럼 정리할 수 있어요. 수식을 고치는 중에 Alt+Enter를 누르면 줄이 바뀌고, Ctrl+Shift+U를 누르면 수식 입력줄이 넓어져서 모든 줄이 보여요.
=LET(
ratio, B2/C2,
mult, IFNA(XLOOKUP(A2, $G$2:$G$5, $H$2:$H$5), 1),
IF(ratio >= 1, B2 * $H$7 * mult, 0)
)
위에서 아래로 읽어 보세요. 비율은 매출 나누기 목표예요. 배율은 표에서 가져오고, 표에 없는 담당자는 1이에요. 목표를 달성했으면 매출 × 보너스율 × 배율을, 아니면 0을 줘요.
Ari는 비율이 1.15, 배율이 1.1이니 보너스는 9,200 × 5% × 1.1 = 506이에요. 아래로 복사하면 보너스는 506, 0, 480, 0, 862.5예요.
동적 배열과 함께 쓰는 LET
이름에는 목록 전체를 담을 수도 있어요. 다음 수식은 목표를 달성한 담당자를 나열하고 인원도 세요. FILTER 결과를 두 번 쓰지만 계산은 한 번만 해요.
=LET(met,FILTER(A2:A6,B2:B6>=C2:C6),ROWS(met)&"명: "&TEXTJOIN(", ",TRUE,met))결과는 3명: Ari, Jon, Dev예요.
IFNA와 IFERROR: 예상한 오류만 잡기
Lena는 배율 표에 없어서 XLOOKUP이 #N/A를 돌려줘요. 예상할 수 있는 빈자리니 처리해 두면 돼요.
=IFNA(XLOOKUP(A5,$G$2:$G$5,$H$2:$H$5),"배율 없음")Lena에게는 배율 없음이 표시돼요. Ari에게는 실제 값인 1.1을 그대로 돌려줘요.
XLOOKUP은 네 번째 인수로 이 일을 직접 할 수도 있어요. =XLOOKUP(A5,$G$2:$G$5,$H$2:$H$5,"배율 없음")처럼요. VLOOKUP이나 INDEX/MATCH처럼 그런 인수가 없는 조회에는 IFNA를 쓰세요.
IFERROR는 왜 안 될까요? 모든 오류를 잡기 때문이에요. 꼭 봐야 하는 오류까지요.
| 함수 | 잡는 오류 | 이럴 때 쓰세요 |
|---|---|---|
IFNA | #N/A만(조회 결과가 없음) | 일치하는 값이 없는 게 정상이고, 대신 무엇을 보여 줄지 정해져 있을 때 |
IFERROR | #N/A, #DIV/0!, #VALUE!, #REF!, #NAME? 등 모든 오류 | 어떤 오류든 같은 값으로 바꿔도 된다는 걸 확인했을 때 |
누군가 C3에 있는 Mina의 목표를 지웠다고 해 볼게요. =IFERROR(B3/C3,0)은 그때 생기는 #DIV/0!을 0으로 바꿔서, Mina의 상태가 조용히 미달이 되고 목표가 비었다는 걸 아무도 모르게 돼요. IFERROR가 없으면 #DIV/0!이 드러나서 누군가 고치게 돼요. 보너스 수식에서 조회 부분만 IFNA로 감싼 것처럼, 예상할 수 있는 이유로 실패하는 부분만 감싸세요.
자주 하는 실수
- 마지막 계산을 빠뜨리기. 마지막 인수는 이름-값 쌍이 아니라 결과여야 해요.
=LET(ratio,B2/C2)는 완성되지 않은 수식이에요. - 셀 주소처럼 보이는 이름.
r1,q4,tax2026은 모두 실제 셀 주소라서 이름으로 쓸 수 없어요.ratio,quarter4,taxRate처럼 지으세요. - 정의하기 전에 이름 쓰기. 각 값에서는 왼쪽에서 정의한 이름만 쓸 수 있고, 오른쪽에서 정의한 이름은 쓸 수 없어요.
- 수식 전체를 IFERROR로 감싸기. 잡으려던 조회 실패뿐 아니라 오타, 삭제된 범위, 0으로 나누기까지 숨겨요.
- LET 이름을 다른 셀에서 쓰려고 하기. 이름은 수식 하나 안에서만 통해요. 통합 문서 전체에서 쓸 이름은 수식 then 정의된 이름 then 이름 정의로 만드세요.
연습
연습
가장 긴 수식 다시 쓰기
- 쓰고 있는 통합 문서에서 가장 긴 수식, 특히 같은 부분이 반복되는 수식을 찾으세요.
- 결과를 비교할 수 있게 먼저 통합 문서를 복사하세요(F12로 다른 이름으로 저장).
- 중간 단계마다 이름을 붙여
LET으로 수식을 다시 만드세요. Alt+Enter로 여러 줄에 걸쳐 정리하세요. - 각 이름을 잠시 마지막 인수로 두고 값을 확인하세요.
- 여러 행에서 새 결과와 예전 결과를 비교하세요.
- 수식이 실패할 수 있는 곳마다 판단해 보세요. 조회 실패라서
IFNA로 처리할 곳인가요, 아니면IFERROR가 꼭 봐야 할 실수를 숨기게 될 곳인가요?
직접 해 보기4개 중 0개 완료
- D2에 LET으로 매출 나누기 목표에 ratio라는 이름을 붙이고, ratio가 1 이상이면 달성, 아니면 미달을 표시해 보세요.
- D3에 Mina의 상태를 같은 방식으로 구해 보세요.
- E5에 G2:H5에서 Lena의 배율을 찾아보세요. Lena는 표에 없으니 IFNA로 #N/A를 잡아 배율 없음을 표시하세요.
- F2에 LET으로 달성률과 Ari의 배율(없으면 1)에 이름을 붙이고, 목표를 달성했으면 매출 × H7의 보너스율 × 배율을, 아니면 0을 구해 보세요.
점선으로 표시된 셀을 클릭하고, 입력줄에 수식을 쓴 다음 Enter를 누르세요.
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | 담당자 | 매출 | 목표 | 상태 | 배율 | 보너스 | 담당자 | 배율 |
| 2 | Ari | 9,200 | 8,000 | Ari | 1.1 | |||
| 3 | Mina | 6,100 | 7,000 | Mina | 1 | |||
| 4 | Jon | 8,000 | 8,000 | Jon | 1.2 | |||
| 5 | Lena | 5,400 | 6,000 | Dev | 1.15 | |||
| 6 | Dev | 15,000 | 12,000 | |||||
| 7 | 보너스율 | 5% |
실력 점검
B2/C2가 반복되는 수식을 비율이 한 번만 계산되도록 다시 쓸 수 있나요?- 뒤 단계가 앞 단계를 쓰는, 이름 붙인 단계가 두 개 이상인
LET수식을 쓸 수 있나요? - 수식을 만드는 동안 이름 붙인 단계 하나가 무엇을 돌려주는지 확인할 수 있나요?
IFERROR와IFNA의 차이와 각각 언제 알맞은지 설명할 수 있나요?
관련 자료
도움이 되었나요? 틀린 부분을 발견하셨나요? 피드백 보내기 · admin@arumsoft.com