giúp em công thức đếm với (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Nếu công thức
Mã:
=SUMIF(B2:B13,"<=300",C2:C13)
=SUMPRODUCT((B2:B13<=300)*C2:C13)
số phép tính ngang nhau, theo bạn công thức nào nhanh hơn?
Chắc chắn SUMIF nhanh hơn rồi.
Giả sử tất cả các số trong vùng B2:B13 đều <=300
* SUMIF tính như sau:
C2+C3+...+C13
* SUMPRODUCT tính như sau (Tổng của tích)
TRUE*C2=1*C2=C2==>Đưa C2 vào bộ nhớ
TRUE*C3=1*C3=C3==>Đưa C3 vào bộ nhớ
...
TRUE*C12=1*C13=C13==> Đưa C13 vào bộ nhớ
Sau đó mới làm phép tính C2+C3+...+C13 như SUMIF

SUMPRODUCT phải qua bước tính tích trước, sau đó mới là tổng.
 
Chắc chắn SUMIF nhanh hơn rồi.
Giả sử tất cả các số trong vùng B2:B13 đều <=300
* SUMIF tính như sau:
C2+C3+...+C13
* SUMPRODUCT tính như sau (Tổng của tích)
TRUE*C2=1*C2=C2==>Đưa C2 vào bộ nhớ
TRUE*C3=1*C3=C3==>Đưa C3 vào bộ nhớ
...
TRUE*C12=1*C13=C13==> Đưa C13 vào bộ nhớ
Sau đó mới làm phép tính C2+C3+...+C13 như SUMIF

SUMPRODUCT phải qua bước tính tích trước, sau đó mới là tổng.
Trường hợp đặc biệt
Mã:
=SUMIF($A$2:$A$100000,">=0",$A$2:$A$100000)
=SUMPRODUCT($A$2:$A$100000)
Không biết công thức nào nhanh hơn
 
Chắc chắn SUMIF nhanh hơn rồi.
Giả sử tất cả các số trong vùng B2:B13 đều <=300
* SUMIF tính như sau:
C2+C3+...+C13
* SUMPRODUCT tính như sau (Tổng của tích)
TRUE*C2=1*C2=C2==>Đưa C2 vào bộ nhớ
TRUE*C3=1*C3=C3==>Đưa C3 vào bộ nhớ
...
TRUE*C12=1*C13=C13==> Đưa C13 vào bộ nhớ
Sau đó mới làm phép tính C2+C3+...+C13 như SUMIF

SUMPRODUCT phải qua bước tính tích trước, sau đó mới là tổng.
Để thực nghiệm khách quan, nhờ chị bebanhbeo (nếu máy của chị chạy nền 32bit), thử dùm và trả kết quả bảng tính cho các công thức đã quy đổi tương đồng dưới đây, bằng cách nhấn nút Timer có trong sheet:

=SUMPRODUCT(('List Unsorted Data - Non Unique'!$G$2:$G$100000=A6&"-"&B6&"-"&C6&"-"&D6&"-"&E6&"-"&F6)*('List Unsorted Data - Non Unique'!$H$2:$H$100000))
=SUMIFS('List Unsorted Data - Non Unique'!$H$2:$H$100000,'List Unsorted Data - Non Unique'!$G$2:$G$100000,A6&"-"&B6&"-"&C6&"-"&D6&"-"&E6&"-"&F6)
=SUMIF('List Unsorted Data - Non Unique'!$G$2:$G$100000,A6&"-"&B6&"-"&C6&"-"&D6&"-"&E6&"-"&F6,'List Unsorted Data - Non Unique'!$H$2:$H$100000)
=SUM(('List Unsorted Data - Non Unique'!$G$2:$G$100000=A6&"-"&B6&"-"&C6&"-"&D6&"-"&E6&"-"&F6)*('List Unsorted Data - Non Unique'!$H$2:$H$100000))
Cảm ơn chị bebanhbeo nhìu nhìu!
hihi ^o^
 

File đính kèm

Để thực nghiệm khách quan, nhờ chị bebanhbeo (nếu máy của chị chạy nền 32bit), thử dùm và trả kết quả bảng tính cho các công thức đã quy đổi tương đồng dưới đây, bằng cách nhấn nút Timer có trong sheet:

=SUMPRODUCT(('List Unsorted Data - Non Unique'!$G$2:$G$100000=A6&"-"&B6&"-"&C6&"-"&D6&"-"&E6&"-"&F6)*('List Unsorted Data - Non Unique'!$H$2:$H$100000))
=SUMIFS('List Unsorted Data - Non Unique'!$H$2:$H$100000,'List Unsorted Data - Non Unique'!$G$2:$G$100000,A6&"-"&B6&"-"&C6&"-"&D6&"-"&E6&"-"&F6)
=SUMIF('List Unsorted Data - Non Unique'!$G$2:$G$100000,A6&"-"&B6&"-"&C6&"-"&D6&"-"&E6&"-"&F6,'List Unsorted Data - Non Unique'!$H$2:$H$100000)
=SUM(('List Unsorted Data - Non Unique'!$G$2:$G$100000=A6&"-"&B6&"-"&C6&"-"&D6&"-"&E6&"-"&F6)*('List Unsorted Data - Non Unique'!$H$2:$H$100000))
Cảm ơn chị bebanhbeo nhìu nhìu!
hihi ^o^
Kết quả đây :pket qua.png
 
Cái này cũng mới là suy luận theo suy nghĩ chủ quan, chứ chưa phải là bằng chứng xác thực máy thật sự xử lý bằng cách nào, chỉ có mấy ông tạo ra nó mới trả lời chính xác.
Tuy nhiên, cách của bạn @moctriet hy vọng là câu trả lời khách quan bằng việc cân đong đo đếm.
hihi ^o^
Mình sắp code xong rồi. Để xong cái mình đang làm sẽ thử xử lý.
 
Lần chỉnh sửa cuối:
Vụ dùng "*" hay "," trong SUMPRODUCT bàn nhiều rồi mà: Dùng * thì dùng bao quát các trường hợp text, true/false không cần +0 nữa
Anh bebo021999 ơi, đừng thấy phiền vì em hay quên :(:(:(, dạo này não em đang trong giai đoạn lão hóa nên không còn nhớ dai như xưa nữa nên có lẽ lỡ quên cái kiến thức đó rồi. Giờ thì biết rồi anh ạ, cùi thơm ghê hen anh. :(:(:(
Thêm nữa, hôm qua thầy ndu cũng trả lời tương tự là nếu trong hàm Sumproduct() có toán tử */+ thay vì "," thì nguyên cả cái cụm đó là 1 Array. Cho nên bây giờ em gom vô cách giải thích của anh luôn là hàm Sumproduct() có toán tử */+ thay vì "," thì nguyên công thức đó là 1 Array & có thể dùng để ép "chuỗi dạng No" sang No hay True/False sang 1/0.
Dạ, sẽ ráng ghi nhớ kiến thức này ạ, hy vọng sẽ không hỏi câu hỏi cùi thơm như vậy trong tương lai nữa. Nếu mà lỡ có thì xin bỏ qua, đừng thấy phiền lòng :(:(:(. Em cảm ơn anh đã kiên nhẫn chịu đựng mấy câu hỏi ngu của em ạ. :):):)

Countifs là công thức mảng? Có vẻ như Tú Anh đanh đánh đồng tất cả những gì mà mình thấy khó hiểu, cao siêu, sợ nó và gán cho nó cái tên "mảng"?
Danh từ số nhiều có "s" tức là dạng Countif nhiều điều kiện thế thôi.
Countifs(BT1,dk1,BT2,dk2,...)
Countifs là phạm trù hẹp hơn countif. Đếm số thành viên nữ trong GPE thì ra 100 chẳng hạn, nhưng đếm số thành viên nữ trong GPE mà giỏi excel, đương nhiên kết quả chỉ trên đầu ngón tay
Anh ơi, em không biết tí ti gì về mảng hết, hễ cứ thấy công thức lạ giống giống công thức từng học thì cứ nghĩ là mảng, sai rồi anh nhỉ, tệ thật! :(:(:(
Countif, sumif là hàm chuyên dụng để đếm, sum có điều kiện. Sumproduct là hàm bao quát hơn, có thể đếm và sum. Tuy nhiên, nếu có thể dùng countif, sumif thì không nên dùng Sumproduct để giảm tốc độ tính toán.
Dạ, em nghe anh ạ. Anh bảo sao thì em nghe thế ạ. Cám ơn anh đã hướng dẫn.:):):)
Chúc anh 1 buổi chiều rực rỡ, hoành tráng & sôi động
 
Các bạn ơi cho mình hỏi ngu câu này, nếu công thức làm file nặng thì có ảnh hưởng đến tốc độ tính toán không??? Có hay không??? Nếu có thì giảm hay tăng tốc độ tính toán??? +-+-+-++-+-+-++-+-+-+
Cám ơn đã trả lời. :):):)
Chúc các bạn luôn vui.
 
Các bạn ơi cho mình hỏi ngu câu này, nếu công thức làm file nặng thì có ảnh hưởng đến tốc độ tính toán không??? Có hay không??? Nếu có thì giảm hay tăng tốc độ tính toán??? +-+-+-++-+-+-++-+-+-+
Cám ơn đã trả lời. :):):)
Chúc các bạn luôn vui.
Tùy thuộc vào việc em định nghĩa thế nào là "nặng"? File có dung lượng lớn (MB) hay khi tính toán máy tốn nhiều thời gian để ra kết quả?
Nếu File có dung lượng lớn thì open lâu, nhưng ít công thức mảng thì khi open rồi thì vẫn xử lý ào ào.
Còn công thức làm file nặng (công thức liên quan đến mảng mà duyệt nguyên cột, kiểu như SUMPRODUCT(A:A,BB)) thì yên tâm mà ngồi đón giao thừa Congo
 
Tùy thuộc vào việc em định nghĩa thế nào là "nặng"? File có dung lượng lớn (MB) hay khi tính toán máy tốn nhiều thời gian để ra kết quả?
Nếu File có dung lượng lớn thì open lâu, nhưng ít công thức mảng thì khi open rồi thì vẫn xử lý ào ào.
Anh ơi, em chỉ hỏi file nặng do công thức thôi (đặc biệt mảng), không phải là do dung lượng file lớn.
Còn công thức làm file nặng (công thức liên quan đến mảng mà duyệt nguyên cột, kiểu như SUMPRODUCT(A:A,BB)) thì yên tâm mà ngồi đón giao thừa Congo
Tốt! Vậy coi như em có thể có câu trả lời rồi cho câu hỏi của mình rồi. Bây giờ chỉ còn chờ ý kiến của các bạn khác ra sao nữa thôi. Nếu sau vài tiếng mà chả thấy ai buồn có ý kiến gì thì em có thể hiểu là các bạn cũng đồng ý với post của anh là công thức liên quan đến mảng làm file nặng sẽ làm giảm tốc độ tính toán.
Cuối cùng em sẽ chốt ý kiến của mình.
Chúc anh luôn vui.
 
Anh ơi, em chỉ hỏi file nặng do công thức thôi (đặc biệt mảng), không phải là do dung lượng file lớn.

Tốt! Vậy coi như em có thể có câu trả lời rồi cho câu hỏi của mình rồi. Bây giờ chỉ còn chờ ý kiến của các bạn khác ra sao nữa thôi. Nếu sau vài tiếng mà chả thấy ai buồn có ý kiến gì thì em có thể hiểu là các bạn cũng đồng ý với post của anh là công thức liên quan đến mảng làm file nặng sẽ làm giảm tốc độ tính toán.
Cuối cùng em sẽ chốt ý kiến của mình.
Chúc anh luôn vui.
Còn mình muốn biết nặng hay nhẹ thì làm như thế này
 

File đính kèm

  • nặng nhẹ.jpg
    nặng nhẹ.jpg
    73.6 KB · Đọc: 9
SUMPRODUCT, SUM thì là tổng, COUNTIF là đếm. Nhưng một khi bạn chỉ cần kết quả mà trong trường hợp cụ thể nào đó cả 3 hàm đều trả về cùng 1 giá trị thì lúc đó bạn có thể dùng hàm nào cũng được.
Dạ, hơi hơi hiểu rồi bác ạ. Tuy nhiên con nghĩ là con cần thực hành nhiều thì mới thuần thục & có cái nhìn tổng quan hơn về sự tương quan giữa những hàm Excel. Dạo trước lười quá, lại nản nữa (vì rất nhiều lý do) nên không muốn học Excel. Mấy hôm nay mới lại lôi Excel ra mày mò. Excel nhiều hàm quá, càng học càng thấy mênh mông, hoang mang. :(:(:( Hiện tại con chỉ biết có vài hàm mà khi áp dụng vô yêu cầu cụ thể lại đuối. Buồn ghê! :(:(:( Chân thành cảm ơn bác đã chỉ dẫn cho con ạ. :):):) Hy vọng bác tiếp tục chỉ dẫn cho con trong tương lai hen, cám ơn bác lắm lắm ạ. :):):)
Cô giáo cho bài: Hãy tính TỔNG 100 số tự nhiên đầu tiên.
Các bạn hì hục tính tổng 1 + 2 + ... + 100 = (1 + 100)*(100 / 2)
Bác ơi, giải thích dùm con lập luập logic của 1 + 2 + ... + 100 = (1 + 100)*(100 / 2), con vẫn chưa hiểu ạ, thiệt là củ chuối ghê!!! :(:(:(
Cám ơn bác. :):):)
Chúc bác luôn vui.

;) ;);)
 
Sau 1 thời gian dài đằng đẳng chờ đợi mà chả thấy ai trả lời câu hỏi của tôi ngoại trừ anh bebo021999 thì hôm nay tôi sẽ chốt lại vấn đề mà mọi người cứ tranh luận chưa có hồi kết.
Để trả lời cho câu hỏi

Bằng cách nào để biết tốc độ tính toán khi so sánh các hàm với nhau như so sánh giữa: Sumif, Countif và Sumproduct
Câu hỏi này thì tôi không biết câu trả lời nhưng tôi sẽ mượn bài viết của 2 thành viên kỳ cựu tinh thông Excel của GPE để trả lời câu hỏi cho người thắc mắc
Cái này là trao đổi thôi nghe! chủ yếu theo kinh nghiệm làm việc chung với mảng, hoàn toàn do "để ý" thấy, nên có gì "sai sai" cũng bỏ qua cho "em nhỏ nó mừng"
1. Các dạng COUNTIFs(), SUMIFs() nói chung tính toán so khớp bằng Range, không phải mảng (Array), tức nó ghi nhận mốc đầu mốc cuối của Vùng rồi cho chạy như vòng lặp For trong VBA, chứ không bê nguyên cả mảng vào bộ nhớ nên nhẹ. Cái này là do mình dùng Evaluate Formula xem biến chuyển của nó trong nội tại SUMIF hoặc COUNTIF, các tiêu chí nếu có tính toán hay gì gì, thì nó thực hiện trước, dừng lại và vẫn hiển thị Vùng y xì như trước, liền tức thì ra kết quả mà không qua công đoạn nào nữa.

2. SUMPRODUCT() do nó thực hiện với mảng, nên tùy thuộc mảng lấy vào là 1 hay 2 chiều, nhiều dòng nhiều cột không, thì tùy theo đó nó "bê nguyên cả mảng" rồi phải nhớ trong bộ nhớ, do vậy nó nặng chỉ khi dữ liệu đem vào quá nhiều.
Nên nếu cái gì xử được bằng SUMIF() hay COUNTIF() nên tận dụng tối đa, còn dùng SUMPRODUCT() thì nên thận trọng chút đừng sử dụng nhặng xị cái gì cũng dùng nó thì khó lòng biết tại sao mở file ra "nặng quá điiiii!"
Tùy thuộc vào việc em định nghĩa thế nào là "nặng"? File có dung lượng lớn (MB) hay khi tính toán máy tốn nhiều thời gian để ra kết quả?
Nếu File có dung lượng lớn thì open lâu, nhưng ít công thức mảng thì khi open rồi thì vẫn xử lý ào ào.
Còn công thức làm file nặng (công thức liên quan đến mảng mà duyệt nguyên cột, kiểu như SUMPRODUCT(A:A,BB)) thì yên tâm mà ngồi đón giao thừa Congo
→ Tôi hy vọng là 2 bài viết trên đã trả lời thắc mắc của người hỏi.
Bạn HieuCD đã từng kết luận thế này

trước đây có bài dùng sumproduct chạy rất chậm, phải dùng cột phụ và dùng sumif nhẹ hơn nhiều lần
bổ xung thêm hàm Sumifs cũng khá nặng, nhiều món đồ cổ có từ thời máy tính cấu hình thấp thì chạy rất nhẹ, còn các món hiện đại thì sài bộ nhớ hơi sang
Cớ sai lại hỏi anh bebo021999 câu hỏi cắc cớ này
Nếu công thức
Mã:
=SUMIF(B2:B13,"<=300",C2:C13)
=SUMPRODUCT((B2:B13<=300)*C2:C13)
số phép tính ngang nhau, theo bạn công thức nào nhanh hơn?
Câu hỏi trên hoặc là thừa thải vì bạn HieuCD đã biết câu trả lời hoặc là bạn HieuCD có ý khác khi hỏi anh bebo021999 câu hỏi ấy. Vậy là vế đầu hay vế sau??? +-+-+-++-+-+-++-+-+-+
Còn trường hợp đặc biệt mà bạn HieuCD hỏi

Trường hợp đặc biệt
Mã:
=SUMIF($A$2:$A$100000,">=0",$A$2:$A$100000)
=SUMPRODUCT($A$2:$A$100000)
Không biết công thức nào nhanh hơn
Tôi không giỏi Excel nhưng tôi sẽ thay mặt hiệp sĩ bebo021999 của tôi trả lời câu hỏi của bạn HieuCD bằng câu hỏi này "Để tính mức độ thịnh vượng của người dân VN thì đo bằng sự thịnh vượng của đại gia như Phạm Nhật Vượng... hay là người dân nghèo trong XHVN???" Sau khi bạn HieuCD trả lời câu hỏi của tôi thì bạn tự khắc trả lời được câu hỏi của bạn. Có đời thủa nào mà ai đem trường hợp dị biệt ra mà so sánh với trường hợp chung chung bao giờ đâu??? Có cùng đề tài đâu mà so sánh với thắc mắc hay hỏi, có phải là đang làm khó nhau không???
Mà thiệt là lạ lùng ghê, câu hỏi của tôi rất là rõ ràng

Các bạn ơi cho mình hỏi ngu câu này, nếu công thức làm file nặng thì có ảnh hưởng đến tốc độ tính toán không??? Có hay không??? Nếu có thì giảm hay tăng tốc độ tính toán??? +-+-+-++-+-+-++-+-+-+
thế nhưng tất cả đều quăng cục lơ, chả có ai buồn điếm xỉa trả lời ngoại trừ anh bebo021999, còn vấn đề tôi chưa từng hỏi thì tự bịa đặt ra trong đầu câu hỏi rồi tự gán ghép vấn đề đó cho tôi rồi lên tiếng nhục mạ, mạt sát... tôi. Thật là nực cười!!! Vậy là lý lẽ gì vậy??? +-+-+-++-+-+-++-+-+-+
Cuối cùng, tôi chốt lại là anh bebo021999 kết luận câu sau là hoàn toàn chính xác & có cơ sở lập luận vững chắc

nếu có thể dùng countif, sumif thì không nên dùng Sumproduct để giảm tốc độ tính toán.
Nếu ai còn chưa thỏa mãn với kết luận trên thì làm ơn liên hệ với bác quocgiacan mà hỏi vì bác quocgiacan là người giúp tôi đưa ra cơ sở cho kết luận của anh bebo021999, đừng tiếp tục hỏi anh bebo021999 những câu hỏi thừa thải nữa, làm mất thời gian quý báu của anh ấy 1 cách vô ích. Thank you very much!!!
Khuyến mãi

xét vlookup và lookup đứng riêng không lồng với hàm khác mới so sánh được
thông thường các hàm xử lý trên bảng nhiều dòng và nhiều cột như Vlookup, sumproduct, sumifs ... và được phép tùy chọn cột hoặc dòng trong bảng đó sẽ nặng hơn các hàm chỉ cho phép chọn 1 cột hoặc 1 dòng trong từng tham số như sumif, lookup, match...
lookup có thể có tham số là bảng gồm nhiều dòng và nhiều cột, nhưng các cột giữa nó không quan tâm tới, mà chỉ coi có 2 cột là cột đầu và cột cuối
Lookup có hai dạng, dang tham chiếu và bảng dò thì nhẹ hơn vlookup, nhưng lookup có điều kiện thì sẽ nặng hơn, vì nó có dinh tới mảng, mà mảng thì lại được lưu trong bộ nhớ ảo và phải tính toán trên đó, không thể thấy được mà chúng ta chỉ có thể tưởng tượng cách hoạt động của nó, nên nó sẽ nặng hơn so với những mảng đã được đưa sẵn ra bảng tính excel hay còn gọi là range, trong mấy cách dò thì index+macth có lẽ là nhanh nhất!!!
Chúc tất cả mọi người rất là vui vẻ, bình an & thỏa mãn
~ THE END ~
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom