giúp em hàm lọc với ạ !

Liên hệ QC

lala_qn

Thành viên tiêu biểu
Tham gia
2/5/09
Bài viết
598
Được thích
17
Nghề nghiệp
chưa ổn định
em chào anh chị!
giúp em hàm lọc này với ạ
em có up vd kèm theo ạ
ô cell B1 là nơi nhập mẫu cần lọc
Cell B2 nhập công thức lọc ạ
em muốn lọc chuỗi 9 số trong dãy số, lọc vị trí bất kì
vd lọc: xxxxx1990 , thì cell B2 và B10 đánh dấu là 1
hoặc lọc: xxx123xxx, thì cell B11, B12 đánh dấu là 1
cảm ơn anh chị nhiều!
 

File đính kèm

  • vd.xlsx
    8.2 KB · Đọc: 16
em chào anh chị!
giúp em hàm lọc này với ạ
em có up vd kèm theo ạ
ô cell B1 là nơi nhập mẫu cần lọc
Cell B2 nhập công thức lọc ạ
em muốn lọc chuỗi 9 số trong dãy số, lọc vị trí bất kì
vd lọc: xxxxx1990 , thì cell B2 và B10 đánh dấu là 1
hoặc lọc: xxx123xxx, thì cell B11, B12 đánh dấu là 1
cảm ơn anh chị nhiều!
Bạn thử cái này xem đúng không.
 

File đính kèm

  • vd.xlsx
    8.4 KB · Đọc: 25
nhờ anh chị giúp dùm em hàm này với ạ !
 
Bạn thử dùng cách này xem sao. Thêm Function
Mã:
Function KiemTraChuoi(aDuLieu As Range, aChuoi As String) As Boolean
    KiemTraChuoi = aDuLieu Like aChuoi
End Function
+ Ô B1 bạn điền là *1990*
+ Ô B2 bạn thử dùng công thức rồi kéo xuống đến hết vùng dữ liệu
=KiemTraChuoi(A2,$B$1)
 
hàm này tìm cứ có là ra hết, nó ko phân biệt dc đúng vị trí cần tìm ạ
em muốn tìm cụm số đó đúng vị trí trong chuổi số đó ạ
nhờ anh chị giúp thêm giùm em ạ !
Dùng thử cái này.Chọn vùng rồi điền công thức kết thúc bằng hàm mảng.ctr + shit + enter
Mã:
Function loc(ByVal mang As Range, ByVal dk As String)
         Dim arr, i As Long, T(1 To 100), s As String, s1 As String, j As Integer, kq
         arr = laymang(mang)
         ReDim kq(1 To UBound(arr), 1 To 1)
         For i = 1 To Len(dk)
             If IsNumeric(Mid(dk, i, 1)) Then
                a = a + 1
                T(a) = i
                s = s & Mid(dk, i, 1)
             End If
         Next i
         If a = 0 Then loc = 0: Exit Function
         For i = 1 To UBound(arr)
             s1 = Empty
             For j = 1 To a
                 If Len(arr(i, 1)) >= T(j) Then s1 = s1 & Mid(arr(i, 1), T(j), 1)
             Next j
             If s = s1 Then
                kq(i, 1) = 1
             Else
                kq(i, 1) = 0
             End If
         Next i
         loc = kq
End Function
Function laymang(ByVal mang As Range)
        Dim arr
        If mang.Count = 1 Then
           ReDim arr(1 To 1, 1 To 1)
           arr(1, 1) = mang.Value
        Else
           arr = mang.Value
        End If
        laymang = arr
End Function
Mã:
=loc($A$2:$A$13;B1)
 

File đính kèm

  • vd (3).xlsm
    15.5 KB · Đọc: 6
Dùng thử cái này.Chọn vùng rồi điền công thức kết thúc bằng hàm mảng.ctr + shit + enter
Mã:
Function loc(ByVal mang As Range, ByVal dk As String)
         Dim arr, i As Long, T(1 To 100), s As String, s1 As String, j As Integer, kq
         arr = laymang(mang)
         ReDim kq(1 To UBound(arr), 1 To 1)
         For i = 1 To Len(dk)
             If IsNumeric(Mid(dk, i, 1)) Then
                a = a + 1
                T(a) = i
                s = s & Mid(dk, i, 1)
             End If
         Next i
         If a = 0 Then loc = 0: Exit Function
         For i = 1 To UBound(arr)
             s1 = Empty
             For j = 1 To a
                 If Len(arr(i, 1)) >= T(j) Then s1 = s1 & Mid(arr(i, 1), T(j), 1)
             Next j
             If s = s1 Then
                kq(i, 1) = 1
             Else
                kq(i, 1) = 0
             End If
         Next i
         loc = kq
End Function
Function laymang(ByVal mang As Range)
        Dim arr
        If mang.Count = 1 Then
           ReDim arr(1 To 1, 1 To 1)
           arr(1, 1) = mang.Value
        Else
           arr = mang.Value
        End If
        laymang = arr
End Function
Mã:
=loc($A$2:$A$13;B1)
tại em ko rành về VBA, với lại em hay chỉnh sửa file đẩy dòng đẩy hàng chạy ạ, nên nhờ anh tạo giúp em cái hàm để dễ làm ạ
cảm ơn anh !
 
Bạn thử dùng cách này xem sao. Thêm Function
Mã:
Function KiemTraChuoi(aDuLieu As Range, aChuoi As String) As Boolean
    KiemTraChuoi = aDuLieu Like aChuoi
End Function
+ Ô B1 bạn điền là *1990*
+ Ô B2 bạn thử dùng công thức rồi kéo xuống đến hết vùng dữ liệu
=KiemTraChuoi(A2,$B$1)
Chị ơi công thức của chị đơn giản mà hiệu quả
 
Function này chắc là giúp bạn lấy được chuỗi theo dạng mà bạn mong muốn
Mã:
Function KiemTraChuoi(aDuLieu As Range, aChuoi As String) As Boolean
    KiemTraChuoi = aDuLieu Like aChuoi
End Function
Function LayChuoi(aDuLieu As Range, aChuoi As String)
    For Each Cell In aDuLieu
        If Cell Like aChuoi Then
            i = i & Cell & ","
        End If
    Next Cell
LayChuoi = Application.Transpose(Split(i, ","))
End Function
 

File đính kèm

  • TimVaLayChuoi.xlsm
    15.3 KB · Đọc: 5
Function này chắc là giúp bạn lấy được chuỗi theo dạng mà bạn mong muốn
Mã:
Function KiemTraChuoi(aDuLieu As Range, aChuoi As String) As Boolean
    KiemTraChuoi = aDuLieu Like aChuoi
End Function
Function LayChuoi(aDuLieu As Range, aChuoi As String)
    For Each Cell In aDuLieu
        If Cell Like aChuoi Then
            i = i & Cell & ","
        End If
    Next Cell
LayChuoi = Application.Transpose(Split(i, ","))
End Function
tại em ko rành về VBA, với lại em hay chỉnh sửa file đẩy dòng đẩy hàng chạy ạ, nên nhờ anh tạo giúp em cái hàm để dễ làm ạ
cảm ơn chị !
 
Thử, Ctrl+Shift+Enter:
Mã:
=N(AND((MID(A2,ROW($1:$9),1)=MID($B$1,ROW($1:$9),1))+(MID($B$1,ROW($1:$9),1)="x")))
dạ ok rùi anh cảm ơn anh nhiều ạ !
cho em hỏi thêm vd khác ạ
file vd e có up kèm theo ạ
trong file em vd2 nhập ở E1 là xxx123xxx thì sẽ lọc các kết quả, nếu có thì sẽ xếp lên đầu luôn ạ,
và ở F1 là tùy có thể tùy chỉnh nhập Mã đi kèm cột A, B, C . trong file em vd nhập mã cột C thì nó sẽ tự động lấy mã đi kèm với DL cột C và đưa lên luôn ạ
nhờ anh giúp dùm em thêm file này với ạ !
 

File đính kèm

  • vd2.xlsx
    9.4 KB · Đọc: 6
Lần chỉnh sửa cuối:
dạ ok rùi anh cảm ơn anh nhiều ạ !
cho em hỏi thêm vd khác ạ
file vd e có up kèm theo ạ
trong file em vd2 nhập ở E1 là xxx123xxx thì sẽ lọc các kết quả, nếu có thì sẽ xếp lên đầu luôn ạ,
và ở F1 là tùy có thể tùy chỉnh nhập Mã đi kèm cột A, B, C . trong file em vd nhập mã cột C thì nó sẽ tự động lấy mã đi kèm với DL cột C và đưa lên luôn ạ
nhờ anh giúp dùm em thêm file này với ạ !
Xem file:
 

File đính kèm

  • vd2.xlsx
    11.2 KB · Đọc: 16
Bỏ khóa là bỏ gì vậy ?
dạ là bỏ giới hạn đó anh, trong file thấy anh giới từ A2 đến A13, từ cột A đến I,
trong file anh làm hộ em chèn thêm cột hoặc đổi vị trí là hàm ko có tác dụng ạ
nhờ anh sửa hộ thêm với ạ, cảm ơn anh!
 
dạ là bỏ giới hạn đó anh, trong file thấy anh giới từ A2 đến A13, từ cột A đến I,
trong file anh làm hộ em chèn thêm cột hoặc đổi vị trí là hàm ko có tác dụng ạ
nhờ anh sửa hộ thêm với ạ, cảm ơn anh!
Có thể sửa hàm lại như sau:
Mã:
=IFERROR(INDIRECT("A"&AGGREGATE(15,6,ROW($A$2:$A$13)/(MMULT((MID($A$2:$A$13,{1,2,3,4,5,6,7,8,9},1)=MID($E$1,{1,2,3,4,5,6,7,8,9},1))+(MID($E$1,{1,2,3,4,5,6,7,8,9},1)="x"),{1;1;1;1;1;1;1;1;1})=9),ROW(A1))),)
Riêng ROW($A$2:$A$13) là tạo 1 dãy số từ 2 đến 13 nó tùy theo dữ liệu cột A của bạn, nếu bạn chèn bạn phải cho rõ cấu trúc để xử lý, có thể dùng countif để lấy số dòng không thể đoán mò được. Với 1 dữ liệu chuẩn không thể tùy hứng thêm bỏ dòng hay cột được.
 
Có thể sửa hàm lại như sau:
Mã:
=IFERROR(INDIRECT("A"&AGGREGATE(15,6,ROW($A$2:$A$13)/(MMULT((MID($A$2:$A$13,{1,2,3,4,5,6,7,8,9},1)=MID($E$1,{1,2,3,4,5,6,7,8,9},1))+(MID($E$1,{1,2,3,4,5,6,7,8,9},1)="x"),{1;1;1;1;1;1;1;1;1})=9),ROW(A1))),)
Riêng ROW($A$2:$A$13) là tạo 1 dãy số từ 2 đến 13 nó tùy theo dữ liệu cột A của bạn, nếu bạn chèn bạn phải cho rõ cấu trúc để xử lý, có thể dùng countif để lấy số dòng không thể đoán mò được. Với 1 dữ liệu chuẩn không thể tùy hứng thêm bỏ dòng hay cột được.
dạ tại bảng dl này e làm 1 loại dl, nên cột dl đó sẽ có dữ liệu từ đầu cột đến cuối cột, mình để là $A:$A dc ko anh nhỉ ?
 
dạ tại bảng dl này e làm 1 loại dl, nên cột dl đó sẽ có dữ liệu từ đầu cột đến cuối cột, mình để là $A:$A dc ko anh nhỉ ?
Bạn nên gửi lên thêm 1 file dữ liệu nhiều dòng và chính xác với cấu trúc file dữ liệu gốc nhất.
Ít nhất là đúng hàng đúng cột.
 
Bạn nên gửi lên thêm 1 file dữ liệu nhiều dòng và chính xác với cấu trúc file dữ liệu gốc nhất.
Ít nhất là đúng hàng đúng cột.
dạ bảng dl chính em vẫn đang tạo và chỉnh sửa nên chưa ổn định,
với công thức của anh em chỉnh hàng cột bằng tay dc ạ,
cảm ơn anh rất nhiều ạ !!!
 
Web KT
Back
Top Bottom