Mình nghĩ dùng code có thể khoảng 10 giây cho 50.000 dòng dữ liệu của bạn, còn không bạn nhờ Thầy Ptm hướng dẫn "chơi" nó bằng Pivot thôiCảm ơn thầy ndu96081631 và vodoi2x . Em đã làm được ,nhưng công thức này dường như vãn chưa chính xác và chờ xử lý hơi lâu. Còn tuyệt chiêu nào khác mong chỉ giúp em sớm.
=COUNT(1/FREQUENCY(MATCH(A1:A8;A1:A8;0);MATCH(A1:A8;A1:A8;0)))
=SUMPRODUCT(1/COUNTIF(A1:A8,A1:A8))
Không được đâu bạn, COUNTIF(MẢNG, MẢNG) chỉ làm việc với mảng cụ thể trên bảng tính (VD: A1:A100) chứ không làm việc với mảng tạo ra từ điều kiện (VD: mảng IF(A1:A100=D15,B1:B100,"")). Do đó phải dùng MATCH và FREQUENCY.PHP:=SUMPRODUCT(1/COUNTIF(A1:A8,A1:A8))
------
không biết Sumproduct liệu có thể thay thế FREQUENCY trong bài http://www.giaiphapexcel.com/forum/showthread.php?64911-%C4%90%E1%BA%BFm-d%E1%BB%AF-li%E1%BB%87u-v%E1%BB%9Bi-nhi%E1%BB%81u-%C4%91i%E1%BB%81u-ki%E1%BB%87n-c%C3%B3-tr%C3%B9ng-l%E1%BA%B7p không?
Giả sửa A1:A8 có cell rổng thì bạn tính sao đây?Thêm một công thức nữa hôm qua vừa học thày Ndu:
PHP:=COUNT(1/FREQUENCY(MATCH(A1:A8;A1:A8;0);MATCH(A1:A8;A1:A8;0)))
Không ngờ thày còn có công thức hay hơn
.PHP:=SUMPRODUCT(1/COUNTIF(A1:A8,A1:A8))
Dạ, rỗng thì thế này ạ :Giả sửa A1:A8 có cell rổng thì bạn tính sao đây?
Ẹc... Ẹc...
Nghiên cứu xem (là tôi đang nói đến công thức SUMPRODUCT đấy nha)
=SUMPRODUCT(($A$1:$A$8<>"")/COUNTIF($A$1:$A$8,$A$1:$A$8&""))
Gõ công thức này vào cell B1 thử xem:Cho mình hỏi, trường hợp muốn đếm số ký tự (hoặc số hoặc text) trong 1 cell và những ký tự trùng nhau thì chỉ coi là 1 thôi,
ví dụ:
Tại A1:
- có dữ liệu: 88922265 thì Công thức ở B1 sẽ cho kết quả là: 5
hoặc
- Có dữ liệu: ccvvvuqkd thì Công thức ở B1 sẽ cho kết quả là: 6
Cám ơn các bạn nhiều.
=SUMPRODUCT(1/(LEN(A1)-LEN(SUBSTITUTE(A1,MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),""))))
Bạn gửi file đính kèm lên nhé, mọi người ngại đánhlại file của bạn lắmmọi người giúp em với.
hiện tại em có một bảng dữ liệu rất nhiều con số ( có khoảng 1tr số trong cột từ A1 đến A....)
bjo em muốn lọc bỏ số trùng nhau và tạo ra một cột khác vd: B1 đến B..... và sau đó em muốn đến số lặp trùng của các phần tử đó.
VD:
cột a --- cột B --- cột C
5432343 --- 5432343--- 3
1245 --- 1245 --- 2
5432343--- 123--- 3
1245
5432343
123
123
123
nhưng vì dữ liệu của em ở cột A có khoảng 1tr phần tử. bác nào có thể giúp em không ạ.
Hiện tại em lọc số trùng nhau bằng advanced Filter trong excell ạ. nhưng kết quả lại ra không đúng ạ.
Em có tham khảo hết các công thức của mọi người đưa bên trên rồi ạ. nhưng không thấy cái nào đúng cả ( có thể em chưa biết sd công thức)
mong các bác chỉ cụ thể giúp em với ạ.
Em cảm ơn các bác rất nhiều ạ.
=IFERROR(INDEX($A$4:$A$9,MATCH(0,COUNTIF($B$3:B3,$A$4:$A$9),0),0),"")
=COUNTIF($A$4:$A$9,B4)
A Chị Nào chỉ em hàm nào vừa đếm vừa lọc dữ liệu với, em tìm hoài k ra cách tính
cảm ơn
Có ô Rỗng nữa nha các Anh Chị
=COUNT(1/FREQUENCY(IF($B$3:$B$17=D5,$A$3:$A$17),IF($B$3:$B$17=D5,$A$3:$A$17)))
Cho mình hỏi, trường hợp muốn đếm số ký tự (hoặc số hoặc text) trong 1 cell và những ký tự trùng nhau thì chỉ coi là 1 thôi,
ví dụ:
Tại A1:
- có dữ liệu: 88922265 thì Công thức ở B1 sẽ cho kết quả là: 5
hoặc
- Có dữ liệu: ccvvvuqkd thì Công thức ở B1 sẽ cho kết quả là: 6
Cám ơn các bạn nhiều.
Hôm nay lang thang trên diễn đàn đọc được bài này thấy hay quá nhưng cứ nghĩ mãi mà vẫn chưa hiểu được công thức này của chú ndu như nào mà lại ra được kết quả như vậy. Mong chú ndu lướt qua lại bài tập này và giải thích giùm con công thức trên với ạ. Các thành viên trên GPE ai đọc được bài này và hiểu được công thức này thì giải thích cho em/ mình với . Xin cảm ơn mọi người.Gõ công thức này vào cell B1 thử xem:
Lưu ý: ở đây ký tự khoảng trắng cũng tính luôn nhaPHP:=SUMPRODUCT(1/(LEN(A1)-LEN(SUBSTITUTE(A1,MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),""))))
hôm nay lang thang trên diễn đàn đọc được bài này thấy hay quá nhưng cứ nghĩ mãi mà vẫn chưa hiểu được công thức này của chú ndu như nào mà lại ra được kết quả như vậy. Mong chú ndu lướt qua lại bài tập này và giải thích giùm con công thức trên với ạ. Các thành viên trên gpe ai đọc được bài này và hiểu được công thức này thì giải thích cho em/ mình với . Xin cảm ơn mọi người.
(len(a1)-len(substitute(a1,mid(a1,row(indirect("1:"&len(a1))),1),"")))
{2;2;1;3;3;3;1;1}
Em hiểu rồi anh ạ . Xin cảm ơn anh đã giải thích rất cặn kẽ, chúc anh có ngày nghỉ cuối tuần vui vẻ.Đoạn này nhé, sẽ ra một mảngPHP:(len(a1)-len(substitute(a1,mid(a1,row(indirect("1:"&len(a1))),1),"")))
sumproduct(1/...) mình nghĩ Phong hiểu (1/2 rồi 1/2 rồi cộng vào)PHP:{2;2;1;3;3;3;1;1}
khi cho vào sumproduct thì row(indirect("1:"&len(a 1)) là một mảng gồm lân lượt trả về 1 đến 8 ( vì len( a 1)=8)
mid(A1, I,1). Ở đây I=1-->8
=+LEN(SUBSTITUTE(A1,MID(A1,1,1),""))= 922265=6
=Len(A 1)-LEN(SUBSTITUTE(A1,MID(A1,1,1),""))=2
nên {2;2;1;3;3;3;1;1} = 2 đầu tiên là vì vậy, tương tự tới tiếp
Phiền anh giải thích kĩ hơn chút xíu nữa về cái chỗ hàm Row kết hợp với Indrect được không. Sao đoạn này lại cho ra kết quả là 1 mảng gồm từ 1 đến 8 hả anh.khi cho vào sumproduct thì row(indirect("1:"&len(a 1)) là một mảng gồm lân lượt trả về 1 đến 8 ( vì len( a 1)=8)
Phiền anh giải thích kĩ hơn chút xíu nữa về cái chỗ hàm Row kết hợp với Indrect được không. Sao đoạn này lại cho ra kết quả là 1 mảng gồm từ 1 đến 8 hả anh.