Lọc dữ liệu thỏa mãn điều kiện trong mảng

apple2410

Sơ cấp
Dear all

Mình có 1 bảng data số lượng hàng hóa rất lớn, nhiều loại mã hàng khác nhau.
Bây giờ mình muốn gõ 1 từ khóa nào đó thì tất cả những thông tin liên quan đến từ khóa đó sẽ được show ra giống như trong phần mềm

Ví dụ: mình có các loại hàng hóa như sau:
Bóng đèn H4 12V, Bóng đèn H724V, Bóng đèn H11 24V 100W.... Dây điện loại 1, dây điện loại 2......,

Khi mình gõ từ khóa "Bóng đèn" vào ô A2 thì tất cả các loại hàng hóa có từ "bóng đèn" sẽ được show ra.
Vậy cho mình hỏi công thức tại ô A2 là gì hay phải dùng phương pháp lọc như thế nào
Mong mọi người giúp đỡ. Chân thành cảm ơn
 
Excel 2010: Auto filter
 
Dear all

Mình có 1 bảng data số lượng hàng hóa rất lớn, nhiều loại mã hàng khác nhau.
Bây giờ mình muốn gõ 1 từ khóa nào đó thì tất cả những thông tin liên quan đến từ khóa đó sẽ được show ra giống như trong phần mềm

Ví dụ: mình có các loại hàng hóa như sau:
Bóng đèn H4 12V, Bóng đèn H724V, Bóng đèn H11 24V 100W.... Dây điện loại 1, dây điện loại 2......,

Khi mình gõ từ khóa "Bóng đèn" vào ô A2 thì tất cả các loại hàng hóa có từ "bóng đèn" sẽ được show ra.
Vậy cho mình hỏi công thức tại ô A2 là gì hay phải dùng phương pháp lọc như thế nào
Mong mọi người giúp đỡ. Chân thành cảm ơn
Rất nhiều cách.
Quan trọng là dữ liệu bạn như thế nào, nhiều hay ít, bạn phù hợp vs cách nào.
Up file lên.
 
VD: Trong bảng này. khi mình gõ từ "Toyota" và ô C3 thì tất cả những dòng nào có chữ Toyota sẽ được liệt kê bên dưới, hoặc khi mình gõ từ Audi thì tất cả những dòng nào có chứa chữ Audi sẽ được show

Kin7 có cách giải quyết nào không?
 

Đính kèm

VD: Trong bảng này. khi mình gõ từ "Toyota" và ô C3 thì tất cả những dòng nào có chữ Toyota sẽ được liệt kê bên dưới, hoặc khi mình gõ từ Audi thì tất cả những dòng nào có chứa chữ Audi sẽ được show

Kin7 có cách giải quyết nào không?
Có bạn ạ.
Đơn giản mà.
 
Dear all

Mình có 1 bảng data số lượng hàng hóa rất lớn, nhiều loại mã hàng khác nhau.
Bây giờ mình muốn gõ 1 từ khóa nào đó thì tất cả những thông tin liên quan đến từ khóa đó sẽ được show ra giống như trong phần mềm

Ví dụ: mình có các loại hàng hóa như sau:
Bóng đèn H4 12V, Bóng đèn H724V, Bóng đèn H11 24V 100W.... Dây điện loại 1, dây điện loại 2......,

Khi mình gõ từ khóa "Bóng đèn" vào ô A2 thì tất cả các loại hàng hóa có từ "bóng đèn" sẽ được show ra.
Vậy cho mình hỏi công thức tại ô A2 là gì hay phải dùng phương pháp lọc như thế nào
Mong mọi người giúp đỡ. Chân thành cảm ơn
Dùng VBA là hay nhất
Ví dụ như đoạn code này.
Private Sub txtSearch_Change()
Dim ws As Worksheet
Dim iRow As Long, iCol As Long
Dim iRowsCount As Long, iLastRow As Long, iExcelRows As Long
Dim arrInvoices() 'Mang dong

Set ws = ThisWorkbook.Sheets("CSDL")
iExcelRows = ws.Columns(1).Rows.Count 'So dong trong sheet cua Excel
'Lay dong cuoi cua du lieu
iLastRow = ws.Range("A" & iExcelRows & ":I" & iExcelRows).End(xlUp).Row
'Tim so dong cua mang = thoa man dieu kien tim kiem
iRowsCount = 0

'Nhat so dong thoa man dieu kien <=> di tim kich co mang
For iRow = 4 To iLastRow
If FindValue(ws, iRow, txtSearch.Value) Then 'Tim tren cac cot
iRowsCount = iRowsCount + 1
End If
Next iRow
lbxInvoices.RowSource = ""
lbxInvoices.Clear 'Xoa du lieu trong ListBox
If iRowsCount = 0 Then Exit Sub 'Neu khong co dong thi thoat

'Tao mang thuc
ReDim arrInvoices(1 To iRowsCount, 1 To 9) As Variant
'Dien gia tri tuf bang tin vao mang arrInvoices khi thoa man dieu kien tim kiem
iRowsCount = 0
For iRow = 4 To iLastRow
If FindValue(ws, iRow, txtSearch.Value) Then
iRowsCount = iRowsCount + 1
For iCol = 1 To 9
arrInvoices(iRowsCount, iCol) = ws.Cells(iRow, iCol).Value
Next iCol
End If
Next iRow

lbxInvoices.List = arrInvoices

'Copy du lieu
Dim rngSrc As Range, rngDest As Range
Set rngSrc.Value = arrInvoices
Set rngDest = ThisWorkbook.Sheets("Sheet1").Range("A1")

AssignValues rngSrc, rngDest

End Sub
Function FindValue(ByVal ws As Worksheet, ByVal iRow As Long, ByVal ValueToFind As String) As Boolean
'TRUE - TIM DUOC; FALSE - KHONG TIM DUOC
Dim J As Long
FindValue = False
ValueToFind = LCase(ValueToFind)
For J = 1 To 9
If LCase(ws.Cells(iRow, J)) Like "*" & ValueToFind & "*" Then
FindValue = True
Exit Function
End If
Next J
End Function
 
Back
Top