Đếm bỏ qua các giá trị trùng nhau.

Liên hệ QC
Giả sử cột B chứa ngày dạng dd/mm/yyyy, Nếu chọn tháng 04/2019 thêm vào công thức:
Mã:
=COUNT(1/(MATCH(A1:A100,IF(SEARCH("T4",A1:A100)*(Text(B1:B100,"mm/yyyy")="04/2019"),A1:A100),)=ROW(1:100)))
Kết thúc bằng Ctrl+Shift+Enter.

Thân
Anh cho em hỏi cái phần = Row(1:100) có tác dụng gì vậy. Có cách nào để thu nhỏ vùng này không. Em sợ sau này dữ liệu em nhiều lên vài trăm hoặc nghìn dòng mà chọn hết cả 1 vùng lớn thế sẽ gây chậm file.
Các ô A1:A100 thì em sẽ thay bằng 1 cái name range động nên dữ liệu phát sinh đến đâu thì vùng đếm sẽ chạy đến đấy.
 
Anh cho em hỏi cái phần = Row(1:100) có tác dụng gì vậy. Có cách nào để thu nhỏ vùng này không. Em sợ sau này dữ liệu em nhiều lên vài trăm hoặc nghìn dòng mà chọn hết cả 1 vùng lớn thế sẽ gây chậm file.
Các ô A1:A100 thì em sẽ thay bằng 1 cái name range động nên dữ liệu phát sinh đến đâu thì vùng đếm sẽ chạy đến đấy.
Dùng Name để tạo Vùng động co giản cũng là cách hay cho dữ liệu <1.000 dòng.

Với công thức COUNT(1/ <Điều kiện lọc dữ liệu trùng= ROW(1:100)> ), hàm ROW(1:100) là 1 Mảng với ý nghĩa chỉ tạo ra "số thứ tự dòng" từ 1 đến 100, nó không bị "lệ thuộc" vào số dòng bạn có thực là bao nhiêu, miễn sao nó bằng hoặc lớn hơn là được. Ví dụ: Nếu số dòng thực của bạn là 125 dòng thì bạn có thể tạo ra stt: ROW(1:125), hoặc ROW(1:150), hoặc ROW(1:200), tức số 125 (hoặc 150, hoặc 200)>=125.

Các công thức trên đều là công thức mảng (tính cho toàn bộ Vùng hiện hữu, rồi lưu và tính tiếp trong bộ nhớ), cho nên hễ dữ liệu lên hơn 1.000 dòng sẽ làm cho trì trệ máy. Khi buộc lòng phải xử lý dữ liệu trên 1.000 dòng, bạn nên nghĩ đến:
  1. Tạo cột phụ: để loại dữ liệu trùng theo như yêu cầu quy định.
  2. Dùng VBA. (Khả năng này tốt hơn với dữ liệu lớn, nhưng tôi lại không biết làm).
Vậy hén!

Thân
 
Lần chỉnh sửa cuối:
Dùng Name để tạo Vùng động co giản cũng là cách hay cho dữ liệu <1.000 dòng.

Với công thức COUNT(1/ <Điều kiện lọc dữ liệu trùng= ROW(1:100)> ), hàm ROW(1:100) là 1 Mảng với ý nghĩa chỉ tạo ra "số thứ tự dòng" từ 1 đến 100, nó không bị "lệ thuộc" vào số dòng bạn có thực là bao nhiêu, miễn sao nó bằng hoặc lớn hơn là được. Ví dụ: Nếu số dòng thực của bạn là 125 dòng thì bạn có thể tạo ra stt: ROW(1:125), hoặc ROW(1:150), hoặc ROW(1:200), tức số 125 (hoặc 150, hoặc 200)>=125.

Các công thức trên đều là công thức mảng (tính cho toàn bộ Vùng hiện hữu, rồi lưu và tính tiếp trong bộ nhớ), cho nên hễ dữ liệu lên hơn 1.000 dòng sẽ làm cho trì trệ máy. Khi buộc lòng phải xử lý dữ liệu trên 1.000 dòng, bạn nên nghĩ đến:
  1. Tạo cột phụ: để loại dữ liệu trùng theo như yêu cầu quy định.
  2. Dùng VBA. (Khả năng này tốt hơn với dữ liệu lớn, nhưng tôi lại không biết làm).
Vậy hén!

Thân

Anh ơi vậy dùng hàm Sumproduct có được không anh nhỉ, em thử kết hợp mà nó toàn báo lỗi. Thêm nữa phần Row có cách nào để nó cũng động đc ko anh.

Tham khảo công thức:
Mã:
=SUMPRODUCT(1/COUNTIF($A$1:$A$12,$A$1:$A$12)*(ISNUMBER(SEARCH("T4",$A$1:$A$12))))
 
  1. Dùng VBA. (Khả năng này tốt hơn với dữ liệu lớn, nhưng tôi lại không biết làm).
Vậy hén!

Thân
Dạo này không nhờ vả gì anh được là vì dữ liệu của em toàn >10k dòng.
Em cũng chỉ thích học hàm nhưng thật sự phải công nhận VBA nó tiện ích.
 
Hi các anh chị,

Mình là thành viên mới, đang gặp khó không biết xài công thức nào cho 1 bảng tính mà muốn lấy các giá trị trong một cột có cùng tham số? Mình dùng index+match nhưng chỉ ra 1 giá trị đầu tiên, còn các giá trị bên dưới ko ra dc. Mình có tham số (0143/2019) và mình muốn lấy ra các số HĐ (cái nào trùng chỉ lấy 1 lần ah). Mong anh chị có thể giúp đỡ mình xin cảm ơn ah !

SHIPMENT OUTBOUND NO. OUBOUND DATEIB JOBFILES NO.BACK UP FILESMATERIAL INBOUND DATEMATERIAL NO.CONTRACT NUMBER
0143/20197-May-191766-Apr-19X10211669644KV/HĐKNQ.TMS.2019
0143/20197-May-191766-Apr-19X10211669644KV/HĐKNQ.TMS.2019
0143/20197-May-191766-Apr-19X10211669544KV/HĐKNQ.TMS.2019
0143/20197-May-191766-Apr-19LTSPCWO97044KV/HĐKNQ.TMS.2019
0143/20197-May-191786-Apr-19LTSPCWO96845KV/HĐKNQ.TMS.2019
0143/20197-May-191786-Apr-19LTSPCWO96845KV/HĐKNQ.TMS.2019
0143/20197-May-191786-Apr-19X10211669545KV/HĐKNQ.TMS.2019
0143/20197-May-191786-Apr-19X10211669545KV/HĐKNQ.TMS.2019
0143/20197-May-191796-Apr-19X10219917346KV/HĐKNQ.TMS.2019
0143/20197-May-191796-Apr-19LTSTE3T54446KV/HĐKNQ.TMS.2019
 
Hi các anh chị,

Mình là thành viên mới, đang gặp khó không biết xài công thức nào cho 1 bảng tính mà muốn lấy các giá trị trong một cột có cùng tham số? Mình dùng index+match nhưng chỉ ra 1 giá trị đầu tiên, còn các giá trị bên dưới ko ra dc. Mình có tham số (0143/2019) và mình muốn lấy ra các số HĐ (cái nào trùng chỉ lấy 1 lần ah). Mong anh chị có thể giúp đỡ mình xin cảm ơn ah !

SHIPMENT OUTBOUND NO.OUBOUND DATEIB JOBFILES NO.BACK UP FILESMATERIAL INBOUND DATEMATERIAL NO.CONTRACT NUMBER
0143/20197-May-191766-Apr-19X10211669644KV/HĐKNQ.TMS.2019
0143/20197-May-191766-Apr-19X10211669644KV/HĐKNQ.TMS.2019
0143/20197-May-191766-Apr-19X10211669544KV/HĐKNQ.TMS.2019
0143/20197-May-191766-Apr-19LTSPCWO97044KV/HĐKNQ.TMS.2019
0143/20197-May-191786-Apr-19LTSPCWO96845KV/HĐKNQ.TMS.2019
0143/20197-May-191786-Apr-19LTSPCWO96845KV/HĐKNQ.TMS.2019
0143/20197-May-191786-Apr-19X10211669545KV/HĐKNQ.TMS.2019
0143/20197-May-191786-Apr-19X10211669545KV/HĐKNQ.TMS.2019
0143/20197-May-191796-Apr-19X10219917346KV/HĐKNQ.TMS.2019
0143/20197-May-191796-Apr-19LTSTE3T54446KV/HĐKNQ.TMS.2019
Giả sử:
I2="0143/2019"
Thử:
Mã:
J3=IFERROR(INDEX($G$3:$G$100,MATCH(,INDEX(COUNTIF($J$2:$J2,$G$3:$G$100)+($A$3:$A$100<>$I$2),),)),"")
Enter, fill xuống.

Thân
 

File đính kèm

  • LietKe.xlsx
    10.7 KB · Đọc: 27
Công thức này thực chất là của bạn nginh, mình chỉ sửa chút xíu để đúng yêu cầu của chủ Top. Nếu có ô rỗng có lẽ thế này là ổn:
Mã:
=SUMPRODUCT((B$1:B$11>=9%)*(B$1:B$11<=10%)*(D$1:D$11="Ngan han")*(MATCH(A$1:A$11&"",A$1:A$11&"",0)=ROW($1:$11)))
Cảm ơn bạn đã góp ý.
Bạn làm sao để đoạn =ROW($1:$11) này có thể tăng lên khi chèn thêm dòng
 
cái này nói không biết bao nhiêu lần trên diển đàn rồi, bạn phải search trước khi hỏi chứ (Đếm không trùng)
Công thức tổng quát là:
=SUMPRODUCT(1/COUNTIF(Vung,Vung))
Với Vung là địa chỉ vùng chứ dử liệu, ví dụ:
=SUMPRODUCT(1/COUNTIF(A1:A7,A1:A7))
Hàm này khi trong vùng có giá trị rỗng sẽ bị lỗi. Mình có hàm này vẫn đếm được và bỏ qua ô rỗng
SUMPRODUCT((Vung<>"")/COUNTIF(Vung,Vung&""))
 
Áp dụng vào file thực tế kết quả sai thật. Để tìm công thức khác cho bạn
Có bạn nào giải thích hộ em. Tại sao khi với ít trường hợp công thức trên lại chính xác ko ạ?

cho mình hỏi cách để đếm ví dụ kepk WR189 có bao nhiêu số lượng và các mặt hàng khác cũng trùng nhau nhưng ko cần đếm tay ạ. em cám ơn các anh chị
 

File đính kèm

  • vat tu 02 cong trinh lấy hóa đơn Tổng hợp.xlsx
    28 KB · Đọc: 10

File đính kèm

  • vat tu 02 cong trinh lấy hóa đơn Tổng hợp.xlsx
    33 KB · Đọc: 10
Lần chỉnh sửa cuối:
Chào cả nhà,
E có 2 sheet, muốn lọc các dòng có số chứng từ giống nhau và không giống nhau giữa 2 sheet. Mong cả nhà trợ giúp ạ.
 

File đính kèm

  • Đối chiếu.xlsx
    64.9 KB · Đọc: 13
cái này nói không biết bao nhiêu lần trên diển đàn rồi, bạn phải search trước khi hỏi chứ (Đếm không trùng)
Công thức tổng quát là:
=SUMPRODUCT(1/COUNTIF(Vung,Vung))
Với Vung là địa chỉ vùng chứ dử liệu, ví dụ:
=SUMPRODUCT(1/COUNTIF(A1:A7,A1:A7))
thầy cho em hỏi là nếu trong vùng điều kiện mà có ô trắng thì mình dùng công thức nào ạ, vì dùng công thức trên bị lỗi ạ lại hiện ra #DIV/0!, em cảm ơn thầy ah
 
Web KT
Back
Top Bottom