31.7 C
Ho Chi Minh City
Thursday, June 4, 2026
AIPHOGPT.COM
Trang chủThủ Thuật ExcelCách sử dụng hàm SCAN trong Microsoft Excel để tính tổng lũy...

Cách sử dụng hàm SCAN trong Microsoft Excel để tính tổng lũy kế

Join LeQuocThai.Com on Telegram Channel

Đánh giá lequocthai.com:

0 / 5 Voted: 0 Votes: 0

Your page rank:

Trong nhiều năm, tôi đã phụ thuộc vào việc tính tổng lũy kế trong Microsoft Excel, nhưng các phương pháp cũ thường dễ phát sinh lỗi và thiếu ổn định. Kể từ khi Microsoft ra mắt hàm SCAN, tôi đã chuyển sang một cách tiếp cận hoàn toàn mới: linh hoạt, có khả năng tự điều chỉnh và vẫn hoạt động trơn tru ngay cả khi dữ liệu mở rộng.

Hàm SCAN có sẵn cho người dùng Excel thuộc gói Microsoft 365, Excel trên web, ứng dụng Excel cho di động/máy tính bảng, và các phiên bản Excel đơn lẻ (perpetual license) từ năm 2024 trở đi.

Tại sao phương pháp cũ lại có vấn đề?

Trước khi có hàm SCAN, để tính tổng lũy kế, tôi thường dùng kỹ thuật tham chiếu hỗn hợp (cố định điểm đầu).

Trong bảng tính này, cột B chứa lợi nhuận hàng tháng và tôi muốn hiển thị tổng lũy kế ở cột C.

Tại ô C2, tôi nhập:

=SUM($B$2:B2)

Thoạt nhìn, công thức này hoạt động tốt. Tuy nhiên, giả sử sau đó tôi phát hiện đã bỏ sót một tháng. Khi chèn thêm một hàng mới, Excel không tự động điền công thức vào hàng trống đó, để lại một ô trống cần điền thủ công.

Hơn nữa, nếu tôi điền sẵn dữ liệu ngày tháng cho cả năm vào cột A và kéo công thức ở cột C xuống cuối, thì trừ khi tôi sửa công thức phức tạp để kết hợp hàm IF, tôi sẽ nhận được một chuỗi tổng lặp lại trông rất rối mắt và khó theo dõi.

Các ví dụ trên dùng phạm vi dữ liệu thông thường. Nếu tôi định dạng dữ liệu thành Bảng Excel (Table), mọi thứ còn phức tạp hơn. Tham chiếu có cấu trúc (structured reference) của bảng không có cách tích hợp sẵn để cố định điểm bắt đầu, vì vậy tôi phải ghi đè logic bảng bằng tham chiếu ô thông thường hoặc dùng một công thức mới với hàm INDEX:

=SUM(INDEX([Profit],1):[@Profit])

Giải pháp: Hàm SCAN

Hàm SCAN chỉ cần nhập vào một ô duy nhất và tự động tràn kết quả (spill) xuống các ô bên dưới, đảm bảo tổng lũy kế luôn chính xác.

Khám phá:  Đừng chỉ nhấn "Lưu": 5 định dạng Excel sẽ thay đổi cách bạn làm việc thông minh hơn

Cú pháp hàm SCAN

Hàm SCAN có ba đối số:

=SCAN([initial_value], array, lambda)

Trong đó:

  • [initial_value]: Giá trị khởi tạo cho phép tính tích lũy. Tùy chọn, có thể để trống.
  • array: Mảng hoặc phạm vi dữ liệu cần xử lý.
  • lambda: Một hàm LAMBDA định nghĩa phép tính sẽ thực hiện trên từng phần tử.

Cấu trúc hàm LAMBDA

Đối số lambda chấp nhận ba tham số:

=LAMBDA(accumulator, value, body)

Trong đó:

  • accumulator: Giá trị tích lũy tạm thời (tổng tạm thời) được truyền từ bước trước và trả về kết quả.
  • value: Giá trị hiện tại trong mảng đang được xử lý.
  • body: Phép tính được áp dụng cho accumulatorvalue.

Lưu ý quan trọng trước khi bắt đầu

Thoạt đầu, SCAN có vẻ phức tạp hơn một phép SUM đơn giản. Nhưng sự khác biệt nằm ở chỗ: SCAN đòi hỏi học một chút ban đầu, nhưng một khi đã thiết lập, nó trở thành công cụ “cài rồi quên”, bảo vệ dữ liệu của bạn khỏi các lỗi thủ công thường gặp với phương pháp cũ.

Để làm theo hướng dẫn, bạn có thể tải xuống một bản sao miễn phí của sổ làm việc Excel được dùng trong các ví dụ. Sau khi nhấp vào liên kết, nút tải xuống nằm ở góc trên bên phải màn hình.

Ví dụ 1: Tính tổng lũy kế cơ bản

Trong bảng tính này, cột Tháng và Lợi nhuận được định dạng thành Bảng Excel (tên là T_Profits). Cột Tổng lũy kế nằm ngoài bảng, ở cột D. Cột C trống đóng vai trò cột đệm để bảng không tự động mở rộng bao gồm cột kết quả.

Khám phá:  Hàm UNIQUE của Excel không thể loại bỏ cột — trừ khi bạn dùng mẹo này

Công thức nhập vào ô D2:

=SCAN(0, T_Profits[Profit], LAMBDA(a, b, a+b))

Trong đó:

  • 0: Giá trị khởi tạo cho tổng.
  • T_Profits[Profit]: Mảng dữ liệu lợi nhuận từ bảng.
  • LAMBDA(a, b, a+b): Hàm lambda, với a là tổng tạm thời, b là giá trị hiện tại. a+b cộng dồn giá trị hiện tại vào tổng.

Bạn có thể dùng bất kỳ ký hiệu nào cho các đối số của LAMBDA. Tôi dùng ab cho ngắn gọn.

Lợi ích của phương pháp này thể hiện rõ khi tôi chèn một hàng mới vào giữa tập dữ liệu — công thức tự động xử lý thay đổi này, và tôi chỉ cần nhập lợi nhuận tháng vào ô trống trong cột B.

Tôi cũng không cần điền sẵn dữ liệu hay kéo công thức. Khi nhập một tháng mới vào ô A22, toàn bộ kết quả ở cột D tự động cập nhật.

Tương tự, nếu xóa một hàng, công thức vẫn hoạt động mà không gặp vấn đề gì.

Ví dụ 2: Tính trung bình động (Running Average)

Để có trung bình động cập nhật tự động, tôi kết hợp SCAN với SEQUENCE. Trong khi tổng lũy kế cộng giá trị, trung bình động chia tổng đó cho số lượng phần tử đã xử lý.

Công thức tại ô D2:

=SCAN(0, T_Profits[Profit], LAMBDA(a, b, a+b)) / SEQUENCE(ROWS(T_Profits[Profit]))

Trong đó:

  • Phần SCAN(...) tính tổng lũy kế như ví dụ 1.
  • SEQUENCE(ROWS(T_Profits[Profit])) tạo mảng số thứ tự {1;2;3;…} tương ứng số hàng dữ liệu.
  • Chia tổng lũy kế cho mảng số thứ tự này cho ra trung bình động đơn giản.

Lưu ý: Công thức này yêu cầu không có hàng trống trong phạm vi dữ liệu. Một ô trống sẽ được SEQUENCE coi là 0, làm sai lệch kết quả trung bình.

Khám phá:  6 bước quan trọng tôi luôn thực hiện trước khi chia sẻ màn hình bảng tính Excel

Ví dụ 3: Đặt lại tổng lũy kế theo năm (Year-to-Date Reset)

Các ví dụ trên tính tổng xuyên suốt nhiều năm. Giả sử tôi muốn tổng lũy kế đặt lại về 0 khi bắt đầu mỗi năm mới (tính tổng theo từng năm riêng biệt).

Công thức cần dùng:

=SCAN(0, SEQUENCE(ROWS(T_Profits[Profit])), LAMBDA(a, i, IF(MONTH(INDEX(T_Profits[Month], i))=1, INDEX(T_Profits[Profit], i), a + INDEX(T_Profits[Profit], i))))

Giải thích:

  • SEQUENCE(ROWS(...)) tạo danh sách số {1;2;3;…} đại diện cho vị trí từng hàng.
  • Trong LAMBDA, i là số hàng hiện tại.
  • INDEX(T_Profits[Month], i) lấy ngày tháng tại hàng i.
  • IF(MONTH(...)=1, ...): Nếu tháng đó là tháng 1, thì tổng được đặt lại và chỉ lấy lợi nhuận của tháng đó (INDEX(T_Profits[Profit], i)). Nếu không phải tháng 1, thì thực hiện cộng dồn như bình thường (a + INDEX(T_Profits[Profit], i)).

Bước hoàn thiện cuối cùng

Để bảng tính chuyên nghiệp và dễ sử dụng hơn:

  1. Định dạng số: Áp dụng định dạng Tiền tệ hoặc Số cho cột kết quả.
  2. Xử lý lỗi: Bao bọc công thức SCAN trong IFERROR để thay thế lỗi bằng giá trị trống hoặc thông báo.

Ví dụ: =IFERROR(SCAN(...), "")

  1. Tích hợp với Bảng: Nếu muốn kết quả nằm trong chính Bảng Excel, hãy chèn cột mới vào bảng và nhập công thức tương tự với tham chiếu có cấu trúc của bảng.

Tags: Excel SCAN, cumulative sum, Excel automation

Join LeQuocThai.Com on Telegram Channel

Lê Quốc Thái
Lê Quốc Tháihttps://lequocthai.com/
Yep! I am Le Quoc Thai codename name tnfsmith, one among of netizens beloved internet precious, favorite accumulate sharing all my knowledge and experience Excel, PC tips tricks, gadget news during over decades working in banking data analysis.

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây
Captcha verification failed!
CAPTCHA user score failed. Please contact us!

Join LeQuocThai.Com on Telegram Channel

Đọc nhiều nhất

BÀI VIẾT MỚI NHẤT

CÙNG CHỦ ĐỀ