[hỏi] Lấy chuỗi ký tự trùng từ 1 cột data cho trước

Liên hệ QC

nhtphong

Thành viên mới
Tham gia
7/9/10
Bài viết
17
Được thích
0
Dear ACE,
Em đang có vấn đề khác rắc rối như thế này.
EM ví dụ:
Cột A em có danh sách địa chỉ
Cột E em có danh sách tên Quận.
Em muốn tạo cột B dữ liệu là: nếu trong ô củ cột A có quận nào trùng với danh sách Quận bên cột E cho trước thì có cho ra giá trị là tên Quận đó.

Ví dụ:
A1: 123 đường B, quận TB, TP D ===>> thì B2 sẽ là TB
A1: 12Bis đường ABC, quận 2, TP D =====> thì B2 sẽ là 2

p/s:Dùng fillter từng quận thì cũng dc nhưng hy vọng có hàm nào mình kéo 1 cái nó ra hết thì hay hơn.

Rất mong sự giúp đỡ của anh chị em
 
Dear ACE,
Em đang có vấn đề khác rắc rối như thế này.
EM ví dụ:
Cột A em có danh sách địa chỉ
Cột E em có danh sách tên Quận.
Em muốn tạo cột B dữ liệu là: nếu trong ô củ cột A có quận nào trùng với danh sách Quận bên cột E cho trước thì có cho ra giá trị là tên Quận đó.

Ví dụ:
A1: 123 đường B, quận TB, TP D ===>> thì B2 sẽ là TB
A1: 12Bis đường ABC, quận 2, TP D =====> thì B2 sẽ là 2

p/s:Dùng fillter từng quận thì cũng dc nhưng hy vọng có hàm nào mình kéo 1 cái nó ra hết thì hay hơn.

Rất mong sự giúp đỡ của anh chị em
PHP:
Sub Tim()
Dim Sarr, darr, i As Long, k As Long, Rng As Range, cll As Range
Sarr = Range([A2], [A65000].End(xlUp)).Resize(, 1).Value2
Set Rng = Range([E2], [E2].End(xlDown))
ReDim darr(1 To UBound(Sarr, 1), 1 To 1)
For i = 1 To UBound(Sarr, 1)
    For Each cll In Rng
        If InStr(Sarr(i, 1), cll) Then
            k = k + 1
            darr(k, 1) = cll
        End If
    Next
Next
[B2:B65000].ClearContents
If k Then
[B2].Resize(k, 1).Value = darr
End If
End Sub
Bạn thử cái này xem sao nhé
 
PHP:
Sub Tim()
Dim Sarr, darr, i As Long, k As Long, Rng As Range, cll As Range
Sarr = Range([A2], [A65000].End(xlUp)).Resize(, 1).Value2
Set Rng = Range([E2], [E2].End(xlDown))
ReDim darr(1 To UBound(Sarr, 1), 1 To 1)
For i = 1 To UBound(Sarr, 1)
    For Each cll In Rng
        If InStr(Sarr(i, 1), cll) Then
            k = k + 1
            darr(k, 1) = cll
        End If
    Next
Next
[B2:B65000].ClearContents
If k Then
[B2].Resize(k, 1).Value = darr
End If
End Sub
Bạn thử cái này xem sao nhé
Cám ơn anh nhiều lắm
Anh giúp thì giúp cho trót, chỉ em add VBS vô làm sao luôn dc ko ah ^^
 
Nó chạy bị sai rồi >.<
Lúc đó làm gì có file đính kèm nên mình làm theo file giả lập của mình thôi, nếu chỉ lấy tên quận thôi thì bài này nhiều cách làm lắm. Bnaj làm theo bài #8 đi, mình test thấy ok rồi
Lưu ý, quận và Quận nên thống nhất lần tiếp theo nhé, một là hoa hai la ko hoa, nên thống nhất sau có cần tách thì cũng đơn giản hơn nhiều
 
Cám ơn ban nhiều lắm, nếu như thống nhất thì mình làm dc rồi, đằng này ta lúc có quận, lúc ko có, lúc viết tắt
Cám ơn các anh nhiều lắm
 
PHP:
Sub Tim()
Dim Sarr, darr, i As Long, k As Long, Rng As Range, cll As Range
Sarr = Range([A2], [A65000].End(xlUp)).Resize(, 1).Value2
Set Rng = Range([E2], [E2].End(xlDown))
ReDim darr(1 To UBound(Sarr, 1), 1 To 1)
For i = 1 To UBound(Sarr, 1)
    For Each cll In Rng
        If InStr(Sarr(i, 1), cll) Then
            k = k + 1
            darr(k, 1) = cll
        End If
    Next
Next
[B2:B65000].ClearContents
If k Then
[B2].Resize(k, 1).Value = darr
End If
End Sub
Bạn thử cái này xem sao nhé
Bài này nên dùng 1 vòng lập + Find Method sẽ nhanh hơn
 
Web KT

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

Back
Top Bottom