Giúp mình lấy giá trị nhỏ nhất !!

Liên hệ QC

N Khánh

Thành viên mới
Tham gia
22/11/18
Bài viết
30
Được thích
0
Mình có 1 file excel như này, có cách nào lấy ra với mỗi T (mình có bôi màu) thì mình tìm ra được giá trị Z nhỏ nhất không ạ. Nếu tìm được cả X Y cùng dòng với Z đó thì tốt quá, mọi người giúp mình với mình với !!!
 

File đính kèm

  • 123.xlsx
    10.6 KB · Đọc: 21
Mình có 1 file excel như này, có cách nào lấy ra với mỗi T (mình có bôi màu) thì mình tìm ra được giá trị Z nhỏ nhất không ạ. Nếu tìm được cả X Y cùng dòng với Z đó thì tốt quá, mọi người giúp mình với mình với !!!
Bạn cho kết quả cụ thể đi, Z, X, Y ?
 
Mình nhầm X Y phải suy luận nên k tự động đc, bác có cách nào lấy đc Z là tốt quá rùi ạ :D
Code nhe bạn:
PHP:
Function sfind(ByVal str As String, ByVal n As Long)
Static reg As Object: If reg Is Nothing Then Set reg = CreateObject("vbscript.regexp")
With reg
    .Global = True
    If n = 1 Then
        .Pattern = "^N.*\s(T\d+)\s.*$"
    Else
        .Pattern = "^.*G98.*\s(Z\-?\d*\.?\d+).+$"
    End If
If .test(str) Then sfind = reg.Replace(str, "$1")
End With
End Function
Sub a()
Dim arr: arr = Range("A1:A" & [A100000].End(xlUp).Row)
Dim res: ReDim res(0 To 0)
Dim i As Long, j As Long, z As Long
For i = 1 To UBound(arr)
    If Len(sfind(arr(i, 1), 1)) > 0 Then
        res(z) = sfind(arr(i, 1), 1) & ": "
        For j = i + 1 To UBound(arr)
            If Len(sfind(arr(j, 1), 1)) Then Exit For
            If Len(sfind(arr(j, 1), 2)) Then
                res(z) = res(z) & sfind(arr(j, 1), 2)
                Exit For
            End If
        Next
        z = z + 1: ReDim Preserve res(z + 1)
    End If
Next
[b1].Resize(UBound(res), 1) = WorksheetFunction.Transpose(res)
End Sub
 
Code nhe bạn:
PHP:
Function sfind(ByVal str As String, ByVal n As Long)
Static reg As Object: If reg Is Nothing Then Set reg = CreateObject("vbscript.regexp")
With reg
    .Global = True
    If n = 1 Then
        .Pattern = "^N.*\s(T\d+)\s.*$"
    Else
        .Pattern = "^.*G98.*\s(Z\-?\d*\.?\d+).+$"
    End If
If .test(str) Then sfind = reg.Replace(str, "$1")
End With
End Function
Sub a()
Dim arr: arr = Range("A1:A" & [A100000].End(xlUp).Row)
Dim res: ReDim res(0 To 0)
Dim i As Long, j As Long, z As Long
For i = 1 To UBound(arr)
    If Len(sfind(arr(i, 1), 1)) > 0 Then
        res(z) = sfind(arr(i, 1), 1) & ": "
        For j = i + 1 To UBound(arr)
            If Len(sfind(arr(j, 1), 1)) Then Exit For
            If Len(sfind(arr(j, 1), 2)) Then
                res(z) = res(z) & sfind(arr(j, 1), 2)
                Exit For
            End If
        Next
        z = z + 1: ReDim Preserve res(z + 1)
    End If
Next
[b1].Resize(UBound(res), 1) = WorksheetFunction.Transpose(res)
End Sub
Bác ví dụ vào file mẫu vs đc không ạ, mình làm mãi ko được, cảm ơn bác giúp nhiều lắm luôn ^^
 
Tuyệt vời quá bác ạ ^^ không biết cảm ơn bác thế nào. Em muốn nhờ bác thêm xíu là có thể lấy thêm nguyên cả những ô này ra 1 cột riêng nữa đc không ạ
20185adddd52-2114-4bba-a42f-83824325a298.jpg
 
File bác làm cho rất là tuyệt rồi, nhưng mà mình xóa cột A đi import cái khác vào thì lại báo lỗi bác ạ :((
File này bạn gửi đâu giống file ban đầu, file đầu thì kiếm máy thằng T dựa vào chuỗi dạng "N*T*" như "N104 T1 M6", còn file mới gửi bạn dựa vào đâu để lấy thằng T.
 
Web KT
Back
Top Bottom