Công thức Excel của tôi từng dài 150 ký tự với ba lần lặp lại cùng một phép tính. Mỗi khi cần sửa một giá trị, tôi phải tìm và thay đổi ở ba vị trí khác nhau. Giờ đây, cùng kết quả nhưng công thức chỉ còn 75 ký tự nhờ hàm LET trong Excel 2021.

Hàm LET hoạt động như biến trong lập trình
LET cho phép gán tên cho kết quả tính toán và sử dụng lại trong cùng công thức. Thay vì lặp đi lặp lại phép tính, Excel tính toán một lần duy nhất và lưu kết quả vào tên bạn đã định nghĩa.
Cú pháp cơ bản:
=LET(tên1, giá_trị1, tên2, giá_trị2, phép_tính)
Tham số đầu tiên là tên bạn đặt, tham số thứ hai là giá trị hoặc phép tính được gán cho tên đó. Tham số cuối cùng là phép tính sử dụng các tên đã định nghĩa để trả về kết quả cuối cùng.
Ví dụ đơn giản nhất: =LET(x, 5, y, 3, x + y) trả về 8. Excel gán 5 cho x, gán 3 cho y, sau đó tính tổng. Dù đơn giản nhưng nguyên lý này giải quyết vấn đề lặp lại phép tính trong công thức phức tạp.
Vấn đề với công thức lặp lại phép tính
Trước khi biết LET, tôi thường viết công thức kiểu này cho tính tiền thưởng:
=IF(VLOOKUP(H2,B2:E9,4,0)>50,(VLOOKUP(H2,B2:E9,4,0)-50)*0.1,0)
Công thức này tính tiền thưởng dựa trên doanh số. Nếu doanh số vượt 50 triệu, nhận 10 phần trăm của phần vượt. Vấn đề là hàm VLOOKUP xuất hiện hai lần. Excel phải tìm kiếm trong bảng hai lần cho cùng một giá trị.
Chi phí thực tế đo được:
- Với 1000 dòng dữ liệu, công thức chạy 2000 lần VLOOKUP
- File 50MB mất 8 giây để mở và tính toán xong
- Mỗi lần thay đổi dữ liệu, Excel phải tính lại toàn bộ
- Nhấn phím xóa một ô, chờ 3 giây mới phản hồi
Đây chỉ là ví dụ nhỏ. Tôi từng có công thức với VLOOKUP lặp năm lần, kết hợp SUMIFS và IF lồng ba tầng. File đóng băng 15 giây mỗi lần nhấn Enter.
Viết lại công thức với LET
Cùng công thức tính tiền thưởng nhưng dùng LET:
=LET(doanhso, VLOOKUP(H2,B2:E9,4,0), IF(doanhso>50,(doanhso-50)*0.1,0))
Sự khác biệt rõ ràng:
- VLOOKUP chỉ chạy một lần duy nhất, kết quả lưu trong biến doanhso
- Biến doanhso được sử dụng hai lần trong phép tính IF
- Excel không tính lại VLOOKUP, chỉ lấy giá trị đã lưu
- Công thức ngắn hơn 40 ký tự so với phiên bản cũ
File 50MB của tôi giảm thời gian tính toán từ 8 giây xuống 4 giây. Microsoft tuyên bố công thức với LET chạy nhanh gấp đôi so với công thức thông thường, và con số thực tế tôi đo được chính xác như vậy.
Quy tắc đặt tên trong LET
Tên biến trong LET phải tuân theo nguyên tắc nghiêm ngặt của Excel:
Cho phép sử dụng:
- Chữ cái và số: doanhso, tien1, gia2024
- Dấu gạch dưới: doanh_so, tong_tien, ty_le
- Viết liền không dấu: doanhso thay vì doanh so
Không được phép:
- Tên trùng với hàm Excel: SUM, MAX, IF, VLOOKUP đều bị cấm
- Dấu cách: doanh so sẽ báo lỗi, phải dùng doanh_so hoặc doanhso
- Tên giống tham chiếu ô: A1, B10, C5 không dùng được vì Excel nhầm lẫn
Lựa chọn tốt nhất: Đặt tên mô tả rõ ràng giá trị bên trong. Thay vì x hay y, dùng tongTien, tyLeChietKhau, soLuongHang. Sau sáu tháng quay lại file, bạn vẫn hiểu ngay công thức đang làm gì mà không cần đọc lại toàn bộ.
Ví dụ thực tế với nhiều biến
Tôi có bảng tính chi phí sản phẩm gồm giá đơn vị, số lượng, và tỷ lệ chiết khấu. Công thức tính tổng chi phí sau khi trừ chiết khấu:
Không dùng LET:
=(A2*A3)-((A2*A3)*A4)
Phép tính A2 nhân A3 lặp hai lần trong công thức. Với file lớn và công thức phức tạp hơn, độ lặp tăng lên đáng kể. Excel phải tính toán cùng một phép nhân hai lần mỗi khi công thức chạy.
Dùng LET:
=LET(gia, A2, soLuong, A3, tyLe, A4, tongPhu, gia*soLuong, tongPhu-(tongPhu*tyLe))
Lợi ích rõ ràng:
- Mỗi phép tính chỉ thực hiện một lần
- Đọc công thức như đọc mã nguồn: định nghĩa biến trước, tính toán sau
- Sửa giá trị chỉ cần thay đổi một chỗ trong định nghĩa biến
- Không còn nguy cơ sửa thiếu chỗ trong công thức lặp
Công thức dài hơn về ký tự nhưng dễ hiểu hơn gấp nhiều lần. Khi quay lại file sau ba tháng, tôi nhớ ngay ý nghĩa từng phần mà không cần tra cứu tài liệu.
Kết hợp LET với hàm mảng động
Excel 365 và 2021 có hàm mảng động như FILTER, SORT, UNIQUE. Kết hợp với LET tạo công thức mạnh mẽ mà vẫn dễ đọc và bảo trì.
Ví dụ: Lọc danh sách phòng ban có tổng nhân sự trên 10 người, sau đó sắp xếp theo thứ tự giảm dần.
Công thức hoàn chỉnh:
=LET(phongBan, UNIQUE(A2:A100),
tongNhanSu, SUMIFS(B:B, A:A, phongBan),
ketQua, FILTER(phongBan, tongNhanSu>10),
SORT(ketQua, 1, -1))
Cách hoạt động từng bước:
- Biến phongBan lưu danh sách các phòng ban duy nhất từ cột A
- Biến tongNhanSu tính tổng nhân sự cho mỗi phòng ban trong danh sách phongBan
- Biến ketQua lọc chỉ giữ các phòng ban có trên 10 người
- Phép tính cuối sắp xếp kết quả theo thứ tự giảm dần
Không có LET, công thức này không thể viết trong một ô duy nhất mà không tạo tham chiếu vòng tròn. Đây là sức mạnh thực sự của LET khi làm việc với dữ liệu phức tạp và yêu cầu nhiều bước xử lý.
Khi nào nên dùng LET
Dùng LET khi gặp các tình huống này:
- Công thức có phép tính lặp lại từ hai lần trở lên
- Công thức dài quá 50 ký tự và khó đọc ngay lần đầu
- Cần kết hợp nhiều hàm Excel trong một công thức duy nhất
- Làm việc với mảng động và muốn tránh tham chiếu vòng tròn
- File tính toán chậm do công thức quá phức tạp
Không cần LET khi:
- Công thức đơn giản một dòng không có phép tính lặp: A1 cộng B1
- Chỉ sử dụng một hàm duy nhất: VLOOKUP hoặc SUM đơn thuần
- File nhỏ dưới 100 dòng với công thức đơn giản
- Đang dùng Excel 2019 hoặc cũ hơn vì LET không có sẵn
Tôi áp dụng quy tắc đơn giản: nếu công thức lặp lại bất kỳ phần nào, hoặc nếu đọc lại sau một tháng mà không hiểu ngay, đó là lúc cần LET.
Yêu cầu phiên bản và khả năng tương thích
Hàm LET chỉ có sẵn trong các phiên bản sau:
- Excel cho Microsoft 365
- Excel 2021 dành cho Windows
- Excel 2021 dành cho Mac
- Excel 2024 các phiên bản
- Excel cho web
Không có trong các phiên bản này:
- Excel 2019 và tất cả phiên bản cũ hơn
- Excel LTSC 2021 cho khách hàng thương mại với giấy phép số lượng lớn
Nếu chia sẻ file với người dùng Excel 2019, công thức LET sẽ hiển thị lỗi trên máy họ. Trong trường hợp này, giữ nguyên công thức truyền thống hoặc yêu cầu họ nâng cấp lên Excel 365. Không có cách nào để LET hoạt động trên phiên bản cũ.
Hiệu suất thực tế sau một tháng
Tôi chuyển đổi 15 file Excel sang dùng LET cho các công thức phức tạp. Đây là kết quả đo được sau một tháng sử dụng:
Cải thiện về tốc độ:
- File báo cáo hàng tháng: mở trong 6 giây thay vì 14 giây
- Bảng tính theo dõi dự án: tính toán lại trong 2 giây thay vì 5 giây
- Bảng tổng hợp dữ liệu: cập nhật nguồn trong 3 giây thay vì 8 giây
- File phân tích doanh thu: không còn đóng băng khi nhập dữ liệu
Cải thiện về bảo trì:
- Thời gian sửa công thức giảm 60 phần trăm nhờ dễ đọc
- Không còn lỗi do sửa thiếu chỗ trong công thức có phép tính lặp
- Đồng nghiệp hiểu công thức ngay mà không cần giải thích chi tiết
LET không phải giải pháp cho mọi vấn đề Excel, nhưng với công thức phức tạp có phép tính lặp, đây là công cụ thay đổi hoàn toàn cách làm việc. Bắt đầu từ những công thức đơn giản có hai lần lặp, sau đó áp dụng cho các trường hợp phức tạp hơn khi đã quen tay.
