Nhờ viết cho 1 function tách số có điều kiện (1 người xem)

Liên hệ QC

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

vova2209

Thành viên tích cực
Tham gia
5/4/17
Bài viết
835
Được thích
112
Giới tính
Nam
Nghề nghiệp
Đường bộ
Em muốn 1 Function tách số từ 1 chuỗi nếu có 1 trong những từ sau:
"M75, M200, 100#, M250#"
Đổ bê tông M200 đá 1x2 ==> KQ = 200
Đổ bê tông M200# đá 1x2 ==> KQ = 200
Đổ bê tông 100# đá 2x4, độ sụt 6-8 ==> KQ = 100
Xây đá vữa xi măng M75, PC30 ==> KQ = 75
Em xin cảm ơn!
 
Em muốn 1 Function tách số từ 1 chuỗi nếu có 1 trong những từ sau:
"M75, M200, 100#, M250#"
Đổ bê tông M200 đá 1x2 ==> KQ = 200
Đổ bê tông M200# đá 1x2 ==> KQ = 200
Đổ bê tông 100# đá 2x4, độ sụt 6-8 ==> KQ = 100
Xây đá vữa xi măng M75, PC30 ==> KQ = 75
Em xin cảm ơn!
Nên đính kèm File với 1 sheet chứa dữ liệu có tiêu đề là thực tế, với 1 sheet kết quả thì các thành viên mới hiểu mà giúp được, đồng thời có cái mà thử.
 
Upvote 0
Nên đính kèm File với 1 sheet chứa dữ liệu có tiêu đề là thực tế, với 1 sheet kết quả thì các thành viên mới hiểu mà giúp được, đồng thời có cái mà thử.
file đây anh! em muốn tách cái số ở Mác bê tông ra để cho vào bảng tính toán của e
 

File đính kèm

Upvote 0
file đây anh! em muốn tách cái số ở Mác bê tông ra để cho vào bảng tính toán của e
Bạn thử hàm này thử xem sao
Mã:
Function SplitNum(Str As String) As Long
    Dim Tmp, J As Long, I As Long, DK As Boolean, LenTex As Long, Num As Long
DK = False
Tmp = Split(Str, " ")
For J = 0 To UBound(Tmp)
    LenText = Len(Tmp(J))
    If LenText > 0 Then
        For I = 1 To LenText
            If IsNumeric(Mid(Tmp(J), I, 1)) Then
                DK = True
                Num = Num & Mid(Tmp(J), I, 1)
            End If
        Next I
        If DK = True Then
            SplitNum = Num
            Exit Function
        End If
    End If
Next J
End Function
 
Upvote 0
Bạn thử hàm này thử xem sao
Mã:
Function SplitNum(Str As String) As Long
    Dim Tmp, J As Long, I As Long, DK As Boolean, LenTex As Long, Num As Long
DK = False
Tmp = Split(Str, " ")
For J = 0 To UBound(Tmp)
    LenText = Len(Tmp(J))
    If LenText > 0 Then
        For I = 1 To LenText
            If IsNumeric(Mid(Tmp(J), I, 1)) Then
                DK = True
                Num = Num & Mid(Tmp(J), I, 1)
            End If
        Next I
        If DK = True Then
            SplitNum = Num
            Exit Function
        End If
    End If
Next J
End Function
ok! nhanh và nuột quá.. Đã đúng như nguyện vọng em xin cảm ơn anh nhiều
 
Upvote 0
Bạn thử hàm này thử xem sao
Mã:
Function SplitNum(Str As String) As Long
    Dim Tmp, J As Long, I As Long, DK As Boolean, LenTex As Long, Num As Long
DK = False
Tmp = Split(Str, " ")
For J = 0 To UBound(Tmp)
    LenText = Len(Tmp(J))
    If LenText > 0 Then
        For I = 1 To LenText
            If IsNumeric(Mid(Tmp(J), I, 1)) Then
                DK = True
                Num = Num & Mid(Tmp(J), I, 1)
            End If
        Next I
        If DK = True Then
            SplitNum = Num
            Exit Function
        End If
    End If
Next J
End Function

Bạn quả thực có phép lạ. Tôi thấy code có theo yêu cầu đâu mà sao vẫn được chấm đúng.

Em muốn 1 Function tách số từ 1 chuỗi nếu có 1 trong những từ sau:
"M75, M200, 100#, M250#"

(tiếng Việt gọi là "tách" nhưng tiếng Anh thì phải là "Pick", "Select", "Sort out". Split dịch đúng tiếng Việt là phân ra. Ở đây từ "tách" dùng sai chỗ, nếu đúng ngữ cảnh thì phải là "lấy ra")
 
Upvote 0
Web KT

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

Back
Top Bottom