Lấy và lọc dữ liệu theo các điều kiện (ngày, mã, batch) (1 người xem)

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

Thanh1102

Thành viên hoạt động
Tham gia
29/11/08
Bài viết
147
Được thích
46
Chào các bạn
Nhờ các bạn xem và xử lý giùm mình vấn đề trích lọc, lấy dữ liệu trong file đính kèm theo nhiều điều kiện (bằng CT hoặc VBA)

Trân trọng cảm ơn.
 

File đính kèm

Chào các bạn
Mình có tìm hiểu và làm theo công thức của 1 bạn trên diễn đàn (mặc dù chưa đáp ứng đầy đủ) nhưng vẫn không được kết quả mong muốn.
Các bạn vui lòng bớt chút thời gian xem và hỗ trợ giùm mình với.

[TABLE="width: 72"]
[TR]
[TD="class: xl69, width: 72, align: left"]Name ARR"=IF((OFFSET(Data!$A$2,,,COUNTA(Data!$A:$A))<>Detail!$C$7)+(OFFSET(Data!$X$2,,,COUNTA(Data!$X:$X))>Detail!$G$5)+(OFFSET(Data!$X$2,,,COUNTA(Data!$X:$X))<Detail!$G$6),"",ROW(OFFSET(Data!$A$2,,,COUNTA(Data!$A:$A))))[/TD]
[/TR]
[TR]
[TD="class: xl70"]Công thức từ Cell A15=IF(ROWS($15:27)>COUNT(ARR),"",INDEX(Data!$A:$AA,SMALL(ARR,ROWS($15:27)),0))
[/TD]
[/TR]
[/TABLE]
 

File đính kèm

Chào các bạn
Mình có tìm hiểu và làm theo công thức của 1 bạn trên diễn đàn (mặc dù chưa đáp ứng đầy đủ) nhưng vẫn không được kết quả mong muốn.
Các bạn vui lòng bớt chút thời gian xem và hỗ trợ giùm mình với.

[TABLE="width: 72"]
[TR]
[TD="class: xl69, width: 72, align: left"]Name ARR"=IF((OFFSET(Data!$A$2,,,COUNTA(Data!$A:$A))<>Detail!$C$7)+(OFFSET(Data!$X$2,,,COUNTA(Data!$X:$X))>Detail!$G$5)+(OFFSET(Data!$X$2,,,COUNTA(Data!$X:$X))<Detail!$G$6),"",ROW(OFFSET(Data!$A$2,,,COUNTA(Data!$A:$A))))[/TD]
[/TR]
[TR]
[TD="class: xl70"]Công thức từ Cell A15=IF(ROWS($15:27)>COUNT(ARR),"",INDEX(Data!$A:$AA,SMALL(ARR,ROWS($15:27)),0))[/TD]
[/TR]
[/TABLE]
Với dữ liệu nhiều thì phải tìm đến giải pháp VBA, dùng công thức mảng sẽ bị treo máy vì quá nặng.
Giải pháp file kèm dưới đây dùng cột phụ, bạn tham khảo thử.

Chúc bạn ngày vui.
 

File đính kèm

Với dữ liệu nhiều thì phải tìm đến giải pháp VBA, dùng công thức mảng sẽ bị treo máy vì quá nặng.
Giải pháp file kèm dưới đây dùng cột phụ, bạn tham khảo thử.

Chúc bạn ngày vui.

Cảm ơn bạn đã trợ giúp. Công thức đã giải quyết được yêu cầu. Tuy nhiên đúng như bạn nói và cũng là điều mình lo ngại. Do dữ liệu khá lớn nên chạy khá chậm.
Vậy cần xử lý bằng VBA.
Các bạn vui lòng xem và giúp mình với. VBA mình không rành +-+-+-++-+-+-++-+-+-+
 
Cảm ơn bạn đã trợ giúp. Công thức đã giải quyết được yêu cầu. Tuy nhiên đúng như bạn nói và cũng là điều mình lo ngại. Do dữ liệu khá lớn nên chạy khá chậm.
Vậy cần xử lý bằng VBA.
Các bạn vui lòng xem và giúp mình với. VBA mình không rành +-+-+-++-+-+-++-+-+-+
Bạn thử code này coi> lưu ý là cột X phải đúng kiểu datae nhé. Của bạn mới chỉ là text thui
Mã:
Sub loc()
    Dim cn As Object, dk As String
    With Sheets("Detail")
        Range("A23:K" & Range("A65000").End(3).Row + 1).Clear
        If .Range("G5") <> "" And .Range("G6") <> "" Then dk = "f1 like '%" & .Range("C7") & "%' and f3 like '%" & .Range("H7") & "%' and f24 between #" & .Range("G5") & "# and #" & .Range("G6") & "#"
        If .Range("G5") <> "" And .Range("G6") = "" Then dk = "f1 like '%" & .Range("C7") & "%' and f3 like '%" & .Range("H7") & "%' and f24 = #" & .Range("G5") & "#"
        If .Range("G5") = "" And .Range("G6") <> "" Then dk = "f1 like '%" & .Range("C7") & "%' and f3 like '%" & .Range("H7") & "%' and f24 <= #" & .Range("G6") & "#"
        If .Range("G5") = "" And .Range("G6") = "" Then dk = "f1 like '%" & .Range("C7") & "%' and f3 like '%" & .Range("H7") & "%'"
        Set cn = CreateObject("ADODB.Connection")
        cn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";")
        .Range("A23").CopyFromRecordset cn.Execute("select f24,f18,f3,f4,f6,f13,f5,f11,f10,f26,f27 from [Data$A3:AA] where " & dk)
        Set cn = Nothing
    End With
    Sheets("Data").Columns("A:A").NumberFormat = "General"
End Sub
 
Bạn thử code này coi> lưu ý là cột X phải đúng kiểu datae nhé. Của bạn mới chỉ là text thui

Cảm ơn bạn đã quan tâm. Mình đã chuyển ngày sang kiểu date và test thử nhưng dữ liệu không thực hiện việc chọn ngày.
Bạn vui lòng xem thêm giùm mình nhé
 

File đính kèm

Cảm ơn bạn đã quan tâm. Mình đã chuyển ngày sang kiểu date và test thử nhưng dữ liệu không thực hiện việc chọn ngày.
Bạn vui lòng xem thêm giùm mình nhé
Không hiểu ý bạn ở đây là gì chứ mình chạy thấy có vấn đề gì với chọn ngày đâu. Vẫn chạy bình thường. hic
 
Không hiểu ý bạn ở đây là gì chứ mình chạy thấy có vấn đề gì với chọn ngày đâu. Vẫn chạy bình thường. hic

Mình chọn Mã hàng & Batch & ngày từ ngày 02/02/2017 đến ngày 03/02/2017 nhưng dữ liều lại lấy tất cả các ngày & khi chọn từ ngày (bỏ trống) đến ngày 03/02/2017 thì dữ liệu đúng ra chỉ lấy các ngày trước ngày 03/02/2017 nhưng lại lấy tất cả các ngày.

Bạn xem thêm giùm mình nhé (trong file có comment điều kiện)
Cảm ơn bạn
 
Mình chọn Mã hàng & Batch & ngày từ ngày 02/02/2017 đến ngày 03/02/2017 nhưng dữ liều lại lấy tất cả các ngày & khi chọn từ ngày (bỏ trống) đến ngày 03/02/2017 thì dữ liệu đúng ra chỉ lấy các ngày trước ngày 03/02/2017 nhưng lại lấy tất cả các ngày.

Bạn xem thêm giùm mình nhé (trong file có comment điều kiện)
Cảm ơn bạn
Bạn xem video................
 

File đính kèm

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

Back
Top Bottom