Tìm và loại bỏ từ trong list có trước (1 người xem)

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

theblues

Thành viên mới
Tham gia
5/11/12
Bài viết
13
Được thích
0
Dear các bác
Em có trường hợp mong được chỉ giáo
Hiện nay em có một cột bao gồm tên các loại sản phẩm trong đó tên bao gồm màu của các sản phẩm
Giả sử em có list các màu, vậy làm các nào để xóa tất cả các màu đó trong tên sản phẩm chỉ để lại tên thôi ạ.
Em đã thử dùng Sustitute nhưng ko làm các nào để cho list màu sắc vào hàm
VD: ĐTDĐ SamSung white note 3 -> ĐTDD SamSung note 3
ĐTDĐ Nokia lumia black -> ĐTDĐ lumia
Em cảm ơn các bác nhiều ^^
 
Bạn dùng lệnh thay thế có được không? mình nghĩ cái này không cần dùng đến hàm :) hihi. đấy là ý kiến của mình. :-=
 
Bạn dùng lệnh thay thế có được không? mình nghĩ cái này không cần dùng đến hàm :) hihi. đấy là ý kiến của mình. :-=
"lệnh thay thế" có phải là Ctrl+H (Find and Replace)???
Quan trọng ở bài #1 là có những chữ màu gì? Bạn đó đã liệt kê hết những chữ màu đâu. Có thể có vài cái, vài chục hay vài trăm chữ màu thì sao!
 
Dear các bác
Em có trường hợp mong được chỉ giáo
Hiện nay em có một cột bao gồm tên các loại sản phẩm trong đó tên bao gồm màu của các sản phẩm
Giả sử em có list các màu, vậy làm các nào để xóa tất cả các màu đó trong tên sản phẩm chỉ để lại tên thôi ạ.
Em đã thử dùng Sustitute nhưng ko làm các nào để cho list màu sắc vào hàm
VD: ĐTDĐ SamSung white note 3 -> ĐTDD SamSung note 3
ĐTDĐ Nokia lumia black -> ĐTDĐ lumia
Em cảm ơn các bác nhiều ^^

Cần thêm nhiều chi tiết nữa mới làm được.
Ví dụ:
1. Blackberry thì có xoá đi chừa lại berry hôn?
2. Red stylus thì xoá "Red" xong, có sửa "stylus" thành Stylus (viết hoa đầu câu) hay không?
3....

(*) tại sao ĐTDĐ Nokia lumia black -> ĐTDĐ lumia? Nokia là một màu à?
Muốn nhận được câu trả lời hoàn chỉnh thì hỏi xong phải đọc lại xem câu hỏi của mình đã hoàn chỉnh chưa.
 
Sub SubstituteChar()
Dim MyChar, MyColor, ColorList, MyLen, sContent, k

' Danh sach mau
ColorList = "white black blue red"

For Each Item In Selection

sContent = Trim(Item.Value)

MyLen = Len(sContent)
MyChar = ""
MyColor = ""

For k = 1 To MyLen

If Mid(sContent, k, 1) <> " " Then

MyColor = MyColor & Mid(sContent, k, 1)

If k = MyLen And InStr(ColorList, MyColor) = 0 Then
MyChar = MyChar & " " & MyColor
End If
Else

If InStr(ColorList, MyColor) = 0 Then

MyChar = MyChar & " " & MyColor

End If

MyColor = ""

End If

Next k

Item.Cells = Trim(MyChar)

Next Item
End Sub

Dear các bác
Em có trường hợp mong được chỉ giáo
Hiện nay em có một cột bao gồm tên các loại sản phẩm trong đó tên bao gồm màu của các sản phẩm
Giả sử em có list các màu, vậy làm các nào để xóa tất cả các màu đó trong tên sản phẩm chỉ để lại tên thôi ạ.
Em đã thử dùng Sustitute nhưng ko làm các nào để cho list màu sắc vào hàm
VD: ĐTDĐ SamSung white note 3 -> ĐTDD SamSung note 3
ĐTDĐ Nokia lumia black -> ĐTDĐ lumia
Em cảm ơn các bác nhiều ^^
 

File đính kèm

Em cảm ơn ý kiến của các bác. Cái này ko dùng lệnh được bác ạ. Phải dùng hàm vì. Nhưng em giả sử có một list 10 màu ấy. Có cách nào để tìm trong các cells những từ thuộc list đó và loại bỏ đi ko ạ. Để trường hợp như blackberry khỏi bị thành Berry thì có bác nào nghĩ ra cách chỉ lấy từ thôi ko ạ.
@ Bác Song Huong: Phiền bác gửi lại em file excel vs ạ ^^
 
Em cảm ơn ý kiến của các bác. Cái này ko dùng lệnh được bác ạ. Phải dùng hàm vì. Nhưng em giả sử có một list 10 màu ấy. Có cách nào để tìm trong các cells những từ thuộc list đó và loại bỏ đi ko ạ. Để trường hợp như blackberry khỏi bị thành Berry thì có bác nào nghĩ ra cách chỉ lấy từ thôi ko ạ.
@ Bác Song Huong: Phiền bác gửi lại em file excel vs ạ ^^
Phiền bạn gửi file của bạn trong đó có đầy đủ nội dung tên sản phẩm cần tác động, list 10 màu của bạn và kết quả bạn mong muốn đạt được. Càng cụ thể thì mọi người càng không phải làm đi làm lại nhiều.
 
Bài số #5 có đính kèm file rồi đó bác.

Bạn thêm màu/ từ cần loại bỏ trong biến ColorList. Hiện giờ chỉ có white black blue red

' Danh sach mau
ColorList = "white black blue red"

Em cảm ơn ý kiến của các bác. Cái này ko dùng lệnh được bác ạ. Phải dùng hàm vì. Nhưng em giả sử có một list 10 màu ấy. Có cách nào để tìm trong các cells những từ thuộc list đó và loại bỏ đi ko ạ. Để trường hợp như blackberry khỏi bị thành Berry thì có bác nào nghĩ ra cách chỉ lấy từ thôi ko ạ.
@ Bác Song Huong: Phiền bác gửi lại em file excel vs ạ ^^
 
Đây là loại câu hỏi mà 90% người hỏi ở đây vướng phải:
Người hỏi chưa thấy kết quả của đòi hỏi của mình cho nên chưa ý thức được độ phức tạp. Sau khi nhận được lời giải sơ khởi rồi sẽ còn thêm vài điều kiện nữa mới xong.

Công việc cắt bỏ từ trong chuỗi không đơn gảin như chủ thớt nghĩ:

- Phải có quy luật thế nào là một từ. Nếu đặt rằng hai từ phải cách nhau ít nhất một dấu cách thì ta có thể tìm từ bằng cách tách theo dấu cách, nhưng gặp "Lumia,Black" (không có dấu cách) thì sao?

- Phải biết có phân biệt hoa và thường hay không?

- Nếu cắt bỏ từ đầu tiên thì từ còn lại đầu tiên của chuỗi có chuyển thành hoa hay không?

Nói chung thì loại đề này, dùng RegEx là gọn nhất, tuy có hơi khó xác định mẫu.
 
Sr các bác em bận quá, hôm trc ko ở cty nên ko lấy file mẫu được
Em gửi các bác file dưới đây, em muốn chuyển tất cả tên ở cột A sang cột B bằng cách loại bỏ các màu trong trong list ở cột F. Các bác xem file attach giúp em vs nhé. Thank các bác ^^
 

File đính kèm

Sr các bác em bận quá, hôm trc ko ở cty nên ko lấy file mẫu được
Em gửi các bác file dưới đây, em muốn chuyển tất cả tên ở cột A sang cột B bằng cách loại bỏ các màu trong trong list ở cột F. Các bác xem file attach giúp em vs nhé. Thank các bác ^^
Thử công thức này xem sao:
=SUBSTITUTE(A2,LOOKUP(1,1/FIND(" "&$F$5:$F$13,A2),$F$5:$F$13),"")
 

File đính kèm

Thank bác concogia. Em áp dụng ct của bác thấy cũng gần được. Bác diễn giải công thức giúp em vs được ko ạ :)
 
Thank bác concogia. Em áp dụng ct của bác thấy cũng gần được. Bác diễn giải công thức giúp em vs được ko ạ :)
Đúng là đúng, sai thì chỉ ra sai chỗ nào, "gần được" nghe oải quá.
Công thức của Bác Cò nếu có Black và có luôn Silver thì chỉ bỏ được 1 thôi phải không?
Dùng hàm tự tạo thử coi sao.
Enable Macros khi mở file nhé.
 

File đính kèm

Lần chỉnh sửa cuối:
Code của bác Ba tê đơn giản mà hiệu quả phết, thank các bác nhiều ^^
Bác nào giải thích cho em cái công thức của bác concogia vs ạ
=SUBSTITUTE(A2,LOOKUP(1,1/FIND(" "&$F$5:$F$13,A2),$F$5:$F$13),"")
 
Code của bác Ba tê đơn giản mà hiệu quả phết, thank các bác nhiều ^^
Bác nào giải thích cho em cái công thức của bác concogia vs ạ
=SUBSTITUTE(A2,LOOKUP(1,1/FIND(" "&$F$5:$F$13,A2),$F$5:$F$13),"")

bạn bôi đen từng cụm cthức rồi nhấn F9 xem nó tính ra sao
hoặc dùng chức năng Formula auditing để xem
như vậy bạn có thể hiểu được mọi cthức
 
@Ba Tê:
Nếu bạn sử dụng UDF, bạn có thể đặt code vào module riêng của nó. Và đặt Option Compare Text cho module.
Khi ấy bạn có thể dùng hàm Replace để chạy một lượt thôi.

Mã:
Option Explicit
Option Compare Text

Public Function GPE1(ByVal Str As String, Rng As range) As String
Dim I As Long, Cll As range
Str = " " & Str & " "
For Each Cll In Rng
    Str = Replace(Str, " " & Cll.Value & " ", " ", vbTextCompare)
Next Cll
GPE1 = Trim(Str)
End Function
 
Công thức của Bác Cò nếu có Black và có luôn Silver thì chỉ bỏ được 1 thôi phải không?
Dùng hàm tự tạo thử coi sao.
Enable Macros khi mở file nhé.

Cái vụ "Black Silver" này em nghĩ là lỗi của tác giả. Vì nếu muốn dùng công thức thì phải liệt kê đầy đủ, có màu nào phải liệt kê màu đó
Vậy trong list màu phải thêm thằng Black Silver vào nữa mới xong
Công thức của em:
Mã:
=REPLACE(A2,LOOKUP(10^10,SEARCH(" "&$F$2:$F$11,A2)),LEN(LOOKUP(2,1/SEARCH(" "&$F$2:$F$11,A2),$F$2:$F$11))+1,"")
(Dùng SUBSTITUTE không ăn, nó có phân biệt HOA thường)
 

File đính kèm

Bác Ba Tê cho hỏi vs,
sao em thử chạy lại công thức của bác toàn bị lỗi NA. Hic hic :(
 
Bác Ba Tê cho hỏi vs,
sao em thử chạy lại công thức của bác toàn bị lỗi NA. Hic hic :(
"Tía tui" cũng không biết bạn "chạy lại công thức" là sao.
Ít nhất bạn cũng gởi cái file bị lỗi mới biết được tại sao bị lỗi.
Mai mốt bạn nói kiểu này thì "vĩnh biệt" chứ không phải "tạm biệt" đâu.
Tạm biệt.
 
Vâng cảm ơn bác nhắc nhở. Em sẽ rút kinh nghiệm ạ. Hì hì
 

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

Back
Top Bottom