Dò tìm chuỗi từ trong vùng data

  • Thread starter Thread starter trihmvn
  • Ngày gửi Ngày gửi
Liên hệ QC

trihmvn

Thành viên mới
Tham gia
27/8/21
Bài viết
4
Được thích
0
Mình có bảng tính cần dò tìm 1 chuỗi ký tự trong vùng data để trả về kết quả như cột KET QUA, các bạn giúp mình với nhé...
ALT_ACC_NO
SO_HD
KET QUA: Tìm cụm từ tại cột B trong data ở cột A (từ A2:A5) và trả kết quả là cụm từ cần tìm
SDG AS 0455/2021/100-TD-CV c
0434/2021/100-TD-CV
0455/2021/100-TD-CV
DG AS 0434/2021/100-TD-CV csB
0455/2021/100-TD-CV
0434/2021/100-TD-CV
SDG AS 1034/2021/100-TD-CV cs1
3134/2021/100-TD-CV
1034/2021/100-TD-CV
SDG3 AS 3134/2021/100-TD-CV cs12
1034/2021/100-TD-CV
3134/2021/100-TD-CV
 

File đính kèm

Mình có bảng tính cần dò tìm 1 chuỗi ký tự trong vùng data để trả về kết quả như cột KET QUA, các bạn giúp mình với nhé...
ALT_ACC_NO
SO_HD
KET QUA: Tìm cụm từ tại cột B trong data ở cột A (từ A2:A5) và trả kết quả là cụm từ cần tìm
SDG AS 0455/2021/100-TD-CV c
0434/2021/100-TD-CV
0455/2021/100-TD-CV
DG AS 0434/2021/100-TD-CV csB
0455/2021/100-TD-CV
0434/2021/100-TD-CV
SDG AS 1034/2021/100-TD-CV cs1
3134/2021/100-TD-CV
1034/2021/100-TD-CV
SDG3 AS 3134/2021/100-TD-CV cs12
1034/2021/100-TD-CV
3134/2021/100-TD-CV
Bạn xem thử....
 

File đính kèm

Mình có bảng tính cần dò tìm 1 chuỗi ký tự trong vùng data để trả về kết quả như cột KET QUA, các bạn giúp mình với nhé...
ALT_ACC_NO
SO_HD
KET QUA: Tìm cụm từ tại cột B trong data ở cột A (từ A2:A5) và trả kết quả là cụm từ cần tìm
SDG AS 0455/2021/100-TD-CV c
0434/2021/100-TD-CV
0455/2021/100-TD-CV
DG AS 0434/2021/100-TD-CV csB
0455/2021/100-TD-CV
0434/2021/100-TD-CV
SDG AS 1034/2021/100-TD-CV cs1
3134/2021/100-TD-CV
1034/2021/100-TD-CV
SDG3 AS 3134/2021/100-TD-CV cs12
1034/2021/100-TD-CV
3134/2021/100-TD-CV
Bạn có thể tham khảo cách làm thủ công như sau (nếu dữ liệu nhiều thì cũng chỉ tốn vài phút)::
1/ Insert 1 sheet mới rồi Copy cột A Sheet1 sang cột A Sheet mới.
2/ Chọn cột A Sheet mới, Nhấn Ctrl+H để mở hộp thoại Find and Replace, trong khung Find what bạn gõ CV, trong khung Replace with gõ CV_ , gõ chữ CV xong nhấn phím Shift rồi gõ dấu trừ ( - ), xong nhấn OK.
3/ Tiếp theo trong khung Find what bạn gõ AS và nhấn phím dài 1 lần, Click vào khung Replace with bạn nhấn phím Shift rồi gõ dấu trừ ( - ), xong nhấn OK.
4/ Để tách cột bạn chọn cột A vào Data > Text to Columns, chọn Delimited > Next, Click vào khung Other nhấn phím Shift rồi gõ dấu trừ ( - ), xong nhấn Finish (là hoàn tất việc tách). Bạn chỉ việc copy cái cần sang Sheet1
 

File đính kèm

  • A_Tim.JPG
    A_Tim.JPG
    24.5 KB · Đọc: 2
  • A_Tach.JPG
    A_Tach.JPG
    42 KB · Đọc: 2
Mình có bảng tính cần dò tìm 1 chuỗi ký tự trong vùng data để trả về kết quả như cột KET QUA, các bạn giúp mình với nhé...
ALT_ACC_NO
SO_HD
KET QUA: Tìm cụm từ tại cột B trong data ở cột A (từ A2:A5) và trả kết quả là cụm từ cần tìm
SDG AS 0455/2021/100-TD-CV c
0434/2021/100-TD-CV
0455/2021/100-TD-CV
DG AS 0434/2021/100-TD-CV csB
0455/2021/100-TD-CV
0434/2021/100-TD-CV
SDG AS 1034/2021/100-TD-CV cs1
3134/2021/100-TD-CV
1034/2021/100-TD-CV
SDG3 AS 3134/2021/100-TD-CV cs12
1034/2021/100-TD-CV
3134/2021/100-TD-CV
Của bạn đây. Kết quả trả về ở Cột E (từ E2)
Mã:
Option Explicit
Sub TACH()
Dim dic As Object
  Set dic = CreateObject("Scripting.Dictionary")
  Dim i&, j&, Lr&, t&
  Dim Arr(), S, tmp, Temp
  Lr = Sheet1.Cells(Rows.Count, 1).End(3).Row
  Arr = Sheet1.Range("A2:B" & Lr).Value
  ReDim KQ(1 To UBound(Arr), 1 To 1)
For i = 1 To UBound(Arr)
  tmp = Trim(Arr(i, 2))
    If Not dic.exists(tmp) Then dic.Item(tmp) = Arr(i, 2)
Next i
For i = 1 To UBound(Arr)
    tmp = Trim(Arr(i, 1))
    Temp = Split(tmp, " ")
        For j = 0 To UBound(Temp)
        If dic.exists(Temp(j)) Then KQ(i, 1) = dic.Item(Temp(j))
        Next j
Next i
Sheet1.[E2].Resize(i, 1) = KQ
End Sub
 

File đính kèm

Của bạn đây. Kết quả trả về ở Cột E (từ E2)
Mã:
Option Explicit
Sub TACH()
Dim dic As Object
  Set dic = CreateObject("Scripting.Dictionary")
  Dim i&, j&, Lr&, t&
  Dim Arr(), S, tmp, Temp
  Lr = Sheet1.Cells(Rows.Count, 1).End(3).Row
  Arr = Sheet1.Range("A2:B" & Lr).Value
  ReDim KQ(1 To UBound(Arr), 1 To 1)
For i = 1 To UBound(Arr)
  tmp = Trim(Arr(i, 2))
    If Not dic.exists(tmp) Then dic.Item(tmp) = Arr(i, 2)
Next i
For i = 1 To UBound(Arr)
    tmp = Trim(Arr(i, 1))
    Temp = Split(tmp, " ")
        For j = 0 To UBound(Temp)
        If dic.exists(Temp(j)) Then KQ(i, 1) = dic.Item(Temp(j))
        Next j
Next i
Sheet1.[E2].Resize(i, 1) = KQ
End Sub
cảm ơn bạn nhiều nhé
 
Mình có bảng tính cần dò tìm 1 chuỗi ký tự trong vùng data để trả về kết quả như cột KET QUA, các bạn giúp mình với nhé...
ALT_ACC_NO
SO_HD
KET QUA: Tìm cụm từ tại cột B trong data ở cột A (từ A2:A5) và trả kết quả là cụm từ cần tìm
SDG AS 0455/2021/100-TD-CV c
0434/2021/100-TD-CV
0455/2021/100-TD-CV
DG AS 0434/2021/100-TD-CV csB
0455/2021/100-TD-CV
0434/2021/100-TD-CV
SDG AS 1034/2021/100-TD-CV cs1
3134/2021/100-TD-CV
1034/2021/100-TD-CV
SDG3 AS 3134/2021/100-TD-CV cs12
1034/2021/100-TD-CV
3134/2021/100-TD-CV
Không cần cột B vẫn tính được cột C
 
Mình có bảng tính cần dò tìm 1 chuỗi ký tự trong vùng data để trả về kết quả như cột KET QUA, các bạn giúp mình với nhé...
ALT_ACC_NO
SO_HD
KET QUA: Tìm cụm từ tại cột B trong data ở cột A (từ A2:A5) và trả kết quả là cụm từ cần tìm
SDG AS 0455/2021/100-TD-CV c
0434/2021/100-TD-CV
0455/2021/100-TD-CV
DG AS 0434/2021/100-TD-CV csB
0455/2021/100-TD-CV
0434/2021/100-TD-CV
SDG AS 1034/2021/100-TD-CV cs1
3134/2021/100-TD-CV
1034/2021/100-TD-CV
SDG3 AS 3134/2021/100-TD-CV cs12
1034/2021/100-TD-CV
3134/2021/100-TD-CV
Muốn code thì tham khảo File (giới hạn dữ liệu đến 1000 dòng thôi). Bạn chỉ việc nhấn nút và xem kết quả.
 

File đính kèm

Muốn code thì tham khảo File (giới hạn dữ liệu đến 1000 dòng thôi). Bạn chỉ việc nhấn nút và xem kết quả.
nếu data hơn 1000 dòng có xử lý được k bạn?
Bài đã được tự động gộp:

Của bạn đây. Kết quả trả về ở Cột E (từ E2)
Mã:
Option Explicit
Sub TACH()
Dim dic As Object
  Set dic = CreateObject("Scripting.Dictionary")
  Dim i&, j&, Lr&, t&
  Dim Arr(), S, tmp, Temp
  Lr = Sheet1.Cells(Rows.Count, 1).End(3).Row
  Arr = Sheet1.Range("A2:B" & Lr).Value
  ReDim KQ(1 To UBound(Arr), 1 To 1)
For i = 1 To UBound(Arr)
  tmp = Trim(Arr(i, 2))
    If Not dic.exists(tmp) Then dic.Item(tmp) = Arr(i, 2)
Next i
For i = 1 To UBound(Arr)
    tmp = Trim(Arr(i, 1))
    Temp = Split(tmp, " ")
        For j = 0 To UBound(Temp)
        If dic.exists(Temp(j)) Then KQ(i, 1) = dic.Item(Temp(j))
        Next j
Next i
Sheet1.[E2].Resize(i, 1) = KQ
End Sub
bạn có thể cho mình email/zalo để kết bạn được không?
 
Lần chỉnh sửa cuối:
nếu data hơn 1000 dòng có xử lý được k bạn?
Thì bạn chọn A2: A5 rồi Fill xuống đến dòng 9000 rồi vô trong code bạn thên 1 số 0 nữa thành 10.000 dòng rồi chạy thử code thì biết được hay không liền chứ gì.
Nếu thấy ngon thì tăng thêm 20.000 dòng rồi thử nhé.
Thay chỗ này.

Mã:
    With Range("C2: C10000")
        .Value = Range("A2: A10000").Value
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom