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

  • Thread starter apple2410
  • Ngày gửi
A

apple2410

Guest
18/10/16
2
0
1
37
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
 
Khóa học Quản trị dòng tiền
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
Excel 2010: Auto filter
 
K

Kin7

Cao cấp
8/5/15
5,194
987
113
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.
 
A

apple2410

Guest
18/10/16
2
0
1
37
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

  • VTHH.xls
    157 KB · Lượt xem: 68
K

Kin7

Cao cấp
8/5/15
5,194
987
113
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à.
 
thinhvd

thinhvd

Cao cấp
25/11/09
1,336
234
63
Hà Nội
bluesofts.net
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
 

Xem nhiều

Webketoan Zalo OA