Xin giúp.......Kết hợp countifs và Sumproduct để đếm dữ liệu và tính số lượng tổng không trùng lặp với nhiều điều kiện (1 người xem)

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

Tôi tuân thủ nội quy khi đăng bài

dieppk.nb92

Thành viên mới
Tham gia
24/8/22
Bài viết
28
Được thích
-1
Xin các bậc cao nhân vào giúp em vấn đề này với ạ, em loay hoay mấy ngày nay đều không thể làm ra kết quả như mong muốn. ;(
Bài đã được tự động gộp:

Đây là file em cần giúp đỡ ạ
 
Tôi cũng đang gặp vấn đề như bạn. Loay hoay mãi chả ra kết quả. Nhờ các anh chị xem giúp 2 công thức này
=COUNTIFS('Du Lieu'!AJ:AJ,"<>0",'Du Lieu'!X:X,">0",'Du Lieu'!U:U,12,'Du Lieu'!D:D,HĐT!H7) =>Kết quả đếm được nhưng không loại bỏ dữ liệu trùng lặp
=SUMPRODUCT(1/COUNTIFS('Du Lieu'!AJ:AJ,"<>0",'Du Lieu'!X:X,">0",'Du Lieu'!U:U,12,'Du Lieu'!D:D,HĐT!H7)) =>Cho ra kết quả =0
 
Tôi cũng có vấn đề với hai bạn, loay hoay mãi mà chả thấy hai cái file đính kèm của hai bạn giấu ở đâu để hiểu hai bạn muốn cái chi!? Loại bỏ trùng lắp thì trên này anh em làm được, nhưng không biết bỏ kết quả vào chỗ mô!

Vậy hén
:):):)
 
Tôi cũng có vấn đề với hai bạn, loay hoay mãi mà chả thấy hai cái file đính kèm của hai bạn giấu ở đâu để hiểu hai bạn muốn cái chi!? Loại bỏ trùng lắp thì trên này anh em làm được, nhưng không biết bỏ kết quả vào chỗ mô!

Vậy hén
:):):)
Xin lỗi bạn. Vì file có dung lượng quá lớn nên mình không tải lên được. Mình xin lược bớt dữ liệu và tải lại ạ. Bạn xem giúp mình nhé.
 

File đính kèm

1/ Nên ước lượng số dòng dữ liệu cần thiết để tính toán, không nên chọn cả cột như Detail!Q: Q vì nó là nguyên nhân ảnh hưởng đến tốc độ xử lý của máy.

2/ Nếu bạn đang dùng Excel 365 trở lên, dùng công thức: ô B7
Mã:
=COUNT(1/ISTEXT(UNIQUE(FILTER(DETAIL!$C$1:$C$5000,(DETAIL!$Q$1:$Q$5000=$A7)*(DETAIL!$U$1:$U$5000=B$5)*(DETAIL!$J$1:$J$5000="DERICTCTO")*(DETAIL!$W$1:$W$5000="NONE")))))
Nếu thấp hơn, vì file bạn có dòng dữ liệu lớn, tốt hơn nên xử lý vấn đề loại bỏ trùng lắp bằng VBA.

3/ Về việc lấy số lượng LOT do chưa hiểu rõ bạn cần: tổng cộng các số lượng LOT, hay chỉ đếm có bao nhiêu LOT thỏa điều kiện; đồng thời loại bỏ trùng lắp cột nào: MO, MODEL, hay USN?

Thân
 

File đính kèm

1/ Nên ước lượng số dòng dữ liệu cần thiết để tính toán, không nên chọn cả cột như Detail!Q: Q vì nó là nguyên nhân ảnh hưởng đến tốc độ xử lý của máy.

2/ Nếu bạn đang dùng Excel 365 trở lên, dùng công thức: ô B7
Mã:
=COUNT(1/ISTEXT(UNIQUE(FILTER(DETAIL!$C$1:$C$5000,(DETAIL!$Q$1:$Q$5000=$A7)*(DETAIL!$U$1:$U$5000=B$5)*(DETAIL!$J$1:$J$5000="DERICTCTO")*(DETAIL!$W$1:$W$5000="NONE")))))
Nếu thấp hơn, vì file bạn có dòng dữ liệu lớn, tốt hơn nên xử lý vấn đề loại bỏ trùng lắp bằng VBA.

3/ Về việc lấy số lượng LOT do chưa hiểu rõ bạn cần: tổng cộng các số lượng LOT, hay chỉ đếm có bao nhiêu LOT thỏa điều kiện; đồng thời loại bỏ trùng lắp cột nào: MO, MODEL, hay USN?

Thân
Vâng ạ. Em có thể diễn tả như này ạ.
Ở sheet report em muốn lấy số lượng cột LOT theo tình trạng như repair. Assemble.....sau đó trong cái repair có những MO trùng lặp tại cột LOT giúp em loại bỏ trùng lặp đó ạ. Ví dụ 1 lot = 48pcs. Tại khung 12H có 2pcs ở RN có cùng số MO là 48pcs thì mình chỉ cần kết quả là 48 chứ không phải 96 ạ
 
1/ Nên ước lượng số dòng dữ liệu cần thiết để tính toán, không nên chọn cả cột như Detail!Q: Q vì nó là nguyên nhân ảnh hưởng đến tốc độ xử lý của máy.

2/ Nếu bạn đang dùng Excel 365 trở lên, dùng công thức: ô B7
Mã:
=COUNT(1/ISTEXT(UNIQUE(FILTER(DETAIL!$C$1:$C$5000,(DETAIL!$Q$1:$Q$5000=$A7)*(DETAIL!$U$1:$U$5000=B$5)*(DETAIL!$J$1:$J$5000="DERICTCTO")*(DETAIL!$W$1:$W$5000="NONE")))))
Nếu thấp hơn, vì file bạn có dòng dữ liệu lớn, tốt hơn nên xử lý vấn đề loại bỏ trùng lắp bằng VBA.

3/ Về việc lấy số lượng LOT do chưa hiểu rõ bạn cần: tổng cộng các số lượng LOT, hay chỉ đếm có bao nhiêu LOT thỏa điều kiện; đồng thời loại bỏ trùng lắp cột nào: MO, MODEL, hay USN?

Thân
Phần đếm QTY anh giải quyết giúp em được rồi ạ. Em cảm ơn rất nhiều ạ.
 
Vâng ạ. Em có thể diễn tả như này ạ.
Ở sheet report em muốn lấy số lượng cột LOT theo tình trạng như repair. Assemble.....sau đó trong cái repair có những MO trùng lặp tại cột LOT giúp em loại bỏ trùng lặp đó ạ. Ví dụ 1 lot = 48pcs. Tại khung 12H có 2pcs ở RN có cùng số MO là 48pcs thì mình chỉ cần kết quả là 48 chứ không phải 96 ạ
Đã đọc giải thích của bạn rồi mà vẫn còn lấn cấn lắm.

Vậy, tôi làm "thầy bói xem voi" thử nhe!
Ô C7:
Mã:
=SUM(TAKE(UNIQUE(FILTER(HSTACK(DETAIL!$A$1:$A$5000,DETAIL!$D$1:$D$5000),(DETAIL!$Q$1:$Q$5000=$A7)*(DETAIL!$U$1:$U$5000=B$5),"")),,-1))
Không dùng Take(...,,-1) cũng được, nhưng lỡ có ai nhập vào MO là 1 số, không phải dạng 'text', thì ô hô ai tai!

Thân
 

File đính kèm

Đã đọc giải thích của bạn rồi mà vẫn còn lấn cấn lắm.

Vậy, tôi làm "thầy bói xem voi" thử nhe!
Ô C7:
Mã:
=SUM(TAKE(UNIQUE(FILTER(HSTACK(DETAIL!$A$1:$A$5000,DETAIL!$D$1:$D$5000),(DETAIL!$Q$1:$Q$5000=$A7)*(DETAIL!$U$1:$U$5000=B$5),"")),,-1))
Không dùng Take(...,,-1) cũng được, nhưng lỡ có ai nhập vào MO là 1 số, không phải dạng 'text', thì ô hô ai tai!

Thân
Bác ơi. Bác đang hiểu đúng ý em rồi ạ. Bác thêm 2 điều kiện thoả mãn giúp em nữa nhé ạ.
thoả mãn thêm điều kiện cột J = DerictCTO và cột W= none. Em cảm ơn nhiều ạ!
 
Bác ơi. Bác đang hiểu đúng ý em rồi ạ. Bác thêm 2 điều kiện thoả mãn giúp em nữa nhé ạ.
thoả mãn thêm điều kiện cột J = DerictCTO và cột W= none. Em cảm ơn nhiều ạ!
Bạn muốn thêm điều kiện gì thì cứ viết thêm vào sau đoạn: (DETAIL!$Q$1:$Q$5000=$A7)*(DETAIL!$U$1:$U$5000=B$5)
và dùng dấu nhân "*" để nối chúng lại với nhau.

Như bạn yêu cầu:
Cột J = DerictCTO --> (DETAIL!$J$1:$J$5000="DerictCTO")
Cột W= None --> (DETAIL!$W$1:$W$5000="None")

Vậy, nối thành:
(DETAIL!$Q$1:$Q$5000=$A7)*(DETAIL!$U$1:$U$5000=B$5)*(DETAIL!$J$1:$J$5000="DerictCTO")*(DETAIL!$W$1:$W$5000="None")

Xong! Dễ như ăn cơm bửa hén!

:):):)
 
Bạn muốn thêm điều kiện gì thì cứ viết thêm vào sau đoạn: (DETAIL!$Q$1:$Q$5000=$A7)*(DETAIL!$U$1:$U$5000=B$5)
và dùng dấu nhân "*" để nối chúng lại với nhau.

Như bạn yêu cầu:
Cột J = DerictCTO --> (DETAIL!$J$1:$J$5000="DerictCTO")
Cột W= None --> (DETAIL!$W$1:$W$5000="None")

Vậy, nối thành:
(DETAIL!$Q$1:$Q$5000=$A7)*(DETAIL!$U$1:$U$5000=B$5)*(DETAIL!$J$1:$J$5000="DerictCTO")*(DETAIL!$W$1:$W$5000="None")

Xong! Dễ như ăn cơm bửa hén!

:):):)
Dạ. Em làm được rồi ạ. Em cảm ơn bác. Chúc bác thật nhiều sức khoẻ ạ.
 
Bạn muốn thêm điều kiện gì thì cứ viết thêm vào sau đoạn: (DETAIL!$Q$1:$Q$5000=$A7)*(DETAIL!$U$1:$U$5000=B$5)
và dùng dấu nhân "*" để nối chúng lại với nhau.

Như bạn yêu cầu:
Cột J = DerictCTO --> (DETAIL!$J$1:$J$5000="DerictCTO")
Cột W= None --> (DETAIL!$W$1:$W$5000="None")

Vậy, nối thành:
(DETAIL!$Q$1:$Q$5000=$A7)*(DETAIL!$U$1:$U$5000=B$5)*(DETAIL!$J$1:$J$5000="DerictCTO")*(DETAIL!$W$1:$W$5000="None")

Xong! Dễ như ăn cơm bửa hén!

:):):)
Bác ơi. Sau quá trình sử dụng công thức này. Em có 1 bất cập sau ạ. Bác giúp em xem 1 chút được không ạ
Ví dụ Nếu khoá detail $Q1$-$Q$1000...thì khi em up dữ liệu mới và xoá dòng dữ liệu cũ bên detail thì kết quả công thức cũng bị thay đổi theo. Xoá hết nên k ra kq
Nếu em để $Q$:$Q$ thì giải quyết dc vấn đề trên nhưng chắc dữ liệu quá lớn dẫn đến excel lag. Đơ giật ạ.
Bây giờ có cách nào khác không ạ bác. Em cảm ơn ạ!
 
Bác ơi. Sau quá trình sử dụng công thức này. Em có 1 bất cập sau ạ. Bác giúp em xem 1 chút được không ạ
Ví dụ Nếu khoá detail $Q1$-$Q$1000...thì khi em up dữ liệu mới và xoá dòng dữ liệu cũ bên detail thì kết quả công thức cũng bị thay đổi theo. Xoá hết nên k ra kq
Nếu em để $Q$:$Q$ thì giải quyết dc vấn đề trên nhưng chắc dữ liệu quá lớn dẫn đến excel lag. Đơ giật ạ.
Bây giờ có cách nào khác không ạ bác. Em cảm ơn ạ!
DETAIL bạn đang dùng Table
Nếu vậy thì bạn quét chọn cột trong table (xem file đính kèm dưới đây). Khi bạn úp dữ liệu mới xóa dòng hay thêm dòng thì vùng dữ liệu tự động mở rộng.
Hoặc bạn delete các giá trị trong bảng dữ liệu (không xóa dòng) rồi paste value dữ liệu mới vào bảng DETAIL là được.

Note: Bạn nên thêm 1 cột phụ để nối các điều kiện lại với nhau, như vậy công thức ngắn và đỡ rối hơn.
 

File đính kèm

Bác ơi. Sau quá trình sử dụng công thức này. Em có 1 bất cập sau ạ. Bác giúp em xem 1 chút được không ạ
Ví dụ Nếu khoá detail $Q1$-$Q$1000...thì khi em up dữ liệu mới và xoá dòng dữ liệu cũ bên detail thì kết quả công thức cũng bị thay đổi theo. Xoá hết nên k ra kq
Nếu em để $Q$:$Q$ thì giải quyết dc vấn đề trên nhưng chắc dữ liệu quá lớn dẫn đến excel lag. Đơ giật ạ.
Bây giờ có cách nào khác không ạ bác. Em cảm ơn ạ!
Bạn thử tìm hiểu và sử dụng: hoặc hàm OFFSET(), hoặc hàm INDIRECT(), không khó lắm đâu, tôi tin là bạn có thể tự mình xử lý được vấn đề này.

Thân
 
Dạ
DETAIL bạn đang dùng Table
Nếu vậy thì bạn quét chọn cột trong table (xem file đính kèm dưới đây). Khi bạn úp dữ liệu mới xóa dòng hay thêm dòng thì vùng dữ liệu tự động mở rộng.
Hoặc bạn delete các giá trị trong bảng dữ liệu (không xóa dòng) rồi paste value dữ liệu mới vào bảng DETAIL là được.

Note: Bạn nên thêm 1 cột phụ để nối các điều kiện lại với nhau, như vậy công thức ngắn và đỡ rối hơn.
em cảm ơn bác ạ.
Bài đã được tự động gộp:

Bạn thử tìm hiểu và sử dụng: hoặc hàm OFFSET(), hoặc hàm INDIRECT(), không khó lắm đâu, tôi tin là bạn có thể tự mình xử lý được vấn đề này.

Thân
Vâng. Cảm ơn bác đã hướng dẫn ạ
 

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

Back
Top Bottom