Giúp em lọc ra nhiều chuỗi ký tự

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

tranhuutai87

Thành viên mới
Tham gia
12/1/24
Bài viết
1
Được thích
0
Giúp em lọc ra nhiều chuỗi với. Lọc 1 chuỗi thì em làm được.
Ví dụ như:
MA_GD:331452431|db13041801209, db13151812135#LEMINHSANG# #[27945702 1/2024 559410][BPMENT-FT-189948], db13202811254
Em muốn lọc dãy số 13041801209 , 13151812135, 13202811254 thì làm sao ạ.
Giúp em với. Cám ơn các anh/chị
 
Giúp em lọc ra nhiều chuỗi với. Lọc 1 chuỗi thì em làm được.
Ví dụ như:
MA_GD:331452431|db13041801209, db13151812135#LEMINHSANG# #[27945702 1/2024 559410][BPMENT-FT-189948], db13202811254
Em muốn lọc dãy số 13041801209 , 13151812135, 13202811254 thì làm sao ạ.
Giúp em với. Cám ơn các anh/chị
Tách và lọc chuỗi có số và là 11 số (len =11) liền nhau. Sử dụng excel365 hoặc power query nhé
365
Mã:
=LET(m,TEXTSPLIT(CONCAT(TEXT(MID(A2,SEQUENCE(LEN(A2)),1),"[>=0]0;;; ")),," ",1),ARRAYTOTEXT(FILTER(m,LEN(m)=11)))
 
Nhận xét: Mỗi số cần lấy đi sau "db"
Excel 365:
Hàm Substitute đổi "db " thành " db". Mục đích là để nối db vào số.
Dùng hàm TextSplit tách ra thành mảng.
Dùng hàm Filter để lọc lấy các phần tử bắt đầu với "db"
Dùng hàm Substitute để loại "db"
 
Giúp em lọc ra nhiều chuỗi với. Lọc 1 chuỗi thì em làm được.
Ví dụ như:
MA_GD:331452431|db13041801209, db13151812135#LEMINHSANG# #[27945702 1/2024 559410][BPMENT-FT-189948], db13202811254
Em muốn lọc dãy số 13041801209 , 13151812135, 13202811254 thì làm sao ạ.
Giúp em với. Cám ơn các anh/chị
Bạn tham khảo, Excel không sáu lăm.
 

File đính kèm

  • Tach_so_trong_chuoi.xlsx
    9.4 KB · Đọc: 7
Giúp em lọc ra nhiều chuỗi với. Lọc 1 chuỗi thì em làm được.
Ví dụ như:
MA_GD:331452431|db13041801209, db13151812135#LEMINHSANG# #[27945702 1/2024 559410][BPMENT-FT-189948], db13202811254
Em muốn lọc dãy số 13041801209 , 13151812135, 13202811254 thì làm sao ạ.
Giúp em với. Cám ơn các anh/chị
Bạn thử Power query như sau nhé:
1705073131067.png
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
Tachcot = Table.AddColumn(Source, "chuoiso", each List.Accumulate(
List.Positions(Text.ToList([Column1])),
{},
(state, current) =>
let
chuoitach = Text.Middle([Column1], current, 13)
in
if Text.Start(chuoitach, 2) = "db" then
state & {Text.Middle(chuoitach, 2, 13)}
else
state
), type list),
Ketqua = Table.RemoveColumns(Table.TransformColumns(Tachcot, {"chuoiso", each Text.Combine(List.Transform(_, Text.From), "/"), type text}),{"Column1"})
in
Ketqua
Hoặc nếu chuỗi thực tế nó ngắn thì bạn có thể tách lần 1 theo "db", sau đó tách thêm 1 lần lấy 11 số là được không cần phải vòng lặp đếm chuỗi con chi cho mệt
 
Giúp em lọc ra nhiều chuỗi với. Lọc 1 chuỗi thì em làm được.
Ví dụ như:
MA_GD:331452431|db13041801209, db13151812135#LEMINHSANG# #[27945702 1/2024 559410][BPMENT-FT-189948], db13202811254
Em muốn lọc dãy số 13041801209 , 13151812135, 13202811254 thì làm sao ạ.
Giúp em với. Cám ơn các anh/chị
Dữ liệu ô A2
Mã:
B2 =MID($A2,FIND("db",$A2,FIND(A2,$A2))+2,11)
Copy ngang và xuống
 

File đính kèm

  • Tach_so_trong_chuoi.xlsx
    9.1 KB · Đọc: 5
Công thức chữa cháy:

1705088052242.png

Code VBA chữa cháy:

Function TachLS(s As String)
With CreateObject("VBScript.Regexp")
.Global = True
.IgnoreCase = True
.Pattern = "db([\d]+)"
For Each matchS In .Execute(s)
TachLS = TachLS & ", " & matchS.Submatches.Item(0)
Next matchS
End With
TachLS = Replace(TachLS, ", ", "", , 1)
End Function
 
Web KT
Back
Top Bottom