tuananhya2
Thành viên mới

- Tham gia
- 18/8/12
- Bài viết
- 8
- Được thích
- 0
Anh bebo021999 ơi,=SUMPRODUCT(($B$5:$I$11=$D$16)*($B$6:$I$12=$D$17))=3
Công thức Countifs() này là công thức mảng phải không anh, nếu vậy thì thôi em chưa học. Em chỉ mới học Countif() thôi chứ chưa học Countifs().=COUNTIFS($B$5:$I$11,D16,$B$6:$I$12,D17)
countif là trường hợp đặc biệt của countifs. Countif đếm có 1 đk, còn countifs là đếm thỏa nhiều đkAnh bebo021999 ơi,
Cho em hỏi ngu anh nghen. Vì hàm Sumproduct() em không rành lắm nên câu hỏi quá ngu thì xin đừng phiền lòng.
Em đang học hàm Sumproduct() như sau= (Array 1, Array 2,...., Array n). Sao trong công thức Sumproduct() của anh lại có toán tử * thế, thay vì phải là ","
Thêm nữa, khi em thay đổi vùng dữ liệu như sau=SUMPRODUCT(($B$5:$I$12=$D$16)*($B$5:$I$12=$D$17))=0 (≠3) → Sao công thức lại ra trớt quớt vậy anh??? Em chỉ thêm vùng dữ liệu thôi mà, đâu có bớt đâu, dư chứ đâu có thiếu đâu mà sao Excel lại không có work??? Em sai chỗ nào thế anh, phiền anh giải thích rồi. Chân thành cảm ơn anh.
Công thức Countifs() này là công thức mảng phải không anh, nếu vậy thì thôi em chưa học. Em chỉ mới học Countif() thôi chứ chưa học Countifs().
Không phải là em lười không muốn học công thức mảng nhưng mà em tự thấy Excel của em còn rất hạn chế nên đợi thêm thời gian nữa em tự mày mò học mảng sau. Trời!!! Cứ nghĩ tới mảng là sợ không tả được, chắc nói ra anh cũng không hình dung được cảm giác em sợ công thức mảng đến như thế nào đâu.
Chúc anh ngày Chúa Nhật rất là vui vẻ, hạnh phúc & bình an.
phihndhsp ơi,countif là trường hợp đặc biệt của countifs. Countif đếm có 1 đk, còn countifs là đếm thỏa nhiều đk
Countifs(vùng đk1, đk1, vùng đk2, vùng đk2,...)
Cám ơn phihndhsp nha.Hiểu nôn na như thế này nè
sumproduct là hàm cha hàm mẹ
nó có thể bao quát hàm sum, sumif,sumifs, count,countif,countifs
dao thì có nhiều loại dao, không ai lấy dao mổ trâu để mổ gà
(ý trên là ý chủ quan của cá nhân tôi thôi nha)
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.Theo mình được hiểu là hàm nào mà có chữ Sum.... có nghĩa là tính tổng mà chẳng hạn tổng doanh thu... đâu phải là hàm đếm đâu.
=COUNTIF(A1:A10;1)
=SUM(A1:A10)
=SUMPRODUCT(A1:A10)
=SUMPRODUCT(($B$5:$I$11=$D$16)*($B$6:$I$12=$D$17))
=COUNTIFS($B$5:$I$11,D16,$B$6:$I$12,D17)
Anh bebo021999 ơi,
Cho em hỏi ngu anh nghen. Vì hàm Sumproduct() em không rành lắm nên câu hỏi quá ngu thì xin đừng phiền lòng.
Em đang học hàm Sumproduct() như sau= (Array 1, Array 2,...., Array n). Sao trong công thức Sumproduct() của anh lại có toán tử * thế, thay vì phải là ","
....
Công thức Countifs() này là công thức mảng phải không anh
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. VD: có cầu thì nên đi qua cầu cho khỏe, không nên lội qua sông.phihndhsp ơi,
Vậy nếu Countifs() & Sumproduct() cùng ra kết quả như nhau vậy Sumproduct() cũng là hàm đếm thỏa nhiều điều kiện sao??? Theo mình được hiểu là hàm nào mà có chữ Sum.... có nghĩa là tính tổng mà chẳng hạn tổng doanh thu... đâu phải là hàm đếm đâu. Sao mình vẫn rối rối thế nào ấy với cái hàm Sumproduct() này. Chả biết diễn tả sao cho bạn hiểu nữa.
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 hả anh?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. VD: có cầu thì nên đi qua cầu cho khỏe, không nên lội qua sông.
Mình thấy bài khá hay, bạn dùng đc VBA thì test thử nhaBằ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 hả anh?
Đơn giản thôi, xét ví dụ Sumif và Sumproduct như bảng sau: Cột B là tháng, cột C là số tiềnBằ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 hả anh?
Đơn giản thôi, xét ví dụ Sumif và Sumproduct như bảng sau: Cột B là tháng, cột C là số tiền
Tính tổng số tiền 3 tháng, từ tháng 1 tới tháng 3
=SUMIF(B2:B13,"<=3",C2:C13)
=SUMPRODUCT((B2:B13<=3)*C2:C13)
Cái nào nhanh hơn:
Cả 2 cái đều duyệt cột B từ tháng 1 tới tháng 12, nhưng:
* SUMIF: Xét từng dòng trong cột B trước, nếu thỏa điều kiện <=3 thì mới tính toán:
Tháng 1 =5
Tháng 2 = 5+10= 15
Tháng 3: 15+15 =30
Từ tháng 4 trở đi, nó không thực hiện tính toán vì nhận thấy không thỏa điều kiện tháng <=3
* SUMPRODUCT: Xét từng dòng trong cột B, cộng bất chấp thỏa hay không thỏa:
Tháng 1 = (1<=3)*5 = 1*5 = 5
Tháng 2 = 5+(2<=3)*10= 5 + 1*10 = 15
Tháng 3= 15+(3<=3)*15 =15+1*15=30
Tháng 4=30+(4<=3)*20 = 30+0*20=30
Tháng 5=30+(5<=3)*25 = 30+0*25=30
...
Tháng 12=30+(12<=3)*60 = 30+0*60=30
Kết luận: SUMIF thực hiện 3 phép tính, SUMPRODUCT thực hiện 12 phép tính
Với data lớn, vài chục ngàn dòng, sẽ thấy sự khác biệt!!!
View attachment 191278
Code này không chạy trên máy 64bit.Mình thấy bài khá hay, bạn dùng đc VBA thì test thử nha
http://dailydoseofexcel.com/archives/2015/04/25/timing-formulas/
Bạn chỉ việc copy nó vào một module, chọn cell có công thức rồi. Nhấn Alt F8 chọn TimeFormula.
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.Đơn giản thôi, xét ví dụ Sumif và Sumproduct như bảng sau: Cột B là tháng, cột C là số tiền
Tính tổng số tiền 3 tháng, từ tháng 1 tới tháng 3
=SUMIF(B2:B13,"<=3",C2:C13)
=SUMPRODUCT((B2:B13<=3)*C2:C13)
Cái nào nhanh hơn:
Cả 2 cái đều duyệt cột B từ tháng 1 tới tháng 12, nhưng:
* SUMIF: Xét từng dòng trong cột B trước, nếu thỏa điều kiện <=3 thì mới tính toán:
Tháng 1 =5
Tháng 2 = 5+10= 15
Tháng 3: 15+15 =30
Từ tháng 4 trở đi, nó không thực hiện tính toán vì nhận thấy không thỏa điều kiện tháng <=3
* SUMPRODUCT: Xét từng dòng trong cột B, cộng bất chấp thỏa hay không thỏa:
Tháng 1 = (1<=3)*5 = 1*5 = 5
Tháng 2 = 5+(2<=3)*10= 5 + 1*10 = 15
Tháng 3= 15+(3<=3)*15 =15+1*15=30
Tháng 4=30+(4<=3)*20 = 30+0*20=30
Tháng 5=30+(5<=3)*25 = 30+0*25=30
...
Tháng 12=30+(12<=3)*60 = 30+0*60=30
Kết luận: SUMIF thực hiện 3 phép tính, SUMPRODUCT thực hiện 12 phép tính
Với data lớn, vài chục ngàn dòng, sẽ thấy sự khác biệt!!!
View attachment 191278
Bạn vào đây xem kết quả thử nhé.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ấy ông này đưa bằng chứng "ăn gian": trưng cột phụ đánh bằng tay mà không dùng công thức!?? của đáng tội!?, đáng lẽ phải cộng cả hai thời gian của Sumif dùng cột phụ + công thức tạo ra cột phụ nữa mới tương đồng với các hàm khác được chứ!Bạn vào đây xem kết quả thử nhé.
https://exceloffthegrid.com/optimize-formula-calculation-speed-part-8-sum-with-multiple-criteria/
Đại khái thế này:
Họ test SUM nhiều điều kiện. Xét trên 999.000 dòng, có các phương án sau:
1)Dùng cột phụ, sau đó SUMIF => 0.72 s
2) SUMIFS => 1.29s
3) Sum(array) : Dùng công thức mảng =>7.34s
4) Sumproduct: => 7.35s
Tóm lại, Nếu dùng được cột phụ là tốt nhất. Không thì dùng SUMIFS.
Công thức mảng và SUMPRODUCT là lựa chọn cuối cùng (vì phải thực hiện 999.000 phép tính)
Nếu công thứcĐơn giản thôi, xét ví dụ Sumif và Sumproduct như bảng sau: Cột B là tháng, cột C là số tiền
Tính tổng số tiền 3 tháng, từ tháng 1 tới tháng 3
=SUMIF(B2:B13,"<=3",C2:C13)
=SUMPRODUCT((B2:B13<=3)*C2:C13)
Cái nào nhanh hơn:
Cả 2 cái đều duyệt cột B từ tháng 1 tới tháng 12, nhưng:
* SUMIF: Xét từng dòng trong cột B trước, nếu thỏa điều kiện <=3 thì mới tính toán:
Tháng 1 =5
Tháng 2 = 5+10= 15
Tháng 3: 15+15 =30
Từ tháng 4 trở đi, nó không thực hiện tính toán vì nhận thấy không thỏa điều kiện tháng <=3
* SUMPRODUCT: Xét từng dòng trong cột B, cộng bất chấp thỏa hay không thỏa:
Tháng 1 = (1<=3)*5 = 1*5 = 5
Tháng 2 = 5+(2<=3)*10= 5 + 1*10 = 15
Tháng 3= 15+(3<=3)*15 =15+1*15=30
Tháng 4=30+(4<=3)*20 = 30+0*20=30
Tháng 5=30+(5<=3)*25 = 30+0*25=30
...
Tháng 12=30+(12<=3)*60 = 30+0*60=30
Kết luận: SUMIF thực hiện 3 phép tính, SUMPRODUCT thực hiện 12 phép tính
Với data lớn, vài chục ngàn dòng, sẽ thấy sự khác biệt!!!
View attachment 191278
=SUMIF(B2:B13,"<=300",C2:C13)
=SUMPRODUCT((B2:B13<=300)*C2:C13)
Chắc chắn SUMIF nhanh hơn rồi.Nếu công thứcsố phép tính ngang nhau, theo bạn công thức nào nhanh hơn?Mã:=SUMIF(B2:B13,"<=300",C2:C13) =SUMPRODUCT((B2:B13<=300)*C2:C13)
Trường hợp đặc biệtChắ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.
=SUMIF($A$2:$A$100000,">=0",$A$2:$A$100000)
=SUMPRODUCT($A$2:$A$100000)
Để 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: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.
Kết quả đâyĐể 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^
Mình sắp code xong rồi. Để xong cái mình đang làm sẽ thử xử lý.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^
hihi hihi hihi ^o^, 5 phần vạn giây là sao chị!? hổng hỉu lun!
Hic, bữa giờ đi tất niên chuột nhà mình uống nhiều quá hay sao í ! Cứ quay vòng vòng hoàihihi hihi hihi ^o^, 5 phần vạn giây là sao chị!? hổng hỉu lun!
hihi ^o^
Code "ngoại" theo link của anh bebo021999 gửi mà chị: https://exceloffthegrid.com/optimize-formula-calculation-speed-part-8-sum-with-multiple-criteria/Hic, bữa giờ đi tất niên chuột nhiều uống nhiều quá hay sao í ! Cứ quay vòng vòng hoài
p/s: Code có lỗi hông ta ?
Anh bebo021999 ơi, đừng thấy phiền vì em hay quênVụ 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 ơ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!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
Dạ, em nghe anh ạ. Anh bảo sao thì em nghe thế ạ. Cám ơn anh đã hướng dẫn.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.
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ả?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.
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ù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.
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.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
Còn mình muốn biết nặng hay nhẹ thì làm như thế nàyAnh ơ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.
Mình thiệt lòng không hiểu ý bạn bebanhbeo là gì cả, nặng nhẹ của tập gym thì liên quan gì đến File nặng hay nhẹ do công thức???Còn mình muốn biết nặng hay nhẹ thì làm như thế này
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.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.
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ô 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)
1+100 là cặp đầu tiên, 2+99 là cặp thứ 2, có 50 cặp như vậy với tổng bằng 101 mỗi cặp.kết quả là 101*50logic của 1 + 2 + ... + 100 = (1 + 100)*(100 / 2)
![]()
![]()
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ắcBằ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á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ô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.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
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
Cớ sai lại hỏi anh bebo021999 câu hỏi cắc cớ nàybổ 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â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???Nếu công thứcsố phép tính ngang nhau, theo bạn công thức nào nhanh hơn?Mã:=SUMIF(B2:B13,"<=300",C2:C13) =SUMPRODUCT((B2:B13<=300)*C2:C13)
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???Trường hợp đặc biệtKhông biết công thức nào nhanh hơnMã:=SUMIF($A$2:$A$100000,">=0",$A$2:$A$100000) =SUMPRODUCT($A$2:$A$100000)
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???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???![]()
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!!!nếu có thể dùng countif, sumif thì không nên dùng Sumproduct để giảm tốc độ tính toán.
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
Chúc tất cả mọi người rất là vui vẻ, bình an & thỏa mãnLookup 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!!!