=LET(total,SUM(B2:B6),IF(total>500,total*0.9,total))는 B2:B6을 한 번 더해 결과에 total이라는 이름을 붙이고, 그 이름을 두 번 씁니다. 한 번은 검사할 때, 한 번은 반환할 때입니다. LET이 없으면 SUM을 세 번 써야 합니다: =IF(SUM(B2:B6)>500,SUM(B2:B6)*0.9,SUM(B2:B6)).
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Amount | Total to pay | |
| 2 | A-101 | 120 | 580.5 | |
| 3 | A-102 | 95 | ||
| 4 | A-103 | 210 | ||
| 5 | A-104 | 80 | ||
| 6 | A-105 | 140 |
주문 합계는 500을 넘는 645이므로 D2는 580.5를 보여 줍니다. B4를 50으로 바꾸면 합계가 기준보다 낮은 485로 떨어지므로 D2는 할인 없이 485를 보여 줍니다.
LET 구문
=LET(name1, value1, [name2, value2, ...], calculation)
- 각
name은 직접 고른 단어이며, 그 뒤에 이름이 나타내는value가 옵니다. 숫자, 범위, 수식이 될 수 있습니다. - 쌍은 126개까지 정의할 수 있습니다. 값은 앞에서 정의한 이름을 쓸 수 있습니다.
- 마지막 인수는 이름을 써서 결과를 내는
calculation입니다.
LET은 Excel 2021, Excel 2024 또는 Microsoft 365가 필요합니다. Excel 2019 이하에서는 #NAME?이 표시됩니다. Google Sheets에도 같은 구문의 LET이 있습니다.
변수가 여러 개인 LET
이름을 쓰면 행마다 쓰는 수식이 문장처럼 읽힙니다. 여기서는 각 행이 소계를 구하고 100을 넘으면 10%를 할인합니다:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Item | Price | Qty | To pay |
| 2 | Pen | 2.5 | 10 | 25 |
| 3 | Bag | 40 | 3 | 108 |
| 4 | Lamp | 35 | 2 | 70 |
| 5 | Mug | 8 | 15 | 108 |
| 6 | Desk | 150 | 1 | 135 |
가방의 120은 108이, 머그컵의 120도 108이, 책상의 150은 135가 됩니다. 펜(25)과 램프(70)는 그대로입니다. 수식은 D2에 쓰고 아래로 채웠으며, subtotal은 행마다 다른 숫자를 뜻합니다.
이름은 앞의 이름을 바탕으로 만들 수 있습니다: =LET(x,2,y,x*3,x+y)는 x를 2로, y를 6으로 정하고 8을 반환합니다.
조회를 한 번 계산해 재사용하기
IF 안에 두 번 나오는 조회는 두 번 실행됩니다. LET은 한 번만 실행합니다. 다음은 가격에 20%를 더한 값을, 제품이 없으면 메시지를 반환합니다:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Product | Region | Price | Look for | Price + 20% | |
| 2 | Apple | North | 1.2 | Pear | 1.8 | |
| 3 | Pear | South | 1.5 | Kiwi | Not found | |
| 4 | Carrot | East | 0.8 | |||
| 5 | Bread | North | 2.4 | |||
| 6 | Milk | South | 1.1 |
Pear는 찾을 수 있으므로 F2는 1.8을 보여 줍니다. Kiwi는 목록에 없어서 XLOOKUP이 네 번째 인수로 준 빈 텍스트를 반환하고 F3은 Not found를 보여 줍니다. A4에 Kiwi를 입력하면 F3이 그 가격에 20%를 더한 값으로 바뀝니다.
FILTER와 함께 쓰는 LET
LET은 필터링한 범위가 두 번 이상 필요한 동적 배열에서 가장 쓸모가 있습니다. 다음은 수식 하나에서 일치하는 행에 이름을 붙이고, 그 수를 세고, 매출 평균을 구합니다:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Region | North | |
| 2 | Ann | North | 120 | Summary | 3 reps, average 126.7 | |
| 3 | Ben | South | 80 | |||
| 4 | Cara | North | 200 | |||
| 5 | Dan | East | 150 | |||
| 6 | Eve | South | 95 | |||
| 7 | Finn | North | 60 |
North에서는 "3 reps, average 126.7"을 보여 줍니다. F1에서 South를 고르면 "2 reps, average 87.5"가 나옵니다. INDEX(rows,0,3)은 필터링한 행의 세 번째 열을 가져옵니다. LET이 없으면 FILTER를 두 번 써야 합니다.
다른 달은 비운 월간 달력
SEQUENCE 페이지의 달력은 이웃한 달의 날도 보여 줍니다. LET으로 그달 1일과 날짜 격자에 이름을 붙인 뒤, 그달 밖의 날짜를 모두 비웁니다:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Sun | Mon | Tue | Wed | Thu | Fri | Sat |
| 2 | 1 | 2 | 3 | 4 | |||
| 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 4 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 5 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 6 | 26 | 27 | 28 | 29 | 30 |
DATE(2026,4,1)을 DATE(2026,5,1)로 바꾸면 격자가 5월로 다시 그려집니다. 그달 1일에 이름을 한 번만 붙였으므로 바꿀 날짜가 세 개가 아니라 하나뿐입니다.
연습: LET으로 배송비 계산하기
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Amount | To pay | |
| 2 | A-101 | 120 | ||
| 3 | A-102 | 95 | ||
| 4 | A-103 | 210 | ||
| 5 | A-104 | 80 | ||
| 6 | A-105 | 140 |
직접 해 보세요: D2에서 B2:B6의 금액을 합하세요. 합계가 800 미만이면 배송비 25를 더하고, 아니면 합계를 반환합니다.
LET 이름 규칙과 오류
LET 오류는 대부분 이름에서 생깁니다:
- 이름은 글자로 시작해야 하며 공백이 없어야 합니다.
unit price는 실패하므로unit_price나unitPrice를 쓰세요. - 이름은 셀 주소처럼 보이면 안 됩니다.
a1과tax2026은 엑셀에서 셀 주소이므로(TAX는 열 이름) LET이 #NAME?으로 거부합니다.rate나tax_2026은 됩니다. - 이름은 쓸 때마다 철자가 정확히 같아야 합니다. 쓰는 곳에서 오타가 나면 엑셀이 그 철자의 함수나 이름 범위를 찾으므로 #NAME?이 나옵니다.
- 마지막 인수는 계산이어야 합니다.
=LET(x,5)는 이름과 값은 있지만 반환할 것이 없으므로 엑셀이 받아들이지 않습니다. - 이름은 자신의 수식 안에만 존재합니다. 여러 셀에서 계산을 재사용하려면 대신 이름을 붙인 LAMBDA로 저장하세요.
=LET(a1,5,a1*2) #NAME? (a1 is a cell address)
=LET(rate,8%,100*rate) 8
자주 묻는 질문
엑셀에서 LET 함수는 무엇을 하나요?
수식 하나 안에서 값에 이름을 붙입니다. =LET(total,SUM(B2:B6),total*2)는 SUM(B2:B6)을 한 번 계산해 total이라 부르고 total에 2를 곱한 값을 반환합니다. 이름은 그 수식 안에만 존재합니다.
LET에서 변수를 여러 개 쓰려면 어떻게 하나요?
마지막 계산 앞에 이름과 값의 쌍을 더 넣습니다: =LET(price,B2,qty,C2,price*qty). 뒤의 값은 앞의 이름을 쓸 수 있으며, =LET(x,2,y,x*3,x+y)는 8을 반환합니다.
LET 수식이 #NAME?을 반환하는 이유는 무엇인가요?
엑셀에 LET이 없거나(Excel 2021이나 Microsoft 365가 필요), 이름을 쓰는 곳에서 철자가 틀렸거나, 허용되지 않는 이름이기 때문입니다. 예를 들어 a1이나 tax2026처럼 셀 주소로 보이는 이름이나 숫자로 시작하는 이름입니다.
LET을 쓰면 엑셀 수식이 빨라지나요?
그럴 수 있습니다. LET이 없으면 IF 안에 같은 XLOOKUP을 두 번 쓴 경우처럼 반복되는 식이 나올 때마다 계산됩니다. LET을 쓰면 한 번 계산하고 결과를 재사용합니다.