Nhờ vozer giải giúp bài excel (googlesheet)

Update lại, thím chạy cái này thử xem còn lỗi đó nữa không

Code:
Sub sayHello()
    Dim i As Integer
    Dim j As Integer
    Dim isContainsKey As Boolean
    Dim index As Integer
    Dim stringKeydai As String
    Dim stringKeyNgan As String
    Dim stringBefore, stringAfter As String
 
    For i = 2 To 221  'Vi tri bat dau va ket thuc list key dai
        stringKeydai = Cells(i, 1).Value
        For j = 2 To 9917 'Vi tri bat dau va ket thuc list key ngan
      
            stringKeyNgan = Cells(j, 2).Value
      
            index = InStr(stringKeydai, stringKeyNgan)
      
            If index = 0 Then 'Khong chua key
          
            Else
                'Kiem tra vi tri truoc, va sau phai la khoang trang hay khong
                If index > 1 Then
                    stringBefore = Mid(stringKeydai, index - 1, 1)
                End If
              
                If index + Len(stringKeyNgan) <= Len(stringKeydai) Then
                    stringAfter = Mid(stringKeydai, index + Len(stringKeyNgan), 1)
                End If
              
                If stringBefore = " " And stringAfter = " " Then
                    isContainsKey = True
                    stringKeydai = Application.Trim(Replace(stringKeydai, stringKeyNgan, ""))
                End If
              
              
            End If
      
        Next
  
        If isContainsKey = False Then
            Cells(i, 3) = stringKeydai
        Else
            Cells(i, 4) = stringKeydai
        End If
        isContainsKey = False
    Next
End Sub
ôi 2 bác ơi hình như vẫn chưa đúng ạ. :LOL:)) Khổ cái thân em. Nó lệch 4 key dài ạ, ví dụ như cái này.
Screen Shot 2021-07-13 at 22.45.29.png
 
Có gì đâu, cười lại vào mặt chúng nó. B chạy script vẫn ổn. Nó tính đc cả triệu dòng mà
nhưng bác thấy bác có thể chỉ em cách làm được không ạ? :( Huhu em nhờ chỉ cách để mai em tự xử lý được với ít nhất là mấy chục nghìn key 1 lượt ý ạ.
 
đến dòng thứ 10k mà máy em nó đã chạy mãi không ra rồi. :LOL:) Không hiểu đến lúc nhiều hơn thì nó chạy kiểu gì.
dữ liệu nhiều quá thì k trông đợi vào excel đc đâu bạn tôi ơi...
bạn mà có vài chục k dữ liệu thì nên dùng cái khác như SQL hay gì gì đó. mình tập tành VAB thấy code kia ổn rùi, cơ mà làm vài chục k data với thay đổi dữ liệu đầu vào liên tục thì k ổn đâu :whistle: :whistle:
 
dữ liệu nhiều quá thì k trông đợi vào excel đc đâu bạn tôi ơi...
bạn mà có vài chục k dữ liệu thì nên dùng cái khác như SQL hay gì gì đó. mình tập tành VAB thấy code kia ổn rùi, cơ mà làm vài chục k data với thay đổi dữ liệu đầu vào liên tục thì k ổn đâu :whistle: :whistle:
Nửa năm trước tính đi học 1 khoá SQL, tới giờ vẫn chưa kịp học ạ. :(
 
nhưng bác thấy bác có thể chỉ em cách làm được không ạ? :( Huhu em nhờ chỉ cách để mai em tự xử lý được với ít nhất là mấy chục nghìn key 1 lượt ý ạ.
mai mà chưa được thì b hộp mình chỉ cho :(
 
Chưa đúng như nào vậy thím? Em vẫn chưa hiểu cái dòng vàng
bác thử search 2 key ngắn:
1. star trek
2. Just do it

Trong 2 key dài sẽ có chứa các cụm này:
1. r2d2 i loved him in star trek
2. just do it later

2 key dài này nên được excluded from list ạ.
 
Nhờ các cao nhân chỉ giúp em cách xử lý chỗ này ạ (do em không học VBA, code excel, code gì đó nên hầu như không thể xử lý chỗ dữ liệu này chỉ bằng công thức-mong các bác đừng bảo em ngu ạ)
Các bác hướng dẫn em luôn cách chèn đoạn code với ạ. :LOL:)
------

Đề bài:

Input: Link keyword

Em có 1 list các key dài (từ 3 từ -10 từ) (khoảng 100k key)
Em Có 1 list các key ngắn (1-2 từ) (khoảng 20k key)
Trong các key dài có thể có chứa 1 hoặc nhiều key ngắn, hoặc không chứa key ngắn nào (vị trí của key ngắn trong key dài là không cố định - có thể ở đầu, giữa cuối).

Output:
- Output1: em cần có 1 list keyword dài, mà các key này không có key nào chứa key ngắn trong list key ngắn. (Cần công thức để có thể auto đưa ra list vì lượng dữ liệu là tương đối nhiều và update liên tục).
- Output2: Em cần có 1 list keyword dài, trong đó key ngắn chứa trong keyword dài bất kỳ sẽ được xoá đi.
-------

Ví dụ:

input:
1 list của em có 02 key dài là "vozer vang vau can tri dut", và "vozer thong minh nhat the gioi"; List key ngắn của em là "vang vau", "tri","mui mit thom", "em chua 18".

output:
  • output 1: Kết quả trả về sẽ là 01 key dài "vozer thong minh nhat the gioi", do key dài đầu tiên đã có 2 từ xuất hiện trong list key ngắn.
  • Output2: Kết quả trả về sẽ là 02 key dài: "vozer can dut" và "vozer thong minh nhat the gioi".
-------
Em xin chân thành cảm ơn các bác và sẽ hậu tạ bằng một nụ thơm nồng cháy ạ. :sweet_kiss::sweet_kiss:

Gửi thím xem coi đúng ko.

Output 1: Filter cột F = "No"
Xem công thức ở đây: If cell contains text from list (get-digital-help.com)

Output 2: Cột G
Xem user defined function ở đây: How To Find And Remove Multiple Text Strings Within A Text String | How To Excel
Mình Bê Đê nên thơm má không có cảm giác gì đâu. :sweet_kiss:
 

Attachments

  • Lọc keyword 1 (filtered).xlsm.zip
    604.2 KB · Views: 25
Gửi thím xem coi đúng ko.

Output 1: Filter cột F = "No"
Xem công thức ở đây: If cell contains text from list (get-digital-help.com)

Output 2: Cột G
Xem user defined function ở đây: How To Find And Remove Multiple Text Strings Within A Text String | How To Excel
Mình Bê Đê nên thơm má không có cảm giác gì đâu. :sweet_kiss:
DẠ chưa đúng đâu bác ơi. BÁc dùng công thức ở trang kia nó bị sai á, chỉ đúng khi short key là từ đơn thôi. Short key của em có cả key dài, chứa 7 8 từ ấy.
 
Mình không có thời gian xem kỹ cũng như mở GGsheets. Nhưng mấy trường hợp dống vầy, m hay dùng len, subtititude, kết hợp với IF.

Chúc thím ra kết quả
 
Back
Top