Đếm số ô thỏa một vài điều kiện trong số rất nhiều điều kiện

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

phuplix

Thành viên chính thức
Tham gia
18/6/08
Bài viết
68
Được thích
4
Nhờ các bạn giúp mình về cái này, nói khó cũng không quá dễ, mà nói dễ thì nó cũng làm bình rối tung cái đầu 2 hôm nay

File của mình gồm 3 cột, Cột 1 là tên đại lý, cột 2 là tên chủng loại xe, cột 3 là ngày hôm nay

Mình muốn đếm xem hôm nay đại lý A bán được bao nhiêu xe Toyota thì dùng hàm gì.

Mình dùng hàm countifs như sau :

= countifs (cột 1,"đạilý",cột 2,Or("Vios","Hilux","Camry","Corola","Fortuner"), cột 3,=today())

Ở cột 1 và 3 thì không vấn đề gì, vấn đề là ở cột 2, mình không biết làm sao để đếm được các ô thỏa một vài điều kiện trong các điều kiện đã đề ra.
Mình dùng thử hàm OR thì nó không ra kết quả.

Nhờ các bạn giúp mình
 

File đính kèm

Nhờ các bạn giúp mình về cái này, nói khó cũng không quá dễ, mà nói dễ thì nó cũng làm bình rối tung cái đầu 2 hôm nay

File của mình gồm 3 cột, Cột 1 là tên đại lý, cột 2 là tên chủng loại xe, cột 3 là ngày hôm nay

Mình muốn đếm xem hôm nay đại lý A bán được bao nhiêu xe Toyota thì dùng hàm gì.

Mình dùng hàm countifs như sau :

= countifs (cột 1,"đạilý",cột 2,Or("Vios","Hilux","Camry","Corola","Fortuner"), cột 3,=today())

Ở cột 1 và 3 thì không vấn đề gì, vấn đề là ở cột 2, mình không biết làm sao để đếm được các ô thỏa một vài điều kiện trong các điều kiện đã đề ra.
Mình dùng thử hàm OR thì nó không ra kết quả.

Nhờ các bạn giúp mình

Công thức cho cell I7:
Mã:
=COUNTIFS($B$8:$B$25,I$6,$D$8:$D$25,$L$1)
Kéo fill sang phải
 
Bạn ơi... dò tìm cột đầu và cột cuối thì dễ rùi, cái khó là tìm cái cột thứ 2 kìa.
Mình muốn tìm ra chỉ những xe Camry, Vios, Corola do đại lý bán thôi...trong cột thứ 2 của mình còn các loại xe của các hãng khác nữa
 
Bạn thử sử dụng SUMPRODUCT xem:
Mã:
=SUMPRODUCT(($B$8:$B$25=I$6)*($D$8:$D$25=$L$1)*($C$8:$C$25={"Camry","Vios","Corola"}))
 
Bạn ơi... dò tìm cột đầu và cột cuối thì dễ rùi, cái khó là tìm cái cột thứ 2 kìa. Mình muốn tìm ra chỉ những xe Camry, Vios, Corola do đại lý bán thôi...trong cột thứ 2 của mình còn các loại xe của các hãng khác nữa

Rõ ràng trong file bạn ghi yêu cầu rằng:

Mã:
Thống kê số lượng xe mua ngày hôm nay

Có chổ nào nói có thêm điều kiện về LOẠI XE đâu? Nhưng nếu muốn thì ít nhất bạn cũng biết dùng 3 cái COUNTIFS cộng lại chứ?
 
Rõ ràng trong file bạn ghi yêu cầu rằng:

Mã:
Thống kê số lượng xe mua ngày hôm nay

Có chổ nào nói có thêm điều kiện về LOẠI XE đâu? Nhưng nếu muốn thì ít nhất bạn cũng biết dùng 3 cái COUNTIFS cộng lại chứ?

Dear bạn

Sorry vì không ghi rõ trong file ví dụ là chỉ lọc ra những xe của Toyota
 
Bạn thử sử dụng SUMPRODUCT xem:
Mã:
=SUMPRODUCT(($B$8:$B$25=I$6)*($D$8:$D$25=$L$1)*($C$8:$C$25={"Camry","Vios","Corola"}))

Thank bạn.
Thành công

Tuy nhiên cho mình hỏi, giả sử mình muốn thêm 1 điều kiện là chỉ lấy ra những xe màu trắng, đen, vàng, xanh thì đánh lệnh như thế nào.

Giả sử cột màu xe là cột E... mình dùng lệnh này mà không được.


=SUMPRODUCT(($B$8:$B$25=I$6)*($D$8:$D$25=$L$1)*($C$8:$C$25={"Camry","Vios","Corola"})*($E$8:$E$25={"trắng","đen","vàng","xanh"))

Bạn xem giúp mình, mình nghi ngờ lỗi ở chỗ cú pháp không cho nhiều lần {}
Mình không rõ lắm về vụ này
 
Thank bạn.
Thành công
Tuy nhiên cho mình hỏi, giả sử mình muốn thêm 1 điều kiện là chỉ lấy ra những xe màu trắng, đen, vàng, xanh thì đánh lệnh như thế nào.
Giả sử cột màu xe là cột E... mình dùng lệnh này mà không được.
=SUMPRODUCT(($B$8:$B$25=I$6)*($D$8:$D$25=$L$1)*($C$8:$C$25={"Camry","Vios","Corola"})*($E$8:$E$25={"trắng","đen","vàng","xanh"))
Bạn xem giúp mình, mình nghi ngờ lỗi ở chỗ cú pháp không cho nhiều lần {}
Mình không rõ lắm về vụ này
Hàm mảng dạng này không áp dụng được, bạn phải tách rời điều kiện:
Mã:
=SUMPRODUCT(($B$8:$B$25=I$6)*($D$8:$D$25=$L$1)*($C$8:$C$25={"Camry","Vios","Corola"})*(($E$8:$E$25="trắng")+($E$8:$E$25="đen")+($E$8:$E$25="vàng")+($E$8:$E$25="xanh")))
 
Bạn xem giúp mình, mình nghi ngờ lỗi ở chỗ cú pháp không cho nhiều lần {}
Mình không rõ lắm về vụ này
Cú pháp hàm mảng cho phép sử dụng nhiều {} với cấu trúc như nhau (kích thước):
Ví dụ: {A,B,C} tương ứng với {X,Y,Z}
Giống như hàm AND, A và X, B và Y, C và Z
 
Hàm mảng dạng này không áp dụng được, bạn phải tách rời điều kiện:
Mã:
=SUMPRODUCT(($B$8:$B$25=I$6)*($D$8:$D$25=$L$1)*($C$8:$C$25={"Camry","Vios","Corola"})*(($E$8:$E$25="trắng")+($E$8:$E$25="đen")+($E$8:$E$25="vàng")+($E$8:$E$25="xanh")))

Thank bạn... nếu có thể bạn giải thích mình rõ hơn tại sao phải tách rời điều kiện ra nhé.

Thank bạn trước
 
Thank bạn... nếu có thể bạn giải thích mình rõ hơn tại sao phải tách rời điều kiện ra nhé.

Thank bạn trước
Như bài #9 đã nói, hàm của bạn sai về cấu trúc, nếu đúng cấu trúc thì điều kiện giống như hàm AND. Khi tách ra từng điều kiện tương ứng với hàm OR.
Bạn test với 3 điều kiện "trắng", "đen", "vàng" thử xem. Hai điều kiện đầu (ngày, đại lý) thỏa, điều kiện thứ 3 và điều kiện thứ 4: Camry - trắng; Vios - đen; Corola - xanh.
 
Bạn leonguyenz ơi, cho mình hỏi là trong công thức dưới thì phần tô đỏ có cú pháp và hoạt động như thế nào, mình nghĩ {"Camry, "Vios", "Corola"} là một mảng nên mình tạo một mảng và cho vào công thức thì thấy báo lỗi, bạn xem file đính kèm nhé.

Mã:
SUMPRODUCT(($B$8:$B$25=J$6)*($D$8:$D$25=$L$1)*([COLOR=#ff0000]$C$8:$C$25={"Camry","Vios","Corola"}[/COLOR])*(($E$8:$E$25="trắng")+($E$8:$E$25="đen")+($E$8:$E$25="vàng")+($E$8:$E$25="xanh")))

Mình muốn hỏi là có thể thay thế cách input {"Camry, "Vios", "Corola"} bằng một mảng trong name được không. Cảm ơn bạn.
 

File đính kèm

Mình lại vừa phát hiện ra một điều rất lạ, mình đọc được bài của bạn leonguyenz ở trong cùng mục này về mảng ngang và mảng dọc, sau đó mình đã cho thêm hàm transpose để chuyển từ mảng dọc sang mảng ngang và công thức đã không lỗi #N/A nữa.

Công thức ở ô I7 khi dùng với cú pháp {"Camry, "Vios", "Corola"} thì kết quả trả về 1, là kết quả đúng. Nhưng sau khi dùng hàm transpose thì kết quả ở ô I7 sau khi enter trả về là 0 trong khi đó cùng công thức đó cùng cell đó khi ấn F2 để vào công thức và sau đó bấm F9 thì kết quả lại là 1. Bạn có thể giải thích cho mình được không.
 

File đính kèm

Bạn leonguyenz ơi, cho mình hỏi là trong công thức dưới thì phần tô đỏ có cú pháp và hoạt động như thế nào, mình nghĩ {"Camry, "Vios", "Corola"} là một mảng nên mình tạo một mảng và cho vào công thức thì thấy báo lỗi, bạn xem file đính kèm nhé.
Mình muốn hỏi là có thể thay thế cách input {"Camry, "Vios", "Corola"} bằng một mảng trong name được không. Cảm ơn bạn.
{"Camry, "Vios", "Corola"} là một mảng ngang (theo mình hiểu), bạn đưa vào mảng vào cho nó thành mảng dọc {"Camry";"Vios";"Corola"} . Trong công thức bạn đặt điều kiện mảng dọc 1 = mảng dọc 2 (không cùng kích thước nên sẽ lỗi #N/A! (Không tìm được kết quả). Khi bạn dùng TRANSPORE để chuyển nó (array của bạn) thành mảng ngang thì sẽ không bị lỗi.
Mình lại vừa phát hiện ra một điều rất lạ, mình đọc được bài của bạn leonguyenz ở trong cùng mục này về mảng ngang và mảng dọc, sau đó mình đã cho thêm hàm transpose để chuyển từ mảng dọc sang mảng ngang và công thức đã không lỗi #N/A nữa.
Công thức ở ô I7 khi dùng với cú pháp {"Camry, "Vios", "Corola"} thì kết quả trả về 1, là kết quả đúng. Nhưng sau khi dùng hàm transpose thì kết quả ở ô I7 sau khi enter trả về là 0 trong khi đó cùng công thức đó cùng cell đó khi ấn F2 để vào công thức và sau đó bấm F9 thì kết quả lại là 1. Bạn có thể giải thích cho mình được không.
Kết quả cho là 0, vì thực tế cái hàm TRANSPORE bạn phải Ctrl+Shift+Enter nó mới cho ra kết quả là 1, còn không thì chỉ là 1 kết quả "Camry", và kết quả của SUMPRODUCT sẽ là 0.
 
Cảm ơn bạn, cho mình hỏi có cách nào để không phải ctr+shift+enter không. Mình muốn truy xuất từ mảng thay vì cụm {"Camry","Vios","Corola"}.
 
Cảm ơn bạn, cho mình hỏi có cách nào để không phải ctr+shift+enter không. Mình muốn truy xuất từ mảng thay vì cụm {"Camry","Vios","Corola"}.
Bạn thay ROW bằng COLUMN trong Name, và không sử dụng TRANSPORE trong SUMPRODUCT.
Mã:
=TRIM(MID(SUBSTITUTE(Sheet1!$D$5,",",REPT(" ",255)),255*(COLUMN(Sheet1!$A:$C)-1)+1,255))
 
Cảm ơn bạn nhé, mình đã hiểu thêm một kiến thức nữa về mảng và công thức mảng.
 
Chào bạn leonguyenz, mình lại xin được hỏi bạn 1 vấn đề nữa, mình có tham khảo thì hàm sumproduct có nhiều cách viết để có thể ra được kết qủa là đếm nhiều điều kiện, mình thay cách viết dùng dấu "*" bằng dấu "," và thêm -- vào để tăng tốc độ tính toán. Mình muốn hỏi là có đúng là cách này tăng tốc độ tính toán của sumproduct lên không và khi mình đổi sang cách viết như vậy thì hàm báo lỗi #Value!. Có sự khác nhau giữa hai cách viết chăng?


Mã:
SUMPRODUCT(--($B$8:$B$25=I$6),--($D$8:$D$25=$L$1),--(array=$C$8:$C$25),--(($E$8:$E$25="trắng")+($E$8:$E$25="đen")+($E$8:$E$25="vàng")+($E$8:$E$25="xanh")))
 
Rõ ràng trong file bạn ghi yêu cầu rằng:

Mã:
Thống kê số lượng xe mua ngày hôm nay

Có chổ nào nói có thêm điều kiện về LOẠI XE đâu? Nhưng nếu muốn thì ít nhất bạn cũng biết dùng 3 cái COUNTIFS cộng lại chứ?
Em thường tìm thấy được các câu lệnh, bài giải...thật sáng tạo và gãy gọn từ anh. Cảm ơn anh rất nhiều.
 
Web KT

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

Back
Top Bottom