Báo cáo doanh thu lũy kế theo tháng thường tốn 30 phút mỗi khi cập nhật. Kéo công thức xuống từng dòng, kiểm tra lại vùng tham chiếu tuyệt đối, sao chép sang sheet mới. Hàm SCAN trong Excel 2024 giải quyết vấn đề này bằng một dòng công thức duy nhất, tự động tính tổng lũy kế cho toàn bộ cột và cập nhật ngay khi dữ liệu thay đổi.

Hàm SCAN hoạt động như thế nào
Hàm SCAN là hàm mảng động mới xuất hiện trong Excel 2024 và Excel 365. Khác với công thức tổng truyền thống phải sao chép xuống từng ô, SCAN xử lý toàn bộ dải dữ liệu một lần và trả về mảng kết quả tích lũy.
Cú pháp cơ bản của SCAN gồm ba thành phần chính:
=SCAN([giá_trị_khởi_đầu]; mảng; lambda(bộ_tích_lũy; giá_trị))
- giá_trị_khởi_đầu: Điểm bắt đầu cho phép tính, thường là 0 với số hoặc “” với văn bản
- mảng: Dải dữ liệu cần tính toán, ví dụ B2:B13 chứa doanh thu các tháng
- lambda: Hàm tùy chỉnh định nghĩa phép tính áp dụng cho từng phần tử
Hàm lambda bên trong SCAN nhận hai tham số. Tham số đầu tiên là bộ tích lũy lưu tổng hiện tại, tham số thứ hai là giá trị đang xử lý trong mảng. Với mỗi bước, SCAN cộng giá trị mới vào bộ tích lũy, sau đó chuyển tổng này sang bước tiếp theo.
Tạo tổng lũy kế cơ bản trong 3 bước
Giả sử bảng Excel có cột A chứa tháng, cột B chứa doanh thu từng tháng. Bạn muốn cột C hiển thị tổng lũy kế từ tháng 1 đến tháng hiện tại.
Bước 1: Đặt con trỏ tại ô C2
Đây là vị trí đầu tiên của cột kết quả. SCAN sẽ tự động điền xuống các ô bên dưới.
Bước 2: Nhập công thức SCAN
=SCAN(0; B2:B13; LAMBDA(tổng; doanh_thu; tổng + doanh_thu))
Công thức này bắt đầu từ 0, quét dải B2:B13, và với mỗi dòng cộng doanh thu vào tổng hiện tại.
Bước 3: Nhấn Enter
Excel tự động điền kết quả xuống 12 dòng tương ứng với 12 tháng dữ liệu. Ô C2 hiển thị doanh thu tháng 1, C3 hiển thị tổng tháng 1 cộng tháng 2, và cứ thế tiếp tục.
Khi cập nhật số liệu ở cột B, toàn bộ cột C tự động tính lại không cần thao tác thêm. Phương pháp cũ yêu cầu kéo công thức xuống và kiểm tra tham chiếu ô, mất khoảng 2 phút với 12 dòng. SCAN hoàn thành ngay lập tức.
Tính Year-to-Date tự động reset hàng năm
Tổng lũy kế đơn giản chạy liên tục qua các năm. Với báo cáo tài chính, bạn cần reset về 0 vào đầu mỗi năm mới để theo dõi doanh thu riêng từng năm.
Giả sử cột A có ngày tháng đầy đủ, cột B có doanh thu. Công thức Year-to-Date tự động reset cần kiểm tra xem mỗi dòng có phải tháng 1 không.
Công thức Year-to-Date với reset tự động:
=SCAN(0; B2:B25; LAMBDA(tổng; doanh_thu;
NẾU(THÁNG(OFFSET(doanh_thu;;-1))<>1; tổng + doanh_thu; doanh_thu)))
Công thức này hoạt động qua ba bước logic:
1. Kiểm tra tháng hiện tại
Hàm OFFSET(doanh_thu;;-1) dịch sang cột bên trái để lấy giá trị ngày tháng từ cột A. Hàm THÁNG trích xuất số tháng từ ngày đó.
2. Quyết định cộng hay reset
Nếu tháng khác 1, công thức cộng doanh thu vào tổng hiện tại. Nếu tháng bằng 1, công thức chỉ lấy doanh thu tháng đó làm điểm khởi đầu mới, bỏ qua tổng năm trước.
3. Trả về kết quả tích lũy
Mỗi dòng nhận tổng Year-to-Date từ đầu năm đến tháng hiện tại. Khi gặp tháng 1 của năm mới, tổng reset về giá trị doanh thu tháng 1 đó.
Phương pháp cũ dùng TỔNG với tham chiếu hỗn hợp kiểu $B$2:B5, phải điều chỉnh thủ công mỗi khi qua năm mới. SCAN xử lý tự động cho nhiều năm dữ liệu.
So sánh SCAN với phương pháp OFFSET truyền thống
Trước Excel 2024, công thức Year-to-Date thường dùng tổ hợp TỔNG và OFFSET kéo dài nhiều dòng. Ví dụ:
=TỔNG(OFFSET($B$2; 0; 0; DÒNG()-DÒNG($B$2)+1; 1))
Công thức này yêu cầu hiểu rõ cách OFFSET di chuyển vùng tham chiếu dựa trên số dòng. Sửa lỗi khó vì phải tính toán vị trí tương đối.
SCAN đơn giản hơn về mặt logic. Bạn định nghĩa phép tính cho một phần tử, Excel tự động áp dụng cho toàn bộ mảng. Không cần tính toán vị trí dòng hoặc điều chỉnh tham chiếu.
So sánh hiệu suất:
- Công thức OFFSET: Tính lại toàn bộ khi thay đổi bất kỳ ô nào, mất 1-2 giây với 1000 dòng
- Công thức SCAN: Chỉ tính lại phần bị ảnh hưởng, hoàn thành dưới 0.3 giây
So sánh bảo trì:
- OFFSET: Chỉnh sửa công thức cần điều chỉnh nhiều tham chiếu ô, dễ lỗi
- SCAN: Thay đổi logic trong LAMBDA, vùng mảng tự động cập nhật
Với dữ liệu trong Excel Table, SCAN tự động mở rộng khi thêm dòng mới. OFFSET cần cập nhật phạm vi thủ công hoặc dùng công thức phụ trợ.
Mẹo sử dụng SCAN hiệu quả
1. Dùng tên có ý nghĩa trong LAMBDA
Thay vì a và b, đặt tên mô tả như tổng và doanh_thu giúp công thức dễ đọc sau này.
2. Kết hợp với Excel Table
Tạo Table từ dữ liệu nguồn bằng Ctrl+T, sau đó tham chiếu đến cột Table trong SCAN. Công thức tự động áp dụng cho dòng mới không cần chỉnh sửa.
3. Xử lý giá trị lỗi
Nếu dải dữ liệu chứa ô trống hoặc lỗi, thêm hàm NẾULỖI vào phép tính:
=SCAN(0; B2:B25; LAMBDA(tổng; giá_trị;
NẾULỖI(tổng + giá_trị; tổng)))
Công thức này bỏ qua lỗi và giữ nguyên tổng hiện tại.
4. Tính Year-to-Date với năm tài khóa tùy chỉnh
Nếu năm tài chính bắt đầu tháng 4 thay vì tháng 1, thay đổi điều kiện từ <>1 thành <>4 trong công thức.
5. Xuất kết quả ra cột mới
SCAN trả về mảng động, bạn không thể gõ trực tiếp vào các ô trong mảng kết quả. Để sao chép giá trị cố định, chọn vùng kết quả, Ctrl+C, sau đó Dán giá trị chỉ.
Tương thích và yêu cầu hệ thống
Hàm SCAN chỉ khả dụng trong Excel for Microsoft 365 và Excel 2024. Các phiên bản cũ hơn như Excel 2021, 2019, hoặc 2016 không hỗ trợ hàm này.
Để kiểm tra, gõ =SCAN trong ô bất kỳ. Nếu Excel hiển thị gợi ý tự động với mô tả hàm, phiên bản của bạn hỗ trợ SCAN. Nếu Excel báo lỗi hoặc không nhận diện, cần nâng cấp lên Excel 365 hoặc Excel 2024.
File Excel chứa công thức SCAN mở bình thường trên máy không hỗ trợ, nhưng hiển thị lỗi #TÊN? thay vì kết quả. Người nhận cần Excel 365 hoặc 2024 để xem đúng dữ liệu.
Bắt đầu với báo cáo đơn giản nhất cần tổng lũy kế. Sau khi quen cú pháp SCAN và LAMBDA, áp dụng cho các phép tính phức tạp hơn như đếm có điều kiện, tìm giá trị lớn nhất lũy kế, hoặc tính trung bình động. Hàm REDUCE hoạt động tương tự SCAN nhưng chỉ trả về kết quả cuối cùng thay vì toàn bộ mảng trung gian, hữu ích khi bạn chỉ cần tổng tổng thể.
