Cần giúp đỡ về hàm tìm kiếm trong chuỗi (1 người xem)

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

alibaba2209

Thành viên thường trực
Tham gia
4/12/10
Bài viết
283
Được thích
13
Tìm kiếm trong chuỗi:
[TABLE="width: 343"]
[TR]
[TD="class: xl708, width: 343"]1. Đắp đất san nền K=0,9 tìm trong chuỗi có K=0,9 trả về lấy mẫu K=0,9

[TABLE="width: 343"]
[TR]
[TD="class: xl708"]2. Đắp đất san nền K=0,95 tìm trong chuỗi có K=0,95 trả về lấy mẫu K=0,95

[TABLE="width: 343"]
[TR]
[TD="class: xl708"]3. Đắp đất san nền K=0,98 tìm trong chuỗi có K=0,98 trả về lấy mẫu
K=0,98[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[/TABLE]
 
Tìm kiếm trong chuỗi:
[TABLE="width: 343"]
[TR]
[TD="class: xl708, width: 343"]1. Đắp đất san nền K=0,9 tìm trong chuỗi có K=0,9 trả về lấy mẫu K=0,9

[TABLE="width: 343"]
[TR]
[TD="class: xl708"]2. Đắp đất san nền K=0,95 tìm trong chuỗi có K=0,95 trả về lấy mẫu K=0,95

[TABLE="width: 343"]
[TR]
[TD="class: xl708"]3. Đắp đất san nền K=0,98 tìm trong chuỗi có K=0,98 trả về lấy mẫu
K=0,98[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[/TABLE]
Giả sử dữ liệu tại A1
Mã:
=IFERROR("lấy mẫu "&TRIM(IF(FIND("K=",A1),MID(SUBSTITUTE(A1," ",REPT(" ",20)),FIND("K=",SUBSTITUTE(A1," ",REPT(" ",20))),20),"")),"")
 
Giả sử dữ liệu tại A1
Mã:
=IFERROR("lấy mẫu "&TRIM(IF(FIND("K=",A1),MID(SUBSTITUTE(A1," ",REPT(" ",20)),FIND("K=",SUBSTITUTE(A1," ",REPT(" ",20))),20),"")),"")
Kì diệu quá! a giải thich cấu trúc hàm cho e hiểu với ạ
hàm có thể ngắn hơn ko ạ
 
Lần chỉnh sửa cuối:
Mã:
=MID(A1,FIND("K=",A1),FIND(" ",A1,FIND("K=",A1)+1)-FIND("K=",A1))

Nếu có dấu cách xen với dấu = thì sẽ tính tiếp.
có thể lồng thêm nhiều đối tượng được không vd {"K90","K95","K98"} trong chuỗi có 1 trong 3 từ đấy sẽ trả về từ tìm được
 
có thể lồng thêm nhiều đối tượng được không vd {"K90","K95","K98"} trong chuỗi có 1 trong 3 từ đấy sẽ trả về từ tìm được
Bạn tạo file excel cho vài chục dòng dữ liệu vào, sau đó đính kèm lên đây.
Chứ không nên viết ở bài kiểu vầy và mỗi lúc đẻ thêm một ý...
 
em tải file lên rồi.. a xem giúp đỡ em

Chép vào một module:
Mã:
Function TimChuoi(chuoi As String) As String
Dim i As Integer
For i = 1 To Len(chuoi) - 1
    If IsNumeric(Mid(chuoi, i, 1)) = False And IsNumeric(Mid(chuoi, i + 1, 1)) = True Then
        TimChuoi = Mid(chuoi, i, InStr(i, chuoi, " ") - i): Exit Function
    End If
Next i
End Function
Công thức ở bảng tính:
=TimChuoi(A3)
 
em cảm ơn thầy và các a đã giúp đỡ
em tạo được hàm này rồi ạ: =IF(SUMPRODUCT((ISNUMBER(FIND({"#","vữa"};$B10)))*1);"Lấy mẫu Vữa";IF(SUMPRODUCT((ISNUMBER(FIND({"M50","M75","M100","M150","M200","M250","M300"};$B10)))*1);"Lấy mẫu BT";""))
 
Chép vào một module:
Mã:
Function TimChuoi(chuoi As String) As String
Dim i As Integer
For i = 1 To Len(chuoi) - 1
    If IsNumeric(Mid(chuoi, i, 1)) = False And IsNumeric(Mid(chuoi, i + 1, 1)) = True Then
        TimChuoi = Mid(chuoi, i, InStr(i, chuoi, " ") - i): Exit Function
    End If
Next i
End Function
Công thức ở bảng tính:
=TimChuoi(A3)

vba này sài hay quá! em cảm ơn ạ
 

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

Back
Top Bottom