Menu

Cách dùng SUM và IF kết hợp để tính tổng có điều kiện nâng cao

Đồng Huệ Dương 05/06/2026 06:05 342 lượt xem 2 trả lời

Chào mọi người, hôm nay mình muốn chia sẻ một cách kết hợp hai hàm quen thuộc là SUMIF để giải quyết những bài toán tính tổng có điều kiện phức tạp hơn một chút so với SUMIF thông thường.

Đôi khi, chúng ta cần tính tổng dựa trên nhiều tiêu chí, nhưng các tiêu chí này lại không thể áp dụng trực tiếp bằng SUMIFS. Ví dụ, bạn muốn tính tổng doanh thu của các sản phẩm thuộc danh mục A NHƯNG CHỈ TÍNH NHỮNG sản phẩm có ngày bán nằm trong tháng 1. Hàm SUMIFS sẽ gặp khó khăn nếu tiêu chí thứ hai yêu cầu kiểm tra một phần của ngày tháng.

Trong trường hợp này, chúng ta có thể dùng công thức mảng (array formula) kết hợp SUMIF như sau:

=SUM(IF((Điều_Kiện_1)*(Điều_Kiện_2), Giá_Trị_Cần_Tính, 0))

Ví dụ cụ thể:

Giả sử bạn có bảng dữ liệu với cột A là Danh mục sản phẩm, cột B là Ngày bán, cột C là Doanh thu.

Để tính tổng doanh thu của các sản phẩm thuộc 'Danh mục A' và có ngày bán trong tháng 1, công thức sẽ là:

=SUM(IF((A2:A100="Danh mục A")*(MONTH(B2:B100)=1), C2:C100, 0))

Lưu ý quan trọng:

  • Đây là công thức mảng, sau khi nhập xong, bạn cần nhấn Ctrl + Shift + Enter thay vì chỉ Enter để Excel nhận diện nó là công thức mảng. Excel sẽ tự động thêm dấu ngoặc nhọn {} xung quanh công thức.
  • Trong các phiên bản Excel mới (Microsoft 365), bạn có thể không cần nhấn Ctrl + Shift + Enter vì Excel đã hỗ trợ dynamic arrays.
  • Cách này rất linh hoạt, bạn có thể thay thế các điều kiện bằng các hàm khác để kiểm tra chuỗi, số, ngày tháng theo ý muốn.

Hy vọng mẹo nhỏ này hữu ích cho mọi người khi xử lý dữ liệu!

4

Mình thấy cách dùng SUM(IF(...)) của bạn rất hay, mở ra nhiều hướng xử lý dữ liệu mà SUMIF hay SUMIFS chưa làm được. Cái vụ tính tổng doanh thu theo danh mục và tháng 1 đúng là một bài toán không hề đơn giản.

Bạn đã thử dùng SUMPRODUCT chưa? Với SUMPRODUCT, mình thấy cú pháp đôi khi còn gọn gàng hơn và không cần phải bấm tổ hợp phím Ctrl+Shift+Enter như mảng. Ví dụ, cho trường hợp của bạn, có thể viết:

=SUMPRODUCT((Vùng_Danh_mục="A")(MONTH(Vùng_Ngày_bán)=1)(Vùng_Doanh_thu))

Bạn xem cách này có phù hợp với tình huống của bạn không?

3

Bài viết của bạn rất hay, đúng là SUM và IF kết hợp mở ra nhiều khả năng xử lý dữ liệu hơn hẳn SUMIF thông thường.

Trường hợp bạn nêu về tính tổng doanh thu sản phẩm theo danh mục A và ngày bán trong tháng 1 rất phổ biến. Ngoài cách dùng mảng (array formula) với SUM(IF(...)), bạn đã thử qua cách dùng SUMPRODUCT chưa? Với SUMPRODUCT, bạn có thể đặt các điều kiện vào các mảng riêng lẻ và nhân chúng lại với nhau, đôi khi cú pháp sẽ gọn gàng hơn một chút và không cần dùng Ctrl+Shift+Enter.

Ví dụ, với dữ liệu của bạn: - Vùng chứa danh mục sản phẩm - Vùng chứa ngày bán - Vùng chứa doanh thu

Công thức có thể trông như thế này: =SUMPRODUCT((Vùng_Danh_mục="A")(MONTH(Vùng_Ngày_bán)=1)(Vùng_Doanh_thu))

Bạn thấy sao? Liệu cách này có áp dụng được cho tình huống của bạn không?

0

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký