SUM và SUMPRODUCT khác nhau điểm nào trong trường hợp này?

Liên hệ QC

anhtuan1066

Thành viên gạo cội
Tham gia
10/3/07
Bài viết
5,802
Được thích
6,906
Tôi có 2 công thức:
1/- {=SUM((A1:A10="X")*(B1:B10="Y")*(C1:C10="Z")*(D1:D10))}
2/- =SUMPRODUCT((A1:A10="X")*(B1:B10="Y")*(C1:C10="Z")*(D1:D10))
Có gì khác biệt giữa 2 công thức này vậy? Trong khi tôi thử thì nó cho cùng 1 kết quả. Vậy xin hỏi có phải 2 công thức này là 1 ko?
Mong nhận dc nhiếu ý kiến đóng góp!
ANH TUẤN
 
Hai công thức cho ra một kết quả không có nghĩa là hai công thức này là 1. Cái hay ở Excel là sự sáng tạo về sử dụng hàm.
VD : A1 = "acbdefgh"
right(A1;3)="fgh"
mid(A1;6;3) = "fgh"

TH1 : Bạn sử dụng hàm mảng
TH2: Bạn sử dụng hàm bình thường, nhưng hàm này lại tính toán dựa vào mảng

--> Kết quả sẽ như nhau

Còn có một cách nữa là dùng sumif, bạn tìm hiểu nhé.

Thân!!!!
 
Tất nhiên là tôi hiểu cách sử dụng các hàm này rồi nhưng ở đây tôi muốn hỏi vấn đề khác cơ! Đó là có gì khác nhau giữa 2 hàm này vậy? Cái hay và những ứng dụng sáng tạo nào đó của nó? Ưu điểm và hạn chế? Chẳng hạn như bài toán về "TỐC ĐỘ TÍNH TOÁN" tôi đưa ra lần trước, thật ra sử dụng hàm SUMPRODUCT rất bình thường nhưng trong trường hợp ấy nó lại bộc lộ nhược điểm lớn về tốc độ khi tính toán nhiều dòng... van... van
ANH TUẤN

ANH TUẤN
 
SO sánh SUMPRODUCT và công thức mảng(dùng hàm SUM)

anhtuan1066 đã viết:
Tất nhiên là tôi hiểu cách sử dụng các hàm này rồi nhưng ở đây tôi muốn hỏi vấn đề khác cơ! Đó là có gì khác nhau giữa 2 hàm này vậy? Cái hay và những ứng dụng sáng tạo nào đó của nó? Ưu điểm và hạn chế? Chẳng hạn như bài toán về "TỐC ĐỘ TÍNH TOÁN" tôi đưa ra lần trước, thật ra sử dụng hàm SUMPRODUCT rất bình thường nhưng trong trường hợp ấy nó lại bộc lộ nhược điểm lớn về tốc độ khi tính toán nhiều dòng... van... van
ANH TUẤN

ANH TUẤN

Hàm SUMPRODUCT(array1,array2[,..,array30]).
Mục đích của hàm là để tính tổng các tích của các đối số. Nhưng sáng tạo của người sử dụng đã tạo thêm cho nó một cách tính khác là tính tổng của tích các logic.
SUMPRODUCT(Logic1*Logic2*...*LogicN*array_SUM), khi đó nó trở thành tính tổng có điều kiện.

Lưu ý rằng, SUMPRODUCT CHỈ có ý nghĩa là tính tổng hoặc đếm có nhiều điều kiện mà thôi!

Cách tính có nhiều điều kiện thứ 2 là dùng kỹ thuật công thức mảng - "Formula Array"

Bản chất về công thức mảng thì tôi đã giới thiệu.
Nắm được nguyên lý về công thức mảng, nếu dùng hàm SUM bạn sẽ có phép tính tổng; hàm COUNT bạn sẽ có phép tính đếm, MIN,MAX,AVERAGE,....

Công thức mảng KHÔNG PHẢI chỉ mỗi tính tổng!

Còn so sánh về tốc độ giữa SUMPRODUCT và công thức mảng.
Xét với mục đích tính tổng (chỉ có mục đích này thì SUMPRODUCT mới có cái để so sánh)
Hàm SUMPRODUCT tính nhanh hơn công thức mảng (dùng hàm SUM), nếu dữ liệu lớn thì gần như gấp 2.

Tóm lại:
- Nếu chỉ có nhu cầi tính tổng thì các bạn nên dùng SUMPRODUCT
- Nếu việc tính toán không chỉ mỗi tính tổng và phép tính có nhiều điều kiện thì nên áp dụng công thức mảng.


Khi lập một bảng thống kê có nhiều ô, các ô phải tính bởi SUMPRODUCT hoặc công thức mảng, các công thức này tham chiếu tới vùng dữ liệu lớn thì tốc độ máy tính rất chậm, dù cấu hình mắy của bạn có cao! Nếu biết VBA và viết có "thủ thuật" thì sẽ là giải pháp tốt hơn cả!
 
Web KT
Back
Top Bottom