[Hỏi]Cách lọc những số có 6 số cuối trùng nhau, khác 3 số đầu (1 người xem)

Liên hệ QC

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

Mình hướng bạn theo í dùng macro nha:

Cái này là liệt kê số nào có tổng là 9

(B1) Từ danh sách (DS) danh bạ của bạn (cột 'A' chẳng hạn) , bạn lập ra danh sách 6 số cuối (Ấn vô cột 'C');

B2: Từ DS cột 'C' lập DS duy nhất & ấn vô cột 'E'

B3: Thực hiện việc tìm kiếm các số ĐT trong cột 'A' có 6 số đuôi trùng với DS của 'E'
 
(B1) Từ danh sách (DS) danh bạ của bạn (cột 'A' chẳng hạn) , bạn lập ra danh sách 6 số cuối (Ấn vô cột 'C');

B2: Từ DS cột 'C' lập DS duy nhất & ấn vô cột 'E'

B3: Thực hiện việc tìm kiếm các số ĐT trong cột 'A' có 6 số đuôi trùng với DS của 'E'

Bạn ơi chỉ rõ mình với ko hiểu lắm :(
 
Không khoái lắm nhưng thất nghiệp làm "thí thí" bằng VBA, có xài được thì xài:
PHP:
Public Sub GPE()
Dim Rng(), Arr(1 To 65000, 1 To 1), Arr2(1 To 65000, 1 To 1), Dic As Object, I As Long, K As Long, Tem As Long, N As Long
Set Dic = CreateObject("Scripting.Dictionary")
With Sheet1
    Rng = [A2:A65536].Value
For I = 1 To 65000
    If Rng(I, 1) <> "" Then
        Tem = Right(Rng(I, 1), 6) * 1
        If Not Dic.Exists(Tem) Then
            K = K + 1: Arr(K, 1) = Rng(I, 1)
            Dic.Add Tem, K
        Else
            Arr(Dic.Item(Tem), 1) = Arr(Dic.Item(Tem), 1) & " - " & Rng(I, 1)
        End If
    End If
    Next I
    For I = 1 To UBound(Arr, 1)
        If Len(Arr(I, 1)) > 9 Then
            N = N + 1
            Arr2(N, 1) = Arr(I, 1)
        End If
    Next I
        [D2:D65000].ClearContents
        If N Then [D2].Resize(N).Value = Arr2
End With
Set Dic = Nothing
End Sub
Cell A44429 phải xoá chữ V, cột số sao chèn chữ vào làm gì cho rối?
 
Không khoái lắm nhưng thất nghiệp làm "thí thí" bằng VBA, có xài được thì xài:
PHP:
Public Sub GPE()
Dim Rng(), Arr(1 To 65000, 1 To 1), Arr2(1 To 65000, 1 To 1), Dic As Object, I As Long, K As Long, Tem As Long, N As Long
Set Dic = CreateObject("Scripting.Dictionary")
With Sheet1
    Rng = [A2:A65536].Value
For I = 1 To 65000
    If Rng(I, 1) <> "" Then
        Tem = Right(Rng(I, 1), 6) * 1
        If Not Dic.Exists(Tem) Then
            K = K + 1: Arr(K, 1) = Rng(I, 1)
            Dic.Add Tem, K
        Else
            Arr(Dic.Item(Tem), 1) = Arr(Dic.Item(Tem), 1) & " - " & Rng(I, 1)
        End If
    End If
    Next I
    For I = 1 To UBound(Arr, 1)
        If Len(Arr(I, 1)) > 9 Then
            N = N + 1
            Arr2(N, 1) = Arr(I, 1)
        End If
    Next I
        [D2:D65000].ClearContents
        If N Then [D2].Resize(N).Value = Arr2
End With
Set Dic = Nothing
End Sub
Cell A44429 phải xoá chữ V, cột số sao chèn chữ vào làm gì cho rối?

Cái này chép vào đâu bác :( E gà mờ bác chỉ giúp với
 
Hì được rồi bác Ba Tê ơi, thanks bác nhiều lắm.
 
Thầy hỏi vậy em chịu chết luôn........+-+-+-+!$@!!

Có gì mà chịu chết sớm thế,

Nếu làm như vậy, sau khi "sắp xếp" thì đúng là những số giống nhau (6 số cuối) thì gần nhau - sau nó lại đan xen vào những số khác (không có cặp giống nhau 6 chữ số cuối) vì sắp xếp nên các số theo 1 thứ tự nào đó, kiểu như
A
B
B
C
D
E
E
E
F
G
H
H
I
J
..........

Nên giải pháp như thế không có khả thi,
-------------------
Muốn khả thi thì người dùng nên lập thêm cột phụ 2 nữa với công thức
tại C2
=IF(COUNTIF(B$2:B$999,B2)>1,A2,"")
(vùng cột phụ 1 giả định là B2:B999)
copy cho các ô C còn lại

==> rui sắp xếp theo cột C (cột phụ 2) thì sẽ được kết quả như ý - các số giống nhau sẽ gần nhau , số không có cặp giống sẽ không hiển thị
vấn đề được giải quyết mà không cần VBA nặng nề gì cả
 
Web KT

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

Back
Top Bottom