Nhờ giúp chuyển từ sub lọc dữ liệu thành function
Bác nào chuyển giúp cái thủ tục sau thành hàm đươc không ạ
Public Sub MyFilter() Dim lngStart As Long, lngEnd As Long lngStart = Range("E1").Value 'assume this is the start date lngEnd = Range("E2").Value 'assume this is the end date Range("C1:C13").AutoFilter field:=1, _ Criteria1:=">=" & lngStart, _ Operator:=xlAnd, _ Criteria2:="<=" & lngEnd End Subvi.extendoffice.com/documents/excel/910-excel-filter-between-two-dates.html
Hàm Filter, công thức:
=FILTER(A2:C13,(C2:C13>=E1)*(C2:C13<=E2))
Hàm filter chỉ có trong excel 360 mà bác, em dùng excel 2019 ạ
Nếu không có hàm Filter và đang xài 2019
Function MyFilter(DataRng As Range, StartD As Date, EndD As Date, DCol As Long)
Dim DataArr(), ResultArr(), RwsCount As Long, ColCount As Long
DataArr = DataRng.Value
RwsCount = UBound(DataArr, 1)
ColCount = UBound(DataArr, 2)
For i = 1 To RwsCount
If DataArr(i, DCol) >= StartD And DataArr(i, DCol) <= EndD Then
k = k + 1
ReDim Preserve ResultArr(1 To ColCount, 1 To k)
For j = 1 To ColCount
ResultArr(j, k) = DataArr(i, j)
Next
End If
Next
MyFilter = Application.Transpose(ResultArr)
End Function
Dcol là thứ tự của cột chứa ngày.
H2 =myfilter(A2:C16,F1,F2,3)
3340
Cảm ơn bác nhiều, nhưng nếu em dùng dấu Phẩy (,) để cách giữa các tham số
Còn nếu em thay dấu Phẩy (,) bằng dấu Chấm phẩy (;) thì kết quả chỉ ra không đúng bác ah
Chả lẽ 2019 không ra được kết quả mảng?
Thử: tô khối H2:J12 gõ công thức rồi Ctrl shift Enter
Xài: H2 =Index(MyFilter($A$2:$C$12,$F$1,$F$2,3),Row(B1),Column(B1)), fill ngang và fill dọc đến khi lỗi thì ngưng
Khoá học Trưởng phòng nhân sự
Nguồn nhân lực là một trong Tứ trụ kinh doanh của doanh nghiệp, có tác động tới sự tồn tại và phát triển bền...
Xem khóa học
Bình luận