Chào các bạn trong diễn đàn Sheet & Excel,
Hôm nay mình muốn chia sẻ một cách kết hợp hai hàm quen thuộc là SUM và IF để xử lý các bài toán tính tổng có điều kiện mà đôi khi SUMIFS hay COUNTIFS chưa đáp ứng hết được, hoặc đơn giản là để hiểu sâu hơn về cách chúng hoạt động cùng nhau.
Ví dụ, giả sử bạn có một bảng dữ liệu bán hàng bao gồm các cột: 'Sản phẩm', 'Số lượng', 'Đơn giá', 'Khu vực'. Bạn muốn tính tổng doanh thu của tất cả các sản phẩm thuộc 'Khu vực A' nhưng chỉ tính những đơn hàng có 'Số lượng' lớn hơn 10.
Thông thường, chúng ta sẽ nghĩ ngay đến SUMIFS. Tuy nhiên, nếu điều kiện phức tạp hơn, ví dụ như tính tổng doanh thu của các sản phẩm là 'A' hoặc 'B' ở 'Khu vực A', thì SUMIFS sẽ cần nhiều cột điều kiện lặp lại. Lúc này, cách kết hợp SUM và IF sẽ rất hữu ích.
Công thức có thể trông như sau (giả sử dữ liệu ở vùng A2:D100):
=SUM(IF((D2:D100="Khu vực A")*((A2:A100="Sản phẩm A")+(A2:A100="Sản phẩm B"))*(B2:B100>10), C2:C100*B2:B100, 0))Giải thích ngắn gọn:
(D2:D100="Khu vực A"): Tạo mảng TRUE/FALSE cho điều kiện khu vực.((A2:A100="Sản phẩm A")+(A2:A100="Sản phẩm B")): Tạo mảng TRUE/FALSE cho điều kiện sản phẩm là A HOẶC B. Dấu '+' đóng vai trò là toán tử OR.(B2:B100>10): Tạo mảng TRUE/FALSE cho điều kiện số lượng.- Các điều kiện nhân với nhau (
*) đóng vai trò như toán tử AND. IF(điều_kiện_tổng_hợp, C2:C100*B2:B100, 0): Nếu tất cả điều kiện đúng, tính doanh thu (Đơn giá * Số lượng), nếu không thì trả về 0.SUM(...): Tổng hợp tất cả các giá trị trả về từ hàm IF.
Lưu ý: Đây là một công thức mảng, bạn cần nhấn Ctrl + Shift + Enter để nhập công thức (trên các phiên bản Excel cũ). Trên Excel 365, bạn chỉ cần Enter thông thường.
Cách này giúp linh hoạt hơn khi xử lý các điều kiện logic phức tạp. Mọi người có kinh nghiệm nào khác với sự kết hợp này không, hoặc có cách nào tối ưu hơn không, cùng thảo luận nhé!