Lấy kí tự trong chuỗi (1 người xem)

  • Thread starter Thread starter Banba
  • Ngày gửi Ngày gửi

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

Banba

Thành viên mới
Tham gia
1/8/13
Bài viết
15
Được thích
0
Tôi có chuỗi kí tự là AABB..._Q1234...-BCD... tôi muốn lấy được kí tự là AABB...-BCD.... (TỨC LÀ BỎ ĐI CÁC KÍ TỰ GIŨA HAI GẠCH NỐI"_""-" CÒN LẠI LẤY HẾT) rất mong được giúp đỡ
Xin cảm ơn các anh chị
 
Lần chỉnh sửa cuối:
Tôi có chuỗi kí tự là AABB_Q1234-BCD tôi muốn lấy được kí tự là AABB-BCD rất mong được giúp đỡ
Xin cảm ơn các anh chị
Bạn dùng công thức sau: =LEFT(A1,4)&RIGHT(A1,4), với A1 là ô chứa chuỗi ban đầu.
 
Nhờ các bạn giúp đỡ, rất cảm ơn
Trong dữ liệu của bạn, có ô có chứa ký tự "_", có ô không có, còn ký tự "-" thì ô nào cũng có. Như vậy, bạn có thể sử dụng công thức sau cho ô B4:
Mã:
=IF(ISNUMBER(FIND("_",A4)),REPLACE(A4,FIND("_",A4),FIND("-",A4)-FIND("_",A4),""),A4)
 
Bạn giúp mình VBA nhé, cảm ơn

VBA bằng Function đây:
PHP:
Public Function GPE(Str As String) As String
Dim Tem1, Tem2
If InStr(Str, "_") Then
    Tem1 = Split(Str, "_")
    Tem2 = Split(Tem1(UBound(Tem1)), "-")
    GPE = Tem1(0) & "-" & Tem2(UBound(Tem2))
Else
    GPE = Str
End If
End Function
Rút gọn lại 1 chút thành
PHP:
Public Function GPE(Str As String) As String
Dim Tem
Str = Replace(Str, "_", "-")
Tem = Split(Str, "-")
GPE = Tem(0) & "-" & Tem(UBound(Tem))
End Function

Công thức
B4=GPE(A4)
 
Lần chỉnh sửa cuối:
Cảm ơn Ba Tê và Chuot0106 dữ liệu của em rất nhiều
em muốn code tự động cho kết quả từ sheet1 cho kết quả sang shets2 được ko ah
 
Nếu muốn dùng hàm thì copy đoạn code này bỏ vào modul:
Mã:
Public Static Function Tach(rng As Range)
    Tach = Replace(rng, "_Q123", "")
End Function
------------------------------------------------
Cách dùng: Ví dụ tại ô B4
B4=Tach(A4)
Kéo xuống dưới.
 
Nhờ các bạn giúp đỡ, rất cảm ơn

Cái đồ quỷ này mà VBA chi cho mất công. Tôi làm như sau:
- Quét chọn vùng dữ liệu
- Bấm Ctrl + H
- Khung Find what nhập _*-
- Khung Replace with nhập -
- Bấm Replace All
Xong!
------------
Nếu VBA thì cũng mỗi câu lệnh này là xong: Selection.Replace "_*-", "-", xlPart (gõ ngay trong cửa sổ Immediate luôn, khỏi cần phải chèn module gì ráo)
 
Cái đồ quỷ này mà VBA chi cho mất công. Tôi làm như sau:
- Quét chọn vùng dữ liệu
- Bấm Ctrl + H
- Khung Find what nhập _*-
- Khung Replace with nhập -
- Bấm Replace All
Xong!
------------
Nếu VBA thì cũng mỗi câu lệnh này là xong: Selection.Replace "_*-", "-", xlPart (gõ ngay trong cửa sổ Immediate luôn, khỏi cần phải chèn module gì ráo)
Sát thủ thật.
Đúng là thông minh chính là đưa ra được phương pháp đơn giản nhất, hiệu quả nhất. Tâm đắc thật.
Bái phục thầy.
Bái phục thầy lần nữa. Tối nay mất ngủ.
:D.
 
Lần chỉnh sửa cuối:
Cái đồ quỷ này mà VBA chi cho mất công. Tôi làm như sau:
- Quét chọn vùng dữ liệu
- Bấm Ctrl + H
- Khung Find what nhập _*-
- Khung Replace with nhập -
- Bấm Replace All
Xong!
------------
Nếu VBA thì cũng mỗi câu lệnh này là xong: Selection.Replace "_*-", "-", xlPart (gõ ngay trong cửa sổ Immediate luôn, khỏi cần phải chèn module gì ráo)
cao thủ có khác. bái phục thầy.
 
Dùng giải thuật REPLACE sẽ bị vướng với chuỗi ABC-DEF_hjfhdkogoj-XYZ

Dùing InStr hoặc regex an toàn hơn.
 
Góp ý thêm:
Theo mình cái này dung công cụ Data/data tools/ Text to column là tuyệt vời và nhanh nhất không cần con dao mổ trâu " VBA" và mấy cái công thức phức tạp trên. trường hợp mà có ô có ký tự "_" hoặc "-" và ô không có dung công thức chắc điên đầu luôn. Hy vong co ich

Tks,
 
Góp ý thêm:
Theo mình cái này dung công cụ Data/data tools/ Text to column là tuyệt vời và nhanh nhất không cần con dao mổ trâu " VBA" và mấy cái công thức phức tạp trên. trường hợp mà có ô có ký tự "_" hoặc "-" và ô không có dung công thức chắc điên đầu luôn. Hy vong co ich

Tks,
Bạn nên đọc từ đầu rồi hãy viết bài. Bạn biết mục đích của người ta là gì chưa mà bạn viết như vậy? Chưa cần dùng tới cách của anh NghiaPhuc và cách của thầy ndu chì cần lấy cách của tôi ra để so sánh thôi cách của bạn cũng ko so được rồi, bởi vì kết quả nó có đúng đâu mà đòi so sánh tốc độ????@$@!^%@$@!^%@$@!^%@$@!^%
 
Mình có yêu cầu khác bạn Bana 1 chút là chỉ bỏ "-" và "_", còn lại lấy hết.
mình làm hoài ko ra.
Mong các bạn chỉ giáo
 
Lần chỉnh sửa cuối:
Mình có yêu cầu khác bạn Bana 1 chút là chỉ bỏ "-" và "_", còn lại lấy hết.
mình làm hoài ko ra.
Mong các bạn chỉ giáo

Bạn có thể dùng cách trên của chú Ndu hướng dẫn nhưng mà phải thao tác 2 lần : Lần 1 là để loại bỏ dấu - và lần 2 là để loại bỏ dấu _

Còn nếu làm theo CT thì bạn thử CT này: =SUBSTITUTE(SUBSTITUTE(A1,"-",""),"_","")

Với A1 là ô chứa dữ liệu ban đầu
 
Lần chỉnh sửa cuối:

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

Back
Top Bottom