Cần xử lý chuỗi kỹ tự (1 người xem)

Liên hệ QC

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

RAT_LIEU

Thành viên mới
Tham gia
9/9/09
Bài viết
29
Được thích
4
Em có một chuỗi ký tự, ví du:
T10270a/1968a ( có thể là a,b,c,d,e,f,g,h,i,k,l)
hoăc

18673534563/112b

Các a/c giúp em công thức nào có thể loại bỏ các chữ cái trong chuỗi trừ chữ cái đầu( nếu có) và ký tự / (nếu) có với ạ

thank a chị nhiều
 
Em có một chuỗi ký tự, ví du:
T10270a/1968a ( có thể là a,b,c,d,e,f,g,h,i,k,l)
hoăc

18673534563/112b

Các a/c giúp em công thức nào có thể loại bỏ các chữ cái trong chuỗi trừ chữ cái đầu( nếu có) và ký tự / (nếu) có với ạ

thank a chị nhiều
Nếu không có quy luật nào hết thì khó mà dùng công thức được. Có phải dữ liệu của bạn luôn luôn có ký tự "/" và chữ cái cần loại bỏ lúc nào cũng ở trước ký tự "/" hoặc ở cuối chuỗi không?
 
DỮ liệu của mình có khá nhiều th

VD Dữ liệu vào DỮ liệu cần ra

T001 T001
T024a T024
1985 1985
1986c 1986
1919a/1022 1919/1022
19/20g 19/20
T0366a/10255d T0366/10255
 
Lần chỉnh sửa cuối:
Bạn dùng code đi cho lẹ, chỉ cần đoạn code ngắn sau sẽ dọn sạch các chữ cái trừ chữ cái dầu cho bạn

Mã:
Function loc(ch As String) As String
loc = Left(ch, 1)
For i = 2 To Len(ch) - 1
If Mid(ch, i, 1) Like "[!A-Z]" And Mid(ch, i, 1) Like "[!a-z]" Then
loc = loc & Mid(ch, i, 1)
End If
Next
End Function
 

File đính kèm

Bạn thử dùng hàm này xem nhé
Mã:
Function NewStr(vRange As Range) As String
Dim str, ichar As String
Dim i  As Long
    str = vRange.Value
    NewStr = Left(str, 1)
    For i = 2 To Len(str)
        ichar = Mid(str, i, 1)
        If ichar Like "[A-z]" Then
          ichar = ""
        End If
        NewStr = NewStr & ichar
    Next
End Function
 

File đính kèm

Đọc lại bài thì hình như bạn chỉ cần giữ chữ cái đầu nếu là T, vậy thì bạn sửa câu lệnh đầu tiên 1 chút
Mã:
Function loc(ch As String) As String
[B][COLOR=Red]loc = IIf(Left(ch, 1) = "T", "T", "")[/COLOR][/B]
For i = 2 To Len(ch) - 1
If Mid(ch, i, 1) Like "[!A-Z]" And Mid(ch, i, 1) Like "[!a-z]" Then
loc = loc & Mid(ch, i, 1)
End If
Next
End Function
 
Đọc lại bài thì hình như bạn chỉ cần giữ chữ cái đầu nếu là T, vậy thì bạn sửa câu lệnh đầu tiên 1 chút
Mã:
Function loc(ch As String) As String
[B][COLOR=Red]loc = IIf(Left(ch, 1) = "T", "T", "")[/COLOR][/B]
For i = 2 To Len(ch) - 1
If Mid(ch, i, 1) Like "[!A-Z]" And Mid(ch, i, 1) Like "[!a-z]" Then
loc = loc & Mid(ch, i, 1)
End If
Next
End Function
M thay vào thấy hàm của bạn bị thiếu kí tự đầu tiên bạn àh. Giả sử =Loc(1986c) thì kểt quả là 986. Còn nếu số đầu là chữ T thì đúng.
---------------------------------------------------

Theo đề bài chắc là yêu cầu chỉ lấy kí tự số và chữ T chăng???
Mã:
Function tachchu(cel As Range)
Dim i As Integer
For i = 1 To Len(cel)
If IsNumeric(Mid(cel, i, 1)) = True Or Mid(cel, i, 1) = "T" Or Mid(cel, i, 1) = "/" Then
tachchu = tachchu & Mid(cel, i, 1)
End If
Next
End Function
 
Lần chỉnh sửa cuối:
Cám ơn HaiTuan đã test giùm, đêm qua khuya quá nên cũng không kiểm kỹ. Các bạn thay giùm đoạn lệnh số 1 thành:

loc = IIf(UCase(Left(ch, 1)) = "T" Or Left(ch, 1) Like "[0-9]", Left(ch, 1), "")
 
cảm ơn các a/c đã hết sức giúp đỡ, em dùng hàm này thấy ổn
sẽ lại làm phiền a/c nếu có jì thắc mắc

Bạn thử dùng hàm này xem nhé
Mã:
Function NewStr(vRange As Range) As String
Dim str, ichar As String
Dim i  As Long
    str = vRange.Value
    NewStr = Left(str, 1)
    For i = 2 To Len(str)
        ichar = Mid(str, i, 1)
        If ichar Like "[A-z]" Then
          ichar = ""
        End If
        NewStr = NewStr & ichar
    Next
End Function
 
Web KT

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

Back
Top Bottom