Giúp hàm lọc ra các đối tượng trùng nhau và đếm số lần trùng

Liên hệ QC
Bác có thể giả sử 3 4 MBN giống thế để lọc ra không? Chứ file hơn 20,000 người, em cũng có biết cái nào có hay không có trong tổng số 180,000 người. Em bị giới hạn upload nên phải cắt bớt file đi **~**. Và bác biết có cách nào xử lý cái kí tự đó không? hay phải xử lý thủ công.

Thì kết quả thử nghiệm trong file đính kèm đó còn gì!

Sau khi chạy macro thì dữ liệu từ dòng 4 đến dòng 60 là do macro đem lại.

(Mà hình như chưa sort như iêu cầu của bạn; chuyện này có thể tính sau đi!)
 
Thì kết quả thử nghiệm trong file đính kèm đó còn gì!

Sau khi chạy macro thì dữ liệu từ dòng 4 đến dòng 60 là do macro đem lại.

(Mà hình như chưa sort như iêu cầu của bạn; chuyện này có thể tính sau đi!)

Cảm ơn bác. Em tưởng bác dùng hàm, macro thì em mù tịt --=0. Em đã upload xong nguyên file của nó rồi đây, Bác xem lại dùm nhé --=0.

http://www.mediafire.com/download/c9kofu9fv22aoh4/ABC.rar
 
Lần chỉnh sửa cuối:
Chắc bạn fải chờ người khác vậy; Mình chỉ có E2003 nên xử không hết vụ này đâu!
 
Nhưng ứng dụng macro của Bác vẫn ra như ý muốn hả?
Những vấn đề của bạn đang là như sau:

MBN để đem đi tìm kiếm đang có độ dài là 7;
Trong khi đó MBN do fần mêm đưa ra đang có 2 khiếm khuyết:
Có 1 khoảng trống cuối mã
Là chuỗi, chứ không fải dạng trị số & nếu chàng nào không đủ chiều dài thì tự động được thêm số không vô trước chuỗi.

Để áp dụng lọc được bạn fải 2 thứ này về 1 kiểu dữ liệu (& theo mình nên là số, như
(*) Bỏ bớt khoảng trống cuối mã trong CSDL
(*) bỏ số 0 trong chuỗi MBN ở trang CSDL

Chuyện này thì bạn xem lại macro bài trên & có thể hoàn toàn xài nó.
 
............................................
 
Lần chỉnh sửa cuối:
Mọi người cho em hỏi, Em có 1 file danh sách khách hàng phát sinh các ngày liên tục dẫn tới nó trùng nhau. Nhưng em chỉ cần danh sách các khách hàng phát sinh thì em cần dùng hàm gì.Thanks
 
Em có một bảng mẫu trong 1 bảng giống như bàn cờ vua . có những ký tự khác nhau.các bác có thể giúp em tìm ra được các ký tự đó ra 1 cột được không và số lần trùng của 1 ký tự ạ. Em xin cảm ơn.
 

File đính kèm

  • MAU.xls
    17 KB · Đọc: 9
Em có một bảng mẫu trong 1 bảng giống như bàn cờ vua . có những ký tự khác nhau.các bác có thể giúp em tìm ra được các ký tự đó ra 1 cột được không và số lần trùng của 1 ký tự ạ. Em xin cảm ơn.
Thử:
Mã:
E7=IFERROR(INDIRECT(TEXT(MOD(AGGREGATE(15,6,(ROW($A$7:$A$13)*10^3+COLUMN($A:$C)+COUNTIF($A$7:$C$13,"<="&$A$7:$C$13)*10^8)/(COUNTIF($E$6:$E6,$A$7:$C$13)=0),1),10^8),"R000C000"),),"")
F7=COUNTIF($A$7:$C$13,E7)
Enter, fill xuống.

Thân
 

File đính kèm

  • MAU.xls
    26.5 KB · Đọc: 18
Thử:
Mã:
E7=IFERROR(INDIRECT(TEXT(MOD(AGGREGATE(15,6,(ROW($A$7:$A$13)*10^3+COLUMN($A:$C)+COUNTIF($A$7:$C$13,"<="&$A$7:$C$13)*10^8)/(COUNTIF($E$6:$E6,$A$7:$C$13)=0),1),10^8),"R000C000"),),"")
F7=COUNTIF($A$7:$C$13,E7)
Enter, fill xuống.

Thân[/QUOTEtại sao em vẫn chưa nhìn thấy kết quả thế ạ. Ví dụ : em muốn lọc được ra là trong mảng từ A7:C13 sẽ lọc ra được ký tự A và số lần lặp là 4 lần.Nhờ bác nói rõ hơn được ko??
 
tại sao em vẫn chưa nhìn thấy kết quả thế ạ. Ví dụ : em muốn lọc được ra là trong mảng từ A7:C13 sẽ lọc ra được ký tự A và số lần lặp là 4 lần.Nhờ bác nói rõ hơn được ko??
Vậy thử:
Mã:
E7=INDIRECT(TEXT(MOD(MIN(IF((COUNTIF($E$6:$E6,$A$7:$C$13)=0),(ROW($A$7:$A$13)*10^3+COLUMN($A:$C)+COUNTIF($A$7:$C$13,"<="&$A$7:$C$13)*10^8))),10^8),"R000C000"),)
kết thúc bằng Ctrl+Shift+Enter, rồi fill xuống.

Thân
 

File đính kèm

  • MAU2.xls
    26.5 KB · Đọc: 12
Vậy thử:
Mã:
E7=INDIRECT(TEXT(MOD(MIN(IF((COUNTIF($E$6:$E6,$A$7:$C$13)=0),(ROW($A$7:$A$13)*10^3+COLUMN($A:$C)+COUNTIF($A$7:$C$13,"<="&$A$7:$C$13)*10^8))),10^8),"R000C000"),)
kết thúc bằng Ctrl+Shift+Enter, rồi fill xuống.

Thân
Nhìn cái công thức này cũng chẳng khác gì ma trận, thật là hại não.
 
Nhìn cái công thức này cũng chẳng khác gì ma trận, thật là hại não.
Bản thân "Mảng" theo bài trên là một ma trận, nó có 2 chiều dọc và ngang.
Bài toán xử lý Mảng có chung một kết cấu: Lập điều kiện trên từng phần tử của "ma trận", cái nào thỏa thì lấy ra, cái nào không thỏa thì lờ đi.
Như bài trên:
  • Điều kiện lọc là: COUNTIF($E$6:$E6,$A$7:$C$13)=0
  • Định vị trí cho từng phần tử: (ROW($A$7:$A$13)*10^3+COLUMN($A:$C)+COUNTIF($A$7:$C$13,"<="&$A$7:$C$13)*10^8)
  • Dùng các hàm MIN() để trích lục phần tử thỏa điều kiện, và nhỏ nhất.
  • Dùng MOD() để lấy số vị trí Dòng và Cột của phần tử thỏa đó.
  • Dùng INDIRECT() để đến vị trí đó lấy kết quả.
Làm việc với nó lâu ngày sẽ nhìn ra rất dễ dàng. :p

Thân
 
Em có một bảng mẫu trong 1 bảng giống như bàn cờ vua . có những ký tự khác nhau.các bác có thể giúp em tìm ra được các ký tự đó ra 1 cột được không và số lần trùng của 1 ký tự ạ. Em xin cảm ơn.
Thêm 1 cách:
PHP:
Sub abc()
    Dim a, b, i&, j&, k&
    With Sheet1
        a = .Range("A7:C" & .Cells(Rows.Count, 3).End(3).Row).Value
    End With
    ReDim b(1 To UBound(a, 1) * 3)
    Application.ScreenUpdating = False
    For j = LBound(a, 2) To UBound(a, 2)
        For i = LBound(a, 1) To UBound(a, 1)
            If Not IsEmpty(a(i, j)) Then
                k = k + 1
                b(k) = a(i, j)
            End If
        Next i
    Next j
    With Sheet1
        .Range("F6:G6") = Array("Ma", "SL")
        .Range("F7").Resize(k).Value = Application.Transpose(b)
        .Range("G6:G" & Range("F" & Rows.Count).End(3).Row).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = 1
        .Range("J6").Consolidate Sources:=Array("Sheet1!R6C6:R1000C7"), Function:=xlSum, LeftColumn:=True
        .Columns("F:G").ClearContents
    End With
    Application.ScreenUpdating = True
End Sub
 

File đính kèm

  • DEM MA.xls
    38.5 KB · Đọc: 26
Lần chỉnh sửa cuối:
Bản thân "Mảng" theo bài trên là một ma trận, nó có 2 chiều dọc và ngang.
Bài toán xử lý Mảng có chung một kết cấu: Lập điều kiện trên từng phần tử của "ma trận", cái nào thỏa thì lấy ra, cái nào không thỏa thì lờ đi.
Như bài trên:
  • Điều kiện lọc là: COUNTIF($E$6:$E6,$A$7:$C$13)=0
  • Định vị trí cho từng phần tử: (ROW($A$7:$A$13)*10^3+COLUMN($A:$C)+COUNTIF($A$7:$C$13,"<="&$A$7:$C$13)*10^8)
  • Dùng các hàm MIN() để trích lục phần tử thỏa điều kiện, và nhỏ nhất.
  • Dùng MOD() để lấy số vị trí Dòng và Cột của phần tử thỏa đó.
  • Dùng INDIRECT() để đến vị trí đó lấy kết quả.
Làm việc với nó lâu ngày sẽ nhìn ra rất dễ dàng. :p

Thân
Thật sự là tui cứ nhìn cái công thức nào dài dài là hãi lắm luôn. nhất là bản thân nó đã là 1 hàm, xong nó lại cộng thêm mấy hàm khác nữa. Chắc xưa bạn học toán giỏi lắm.
 
Thật sự là tui cứ nhìn cái công thức nào dài dài là hãi lắm luôn. nhất là bản thân nó đã là 1 hàm, xong nó lại cộng thêm mấy hàm khác nữa. Chắc xưa bạn học toán giỏi lắm.
Hồi phổ thông do học sớm 1 năm, nên ngu hơn bạn đồng môn, toán văn luôn 5-6, chỉ vừa đủ lên lớp là mừng rồi.
Lên được lớp 6, cúng ông Địa nãi chuối. Qua ải lớp 10, ăn chay 1 tháng.
Gặp 1 bạn người bắc hỏi "sao ăn chay", nói "lở vái rồi" (đọc theo giọng Sài gòn), bạn bảo "lở ...ái thì xức thuốc, chứ mắc gì ăn chay!?

Không biết sao, càng già càng đâm nghiện mấy cái công thức mảng, anh em thương cũng xúi nghiên cứu VBA, nhưng thú thiệt mình chỉ thích chỉ có một mình "Mảng" mà thôi.

Thân
 
Hồi phổ thông do học sớm 1 năm, nên ngu hơn bạn đồng môn, toán văn luôn 5-6, chỉ vừa đủ lên lớp là mừng rồi.
Lên được lớp 6, cúng ông Địa nãi chuối. Qua ải lớp 10, ăn chay 1 tháng.
Gặp 1 bạn người bắc hỏi "sao ăn chay", nói "lở vái rồi" (đọc theo giọng Sài gòn), bạn bảo "lở ...ái thì xức thuốc, chứ mắc gì ăn chay!?

Không biết sao, càng già càng đâm nghiện mấy cái công thức mảng, anh em thương cũng xúi nghiên cứu VBA, nhưng thú thiệt mình chỉ thích chỉ có một mình "Mảng" mà thôi.

Thân
vậy bạn có ở SG không hay ở ngoài bắc thế? tui cũng thích công thức mảng, nhưng mà chỉ biết làm có hàm đơn thôi.
 
Hồi phổ thông do học sớm 1 năm, nên ngu hơn bạn đồng môn, toán văn luôn 5-6, chỉ vừa đủ lên lớp là mừng rồi.
Lên được lớp 6, cúng ông Địa nãi chuối. Qua ải lớp 10, ăn chay 1 tháng.
Gặp 1 bạn người bắc hỏi "sao ăn chay", nói "lở vái rồi" (đọc theo giọng Sài gòn), bạn bảo "lở ...ái thì xức thuốc, chứ mắc gì ăn chay!?


Thân
cuoi_chu_coi.png
 
vậy bạn có ở SG không hay ở ngoài bắc thế? tui cũng thích công thức mảng, nhưng mà chỉ biết làm có hàm đơn thôi.
Về công thức "mảng" đòi hỏi một niềm đam mê cao độ, sự kiên nhẫn tìm tòi để hiểu nó, thì mới thuần phục nó được.
Nó không khó, nhưng đòi hỏi bạn phải mường tượng ra hình hài của nó khi bạn xử lý, cũng giống như khi bạn học hình học không gian vậy.
Bạn cứ góp nhặt các bài viết của các tên tuổi sau sẽ lần lần hiểu được cái đẹp của Mảng:
  1. @excel_lv1.5, @eke_rula, @leoheocon : 3 nick của một người
  2. @ndu96081631 ,@anhtuan1066
  3. @huuthang_bd, @phuocam
  4. @HieuCD
  5. @Phan Thế Hiệp , @quocgiacan
Tôi thì đang ca bài "Em đi trên cỏ non" nên cũng vòng vòng thành phố.

Chúc bạn học tập vui với anh em GPE
Thân
 
Web KT
Back
Top Bottom