=LET(total,SUM(B2:B6),IF(total>500,total*0.9,total)) cộng B2:B6 một lần, đặt tên kết quả là total, rồi dùng tên đó hai lần: một lần để kiểm tra và một lần để trả về. Không có LET, bạn sẽ phải viết SUM ba lần: =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 |
Tổng các đơn là 645, trên 500, nên D2 hiện 580,5. Đổi B4 thành 50 thì tổng giảm còn 485, dưới ngưỡng, nên D2 hiện 485 và không được giảm giá.
Cú pháp hàm LET
=LET(name1, value1, [name2, value2, ...], calculation)
- Mỗi
namelà một từ bạn tự chọn, theo sau làvaluemà nó đại diện: một số, một vùng hoặc một công thức. - Bạn có thể khai báo tối đa 126 cặp. Một giá trị có thể dùng bất kỳ tên nào đã khai báo trước nó.
- Đối số cuối cùng là
calculation, phép tính dùng các tên đó và cho ra kết quả.
LET cần Excel 2021, Excel 2024 hoặc Microsoft 365. Trong Excel 2019 trở về trước, nó hiện #NAME?. Google Sheets có LET với cùng cú pháp.
LET với nhiều biến
Các tên giúp công thức theo từng hàng đọc như một câu văn. Ở đây mỗi hàng tính một tổng phụ và giảm 10% khi vượt quá 100:
| 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 |
Chiếc túi 120 thành 108, những chiếc cốc 120 cũng thành 108, và chiếc bàn 150 thành 135; bút (25) và đèn (70) giữ nguyên. Công thức được viết ở D2 rồi kéo xuống, và subtotal mang một giá trị khác nhau ở mỗi hàng.
Một tên có thể dựa trên tên trước nó: =LET(x,2,y,x*3,x+y) gán x bằng 2, y bằng 6, và trả về 8.
Tra cứu một lần rồi dùng lại
Một phép tra cứu xuất hiện hai lần trong IF sẽ chạy hai lần. LET chỉ chạy nó một lần. Công thức này trả về giá cộng thêm 20%, hoặc một thông báo khi không có sản phẩm:
| 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 |
Tìm thấy Pear, nên F2 hiện 1,8. Kiwi không có trong danh sách, XLOOKUP trả về văn bản rỗng được truyền ở đối số thứ tư, và F3 hiện Not found. Nhập Kiwi vào A4 và F3 đổi thành giá của nó cộng thêm 20%.
LET với FILTER
LET hữu ích nhất với mảng động, khi một vùng đã lọc cần dùng nhiều lần. Công thức này đặt tên cho các hàng khớp, đếm chúng và tính doanh số trung bình, tất cả trong một công thức:
| 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 |
Với North, kết quả là "3 reps, average 126.7". Chọn South ở F1 để có "2 reps, average 87.5". INDEX(rows,0,3) lấy cột thứ ba của các hàng đã lọc. Không có LET, FILTER sẽ phải viết hai lần.
Lịch tháng với các ô trống
Lịch ở trang SEQUENCE hiển thị cả các ngày của tháng liền kề. LET đặt tên cho ngày đầu tháng và lưới ngày, rồi để trống mọi ngày nằm ngoài tháng:
| 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 |
Đổi DATE(2026,4,1) thành DATE(2026,5,1) và lưới được vẽ lại cho tháng Năm. Vì ngày đầu tháng chỉ được đặt tên một lần, chỉ có một ngày cần sửa chứ không phải ba.
Luyện tập: phí vận chuyển với 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 |
Đến lượt bạn: Trong D2, tính tổng các số tiền ở B2:B6. Nếu tổng dưới 800, cộng thêm 25 tiền vận chuyển; nếu không thì trả về tổng.
Quy tắc đặt tên và lỗi trong LET
Phần lớn lỗi của LET đến từ các tên:
- Tên phải bắt đầu bằng chữ cái và không có dấu cách.
unit pricesẽ lỗi; hãy dùngunit_pricehoặcunitPrice. - Tên không được trông giống địa chỉ ô.
a1vàtax2026là địa chỉ ô trong Excel (TAX là một cột), nên LET từ chối chúng với #NAME?.ratehoặctax_2026thì dùng được. - Tên phải được viết giống hệt nhau mỗi lần dùng. Gõ sai ở chỗ dùng sẽ cho #NAME?, vì Excel đi tìm một hàm hoặc vùng được đặt tên có cách viết đó.
- Đối số cuối cùng phải là một phép tính.
=LET(x,5)có tên và giá trị nhưng không có gì để trả về, nên Excel từ chối nó. - Tên chỉ tồn tại bên trong công thức của chính nó. Để dùng lại một phép tính ở nhiều ô, hãy lưu nó thành một LAMBDA có tên.
=LET(a1,5,a1*2) #NAME? (a1 is a cell address)
=LET(rate,8%,100*rate) 8
Câu hỏi thường gặp
Hàm LET trong Excel làm gì?
Hàm này đặt tên cho các giá trị bên trong một công thức. =LET(total,SUM(B2:B6),total*2) tính SUM(B2:B6) một lần, gọi nó là total và trả về total nhân 2. Các tên chỉ tồn tại bên trong công thức đó.
Làm sao dùng nhiều biến trong LET?
Thêm các cặp tên và giá trị trước phép tính cuối cùng: =LET(price,B2,qty,C2,price*qty). Một giá trị phía sau có thể dùng tên đã đặt phía trước, như =LET(x,2,y,x*3,x+y), trả về 8.
Vì sao công thức LET trả về #NAME?
Có thể Excel của bạn không có LET (hàm này cần Excel 2021 hoặc Microsoft 365), một tên bị gõ sai ở chỗ dùng, hoặc một tên không hợp lệ, ví dụ tên trông giống địa chỉ ô như a1 hay tax2026, hoặc tên bắt đầu bằng số.
LET có làm công thức Excel nhanh hơn không?
Có thể. Không có LET, một biểu thức lặp lại, như cùng một XLOOKUP viết hai lần trong IF, được tính mỗi lần nó xuất hiện. Với LET, nó chỉ được tính một lần và kết quả được dùng lại.