Khi cần đếm dữ liệu theo nhiều điều kiện trong Excel, hai hàm COUNTIFS và SUMPRODUCT thường được sử dụng. Vậy nên chọn hàm nào cho phù hợp? Bài viết này sẽ so sánh ưu nhược điểm của COUNTIFS và SUMPRODUCT để giúp bạn đưa ra quyết định tốt nhất.
Chúng ta sẽ phân tích dựa trên ví dụ về dữ liệu bán hàng, bao gồm ngày bán, số lượng và loại quả.
Dữ liệu ví dụ về bán hàng các loại quả
Bài viết này sẽ tập trung vào việc so sánh hai hàm, không đi sâu vào chi tiết cách viết công thức. Mục tiêu là giúp bạn hiểu rõ ưu nhược điểm của từng hàm để áp dụng hiệu quả.
Kết quả và công thức của hai hàm được minh họa như sau:
Yêu cầu 1: Đếm số lượng Cam bán được trong tháng 6/2018
Ví dụ về sử dụng hàm COUNTIFS và SUMPRODUCT để đếm số lượng Cam bán trong tháng 6
COUNTIFS
:=COUNTIFS(C2:C18,"Cam",A2:A18,">="&DATE(2018,6,1),A2:A18,"<"&DATE(2018,7,1))
SUMPRODUCT
:=SUMPRODUCT((C2:C18="Cam")*(MONTH(A2:A18)=6)*1)
Yêu cầu 2: Đếm số lượng Táo bán được trong tháng 6/2018 với số lượng là 1
COUNTIFS
:=COUNTIFS(C2:C18,"Táo",A2:A18,">="&DATE(2018,6,1),A2:A18,"<"&DATE(2018,7,1),B2:B18,1)
SUMPRODUCT
:=SUMPRODUCT((C2:C18="Táo")*(MONTH(A2:A18)=6)*(B2:B18=1)*1)
Sử dụng Hàm COUNTIFS
Ưu điểm:
- Cấu trúc rõ ràng, dễ đọc và dễ chỉnh sửa nhờ các thành phần được phân tách bằng dấu phẩy.
- Tính toán nhanh trên dữ liệu lớn và nhiều công thức.
Nhược điểm:
- Khó khăn khi xử lý các thành phần trong mảng (ví dụ: trích xuất tháng từ cột ngày). Cần sử dụng ngày đầu và cuối tháng hoặc tạo cột phụ.
Sử dụng Hàm SUMPRODUCT
Ưu điểm:
- Cú pháp ngắn gọn và linh hoạt hơn COUNTIFS.
- Xử lý dễ dàng các thành phần trong mảng (ví dụ: trích xuất tháng).
Nhược điểm:
- Cần hiểu rõ bản chất dữ liệu của từng thành phần trong mảng để có kết quả chính xác.
- Tính toán chậm hơn COUNTIFS trên dữ liệu lớn.
- Dễ bị lỗi nếu dữ liệu nguồn có lỗi.
Ví dụ về lỗi khi sử dụng hàm SUMPRODUCT với dữ liệu có lỗi
Tóm lại:
- Nên sử dụng COUNTIFS khi không cần xử lý dữ liệu mảng.
- Hạn chế lạm dụng SUMPRODUCT, chỉ nên dùng khi cần thiết hoặc COUNTIFS không đáp ứng được yêu cầu. Cần kiểm tra kỹ dữ liệu nguồn để tránh lỗi.
Discussion about this post