Google Sheets Nâng Cao: Làm Chủ Hàm LAMBDA, MAP, REDUCE, SCAN (Hướng Dẫn 2026)
LAMBDA và bộ hàm helper (MAP, REDUCE, SCAN, BYROW, BYCOL, MAKEARRAY) là nhóm công thức mạnh nhất của Google Sheets hiện đại.
Bài viết hướng dẫn từng hàm với ví dụ thực tế, giúp bạn thay hàng chục công thức lặp bằng một công thức duy nhất — sạch, nhanh và dễ bảo trì.
Mục lục:
1. LAMBDA Là Gì Và Tại Sao Quan Trọng?
LAMBDA cho phép bạn tạo một hàm tùy chỉnh ngay trong ô tính — không cần Apps Script, không cần add-on. Bạn định nghĩa các tham số đầu vào và một biểu thức tính toán, sau đó tái sử dụng logic đó ở bất kỳ đâu. Đây là bước nhảy vọt biến Google Sheets từ công cụ bảng tính thành một môi trường lập trình hàm thực thụ.
Trước LAMBDA, để xử lý một dải dữ liệu bạn thường phải kéo công thức xuống hàng nghìn dòng — nặng file, dễ lỗi, khó kiểm soát. Với LAMBDA cùng nhóm hàm helper, một công thức duy nhất tại một ô có thể xử lý toàn bộ dải dữ liệu và tự động mở rộng khi có dòng mới.
Vì sao dân chuyên nghiệp yêu thích LAMBDA?
- Giảm số công thức lặp, file nhẹ và chạy nhanh hơn
- Logic tập trung một chỗ — sửa 1 lần, áp dụng toàn bộ
- Kết hợp mượt với QUERY, ARRAYFORMULA, IMPORTRANGE
- Không phụ thuộc Apps Script nên không cần cấp quyền
2. Cú Pháp LAMBDA Và Hàm Đặt Tên
Cú pháp cơ bản của LAMBDA gồm danh sách tham số và một biểu thức cuối cùng:
=LAMBDA(x, y, x * y)(4, 5) // Kết quả: 20
Phần (4, 5) ở cuối là cách gọi ngay hàm với đối số cụ thể. Nhưng sức mạnh thật sự đến khi bạn đặt tên cho hàm qua menu Data → Named functions. Ví dụ, tạo hàm TINHVAT tính giá đã bao gồm VAT:
// Named function: TINHVAT(gia, thue)
=LAMBDA(gia, thue, gia * (1 + thue))
// Dùng ở bất kỳ ô nào:
=TINHVAT(100000, 0.1) // 110000
Từ đây, cả team dùng chung một hàm chuẩn hóa — không ai gõ nhầm công thức, không lệch cách tính giữa các sheet. Đây chính là nguyên tắc DRY (Don't Repeat Yourself) áp dụng cho bảng tính.
3. MAP — Biến Đổi Từng Phần Tử Trong Mảng
Hàm MAP áp dụng một LAMBDA lên từng phần tử của một hoặc nhiều mảng và trả về mảng kết quả cùng kích thước. Thay vì kéo công thức, bạn viết một lần tại ô đầu tiên.
Ví dụ: cột A là giá gốc (A2:A100), muốn tính giá sau khi giảm 15% cho toàn bộ:
=MAP(A2:A100, LAMBDA(gia, gia * 0.85))
MAP còn xử lý nhiều mảng song song. Giả sử A là số lượng, B là đơn giá, tính thành tiền:
=MAP(A2:A100, B2:B100, LAMBDA(sl, dg, sl * dg))
Mẹo: MAP đặc biệt hữu ích khi logic phức tạp hơn phép nhân đơn giản — ví dụ có điều kiện IF bên trong LAMBDA. Nếu bạn đang dùng nhiều công thức QUERY nâng cao, MAP là cách gọn gàng để hậu xử lý kết quả.
4. REDUCE — Gộp Cả Mảng Thành Một Giá Trị
REDUCE duyệt qua từng phần tử và tích lũy kết quả vào một biến "accumulator". Cú pháp: REDUCE(giá_trị_khởi_tạo, mảng, LAMBDA(acc, giá_trị, biểu_thức)).
Ví dụ tính tổng có điều kiện — chỉ cộng các đơn hàng trên 500.000đ:
=REDUCE(0, A2:A100, LAMBDA(tong, gt, IF(gt > 500000, tong + gt, tong)))
REDUCE mạnh ở chỗ có thể tích lũy nhiều thứ hơn một con số — ví dụ nối chuỗi để tạo danh sách mã sản phẩm duy nhất, hoặc dựng một chuỗi báo cáo động. Nó thay thế cho những vòng lặp mà trước đây bắt buộc phải viết bằng Apps Script.
5. SCAN — Tính Lũy Kế (Running Total) Thông Minh
SCAN giống REDUCE nhưng trả về toàn bộ các bước trung gian thay vì chỉ giá trị cuối. Đây là công cụ hoàn hảo để tính số dư lũy kế, tồn kho chạy dần, hay doanh thu cộng dồn.
Ví dụ tính số dư lũy kế từ cột phát sinh (A2:A100):
=SCAN(0, A2:A100, LAMBDA(soDu, psinh, soDu + psinh))
Chỉ một công thức, bạn có cả cột lũy kế tự động cập nhật khi thêm dòng. So với cách cũ là gõ =B2+A3 rồi kéo xuống — SCAN sạch hơn nhiều và không bao giờ đứt gãy khi chèn dòng. Nếu bạn thường xây Pivot Table và báo cáo tổng hợp, SCAN là mảnh ghép lý tưởng cho phần biểu đồ xu hướng.
6. BYROW, BYCOL Và MAKEARRAY
6.1 BYROW — Tính Theo Từng Dòng
Khi cần một giá trị cho mỗi dòng của một dải nhiều cột, BYROW là lựa chọn. Ví dụ tính trung bình điểm 3 môn (B2:D100) cho từng học viên:
=BYROW(B2:D100, LAMBDA(dong, AVERAGE(dong)))
6.2 BYCOL — Tính Theo Từng Cột
Tương tự nhưng theo chiều dọc — ví dụ tính tổng doanh thu mỗi tháng khi các tháng nằm trên các cột khác nhau:
=BYCOL(B2:M100, LAMBDA(cot, SUM(cot)))
6.3 MAKEARRAY — Tạo Mảng Từ Con Số
MAKEARRAY(số_dòng, số_cột, LAMBDA(r, c, biểu_thức)) sinh ra một mảng theo vị trí dòng/cột. Rất hợp để dựng bảng cửu chương, lịch, hay ma trận tính toán:
=MAKEARRAY(9, 9, LAMBDA(r, c, r * c)) // Bảng cửu chương 9x9
Muốn Áp Dụng Ngay Vào Quản Lý Kinh Doanh?
SheetStore dựng sẵn dashboard, báo cáo tự động trên Google Sheets — bạn chỉ việc nhập liệu.
Đăng Ký Demo Miễn Phí7. Case Study Áp Dụng Thực Tế
Một chủ shop online cần bảng tính doanh thu lũy kế theo ngày, đồng thời gắn nhãn "Đạt/Chưa đạt" so với mục tiêu 2 triệu/ngày. Trước đây họ dùng 3 cột phụ và kéo hàng trăm dòng công thức. Với LAMBDA helper, tất cả gói gọn:
// Cột lũy kế:
=SCAN(0, B2:B100, LAMBDA(acc, x, acc + x))
// Cột đánh giá theo từng ngày:
=MAP(B2:B100, LAMBDA(dt, IF(dt >= 2000000, "Đạt", "Chưa đạt")))
Kết quả: file nhẹ hơn 40%, không còn lỗi kéo công thức, và khi thêm ngày mới mọi thứ tự cập nhật. Đây chính là tinh thần tối giản (KISS) mà bảng tính chuyên nghiệp hướng tới.
Để đi xa hơn, hãy kết hợp bộ hàm này với ARRAYFORMULA, QUERY và IMPORTRANGE để gộp dữ liệu từ nhiều sheet, và dùng IMPORTRANGE kết nối nhiều file khi dữ liệu nằm rải rác. Khi logic vượt quá khả năng công thức, bạn có thể chuyển tiếp sang Apps Script để tự động hóa nâng cao.
Lưu ý hiệu năng
LAMBDA helper rất mạnh nhưng nếu lồng REDUCE/SCAN trên hàng chục nghìn dòng có thể chậm. Với dữ liệu cực lớn, cân nhắc giới hạn dải hoặc chuyển phần nặng sang Apps Script chạy nền.
8. Câu Hỏi Thường Gặp
Có. LAMBDA cùng MAP, REDUCE, SCAN, BYROW, BYCOL, MAKEARRAY đều có sẵn trên tài khoản Google cá nhân miễn phí lẫn Google Workspace, không cần cài add-on hay bật tính năng đặc biệt.
Hàm MAP khác ARRAYFORMULA như thế nào?ARRAYFORMULA áp dụng công thức có sẵn lên mảng, còn MAP cho phép bạn viết logic tùy chỉnh phức tạp (kể cả IF nhiều nhánh) qua LAMBDA. Với xử lý đơn giản, ARRAYFORMULA đủ dùng; với logic phức tạp theo từng phần tử, MAP rõ ràng và dễ đọc hơn.
Khi nào nên dùng REDUCE thay vì SUMIF?Dùng SUMIF cho tổng có điều kiện đơn giản. Dùng REDUCE khi cần logic tích lũy phức tạp mà SUMIF không làm được — ví dụ nối chuỗi, đếm có điều kiện nhiều tầng, hoặc tính toán phụ thuộc vào kết quả bước trước.
Named function có chia sẻ cho người khác được không?Được. Named function lưu theo từng file; khi bạn chia sẻ file, người khác dùng được hàm ngay. Bạn cũng có thể Import named function từ file khác qua menu Data → Named functions.
Bài viết liên quan:
📚 Bài Viết Liên Quan
- Google Sheets Nâng Cao Bài 3: IMPORTRANGE Và Kết Nối Dữ Liệu Nhiều Sheets
- Google Sheets Nâng Cao Bài 2: Conditional Formatting Nâng Cao Và Color Scales
- Google Sheets Nâng Cao Bài 1: Data Validation Và Dropdown List Chuyên Nghiệp
- Kết Hợp QUERY, ARRAYFORMULA Và IMPORTRANGE: Xây Dashboard Tự Động Trên Google Sheets 2026
Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
Google Workspace Certified, 5+ years experience
Bạn thấy bài viết hữu ích?
Đăng ký nhận thông báo khi có bài viết mới.


