Hàm if trong sumproduct

  • Thread starter Thread starter stao
  • Ngày gửi Ngày gửi
Liên hệ QC

stao

Thành viên hoạt động
Tham gia
29/7/08
Bài viết
113
Được thích
26
sumproduct((a1:a5)*if(b1="x",1,b1=(c1:c5)))

Nếu b1=x thì không vấn đề gì
nhưng b1 <> x thì kết quả luôn 0

bác nào biết chỉ dùm

Cảm ơn nhiều.
 
Với B1<>"x" thì công thức trên tương đương với :
=SUMPRODUCT({1;5;8;3;9}*{FALSE;FALSE;FALSE;FALSE;F ALSE})
=SUMPRODUCT({0;0;0;0;0})
Như vầy thì không đúng ý đồ dùng công thức nên cần các bác giúp để chỉnh lỗi này
tks

Vậy ý dồ của bạn là gì!? Có phải là:
Nếu B1 = "x" thì trả về giá trị là 1, nếu không thì lấy giá trị của [C1:C5], sau đó nhân với [A1:A5]

Bạn có thấy vô lý không khi nói cái này?
(a1:a5)={1,5,8,3,9}
(c1:c5)={a,b,c,a,b}
Một mảng là số đem nhân với một mảng là chữ, thì không biết nó ra cái gì nữa?

Còn nếu ý đồ của bạn không phải như thế thì bạn cần nói cho rõ hơn nha!
 
sumproduct((a1:a5)*if(b1="x",1,b1=(c1:c5)))
(a1:a5)={1,5,8,3,9}
(c1:c5)={a,b,c,a,b}

Nếu b1=x thì kết quả: 1+5+8+3+9
Nếu b1=a thì kết quả: 1+0+0+3+0 , vấn đề là khi dùng if trong sumproduct thì kết quả

=SUMPRODUCT({1;5;8;3;9}*{FALSE;FALSE;FALSE;FALSE;F ALSE})
=SUMPRODUCT({0;0;0;0;0})

Do đó không biết có cách nào khắc phục công thức if trong sumproduct này hay có công thức khác?
 
sumproduct((a1:a5)*if(b1="x",1,b1=(c1:c5)))
(a1:a5)={1,5,8,3,9}
(c1:c5)={a,b,c,a,b}

Nếu b1=x thì kết quả: 1+5+8+3+9
Nếu b1=a thì kết quả: 1+0+0+3+0 , vấn đề là khi dùng if trong sumproduct thì kết quả

Vậy thì bạn dùng công thức này thử xem:
=SUMIF($C$1:$C$5,$B$1,$A$1)+SUMPRODUCT(($B$1="x")*($A$1:$A$5))
Hoặc SUMPRODUCT thuần tuý:
=SUMPRODUCT(--(($C$1:$C$5=$B$1)+($B$1="x")),$A$1:$A$5)
 

File đính kèm

Lần chỉnh sửa cuối:
sumproduct((a1:a5)*if(b1="x",1,b1=(c1:c5)))
(a1:a5)={1,5,8,3,9}
(c1:c5)={a,b,c,a,b}

Nếu b1=x thì kết quả: 1+5+8+3+9
Nếu b1=a thì kết quả: 1+0+0+3+0 , vấn đề là khi dùng if trong sumproduct thì kết quả

=SUMPRODUCT({1;5;8;3;9}*{FALSE;FALSE;FALSE;FALSE;F ALSE})
=SUMPRODUCT({0;0;0;0;0})

Do đó không biết có cách nào khắc phục công thức if trong sumproduct này hay có công thức khác?
Bạn diễn đạt khó hiểu quá. Bạn thử công thức này xem, bấm Ctrl+Shift+Enter khi nhập xong công thức.
{=SUM(A1:A5*IF(B1="x",1,(B1=C1:C5)))}
 
Vậy thì bạn dùng công thức này thử xem:
Hoặc SUMPRODUCT thuần tuý:
=SUMPRODUCT(--(($C$1:$C$5=$B$1)+($B$1="x")),$A$1:$A$5)
Rất cảm ơn dafi, công thức của bạn đã giải quyết được vấn đề của mình

Có điều chưa hiểu rõ lắm cách dùng này, nếu được mong bạn chỉ dẫn tks.
 
Rất cảm ơn dafi, công thức của bạn đã giải quyết được vấn đề của mình

Có điều chưa hiểu rõ lắm cách dùng này, nếu được mong bạn chỉ dẫn tks.
Tại sao để dấu "--" để làm gì?
Còn lại thì mình đã hiểu
 
sumproduct((a1:a5)*if(b1="x",1,b1=(c1:c5)))
(a1:a5)={1,5,8,3,9}
(c1:c5)={a,b,c,a,b}

Nếu b1=x thì kết quả: 1+5+8+3+9
Nếu b1=a thì kết quả: 1+0+0+3+0 , vấn đề là khi dùng if trong sumproduct thì kết quả

=SUMPRODUCT({1;5;8;3;9}*{FALSE;FALSE;FALSE;FALSE;F ALSE})
=SUMPRODUCT({0;0;0;0;0})

Do đó không biết có cách nào khắc phục công thức if trong sumproduct này hay có công thức khác?
- Nếu B1 = "x" thì SUM(A1:A5)... ngược lại thì SUMIF với điều kiện B1
Đúng chứ?
Vậy sao không phát biểu kiểu dể hiểu hơn:
PHP:
=IF(B1 = "x",SUM(A1:A5),SUMIF(C1:C5,B1,A1:A5))
Hoặc gọn hơn nữa:
PHP:
=SUMIF(C1:C5,IF(B1="x","*",B1),A1:A5)
Có phải thoải mái không? ---> chỉ SUM 1 điều kiện thì cần gì đến SUMPRODUCT chứ
 
Lần chỉnh sửa cuối:
- Nếu B1 = "x" thì SUM(A1:A5)... ngược lại thì SUMIF với điều kiện B1
Đúng chứ?
Vậy sao không phát biểu kiểu dể hiểu hơn:
PHP:
=IF(B1 = "x",SUM(A1:A5),SUMIF(C1:C5,B1,A1:A5))
Hoặc gọn hơn nữa:
PHP:
=SUMIF(C1:C5,IF(B1="x","*",B1),A1:A5)
Có phải thoải mái không? ---> chỉ SUM 1 điều kiện thì cần gì đến SUMPRODUCT chứ
Rất cảm ơn ndu! Nhưng mình cần dùng sumproduct vì thực tế mình dùng nhiều điều kiện khác nữa
 
Excel: 3 3
Word: 2 2
Excel: 3 3
Word: 2 2
Em cần cái tổng của "Excel" 3*3 + 3*3
Đã thử công thức các bác nêu trên nhưng kết quả = 0. Không biết em còn làm sai gì nữa không, mong các bác chỉ giúp.
 
Excel: 3 3
Word: 2 2
Excel: 3 3
Word: 2 2
Em cần cái tổng của "Excel" 3*3 + 3*3
Đã thử công thức các bác nêu trên nhưng kết quả = 0. Không biết em còn làm sai gì nữa không, mong các bác chỉ giúp.

Cho dãy trên từ A1 đến C4
Bạn dùng:
PHP:
=SUMPRODUCT((A1:A4="Excel:")*(B1:B4*C1:C4))

Hoặc dùng:
PHP:
=SUM(IF(A1:A4="Excel:",B1:B4*C1:C4))
kết thúc với Ctrl+Shift+Enter
 
Excel: 3 3
Word: 2 2
Excel: 3 3
Word: 2 2
Em cần cái tổng của "Excel" 3*3 + 3*3
Đã thử công thức các bác nêu trên nhưng kết quả = 0. Không biết em còn làm sai gì nữa không, mong các bác chỉ giúp.
Tiếc gì mà không đưa công thức bạn đã thử lên nhỉ.
 
Cảm ơn các bác đã chỉ dẫn, em làm được rồi, dùng thằng này:
=SUMPRODUCT(--(A1:A4="Excel"),B1:B4,C1:c4))
 
Web KT

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

Back
Top Bottom