Tìm kiếm sản phẩm theo từ khóa liên quan? (1 người xem)

Liên hệ QC

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

hoatinhyeu862000

Thành viên hoạt động
Tham gia
19/7/13
Bài viết
135
Được thích
3
Như tiêu đề hiện tại em có 1 file excel liên quan đến thống kê danh mục và giá vlxd gồm hơn 3000 mã, tuy nhiên em mong muốn anh chị và các thầy cô giúp đỡ em có thể đánh từ khó đó vào 1 ô định sẵn và nó sẽ liệt kêt sản phẩm liên quan ra 1 vùng cũng định sẵn được không ạ. em đã làm 1 file VD để các thầy cô, anh chị giúp đỡ.
Do khả năng diễn đạt chưa cao nên mong thầy cô bỏ qua giúp em ạ.
Kính mong anh chị giúp đỡ em nhanh 1 chút do chiều em phải làm rồi ạ.
Em xin cảm ơn.
 

File đính kèm

Như tiêu đề hiện tại em có 1 file excel liên quan đến thống kê danh mục và giá vlxd gồm hơn 3000 mã, tuy nhiên em mong muốn anh chị và các thầy cô giúp đỡ em có thể đánh từ khó đó vào 1 ô định sẵn và nó sẽ liệt kêt sản phẩm liên quan ra 1 vùng cũng định sẵn được không ạ. em đã làm 1 file VD để các thầy cô, anh chị giúp đỡ.
Do khả năng diễn đạt chưa cao nên mong thầy cô bỏ qua giúp em ạ.
Kính mong anh chị giúp đỡ em nhanh 1 chút do chiều em phải làm rồi ạ.
Em xin cảm ơn.
Góp vui một phương án:
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
Dim sArr, Tmp, dArr(), i As Long, j As Long, k As Long, l As Long
If Target.Count > 1 Or Intersect(Target, [G2]) Is Nothing Then Exit Sub
[F4:I10000].Clear 'Xoa du lieu hien co
If IsEmpty(Target) Then Exit Sub
Tmp = Split(WorksheetFunction.Trim([G2]), " ") 'Tach chuoi nhap vao theo tung tu khoa
sArr = [A3:D10000].Value 'Gan cot A:D vao mang sArr
ReDim dArr(1 To UBound(sArr), 1 To 4)
For i = 1 To UBound(sArr)
If IsEmpty(sArr(i, 2)) Then Exit For 'Neu khong co ten hang thi dung lai
For j = 0 To UBound(Tmp)
If InStr(1, sArr(i, 2), Tmp(j), vbTextCompare) > 0 Then 'Neu co tu khoa tai cot thu 2
k = k + 1 'Them 1 hang trong mang dArr
For l = 1 To 4 'Gan gia tri tu sArr vao dArr
dArr(k, l) = sArr(i, l)
Next
Exit For 'Sau khi gan xong thi xet hang tiep theo trong mang sArr
End If
Next
Next
If k = 0 Then Exit Sub 'Neu khong co dong nao co tu khoa thi thoat
With [F4:I4].Resize(k)
.Value = dArr 'Gan gia tri
.Borders.LineStyle = 1 'Ke khung
End With
End Sub[/GPECODE]
 

File đính kèm

Upvote 0
Cảm ơn anh nghĩa phúc tuyệt vời ạ, cảm ơn anh cảm ơn diễn đàn
 
Upvote 0
Góp vui một phương án:
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
Dim sArr, Tmp, dArr(), i As Long, j As Long, k As Long, l As Long
If Target.Count > 1 Or Intersect(Target, [G2]) Is Nothing Then Exit Sub
[F4:I10000].Clear 'Xoa du lieu hien co
If IsEmpty(Target) Then Exit Sub
Tmp = Split(WorksheetFunction.Trim([G2]), " ") 'Tach chuoi nhap vao theo tung tu khoa
sArr = Sheets("DuLieu").[A3:D10000].Value 'Gan cot A:D vao mang sArr
ReDim dArr(1 To UBound(sArr), 1 To 4)
For i = 1 To UBound(sArr)
If IsEmpty(sArr(i, 2)) Then Exit For 'Neu khong co ten hang thi dung lai
For j = 0 To UBound(Tmp)
If InStr(1, sArr(i, 2), Tmp(j), vbTextCompare) > 0 Then 'Neu co tu khoa tai cot thu 2
k = k + 1 'Them 1 hang trong mang dArr
For l = 1 To 4 'Gan gia tri tu sArr vao dArr
dArr(k, l) = sArr(i, l)
Next
Exit For 'Sau khi gan xong thi xet hang tiep theo trong mang sArr
End If
Next
Next
If k = 0 Then Exit Sub 'Neu khong co dong nao co tu khoa thi thoat
With [F4:I4].Resize(k)
.Value = dArr 'Gan gia tri
.Borders.LineStyle = 1 'Ke khung
End With
End Sub[/GPECODE]

Anh ơi giúp em chút trong trường hợp lấy dữ liệu từ Sheet khác gán vào mảng thì sao ạ. Nó không chạy, nhờ anh chỉ bảo giúp
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Xin chỉ giúp yêu cầu trên với ạ
 
Upvote 0
Xin lỗi em gán nhầm cột trong code. Các anh cho em hỏi em thêm có cách nào nối mảng được không ạ, em đang cần tìm tất cả các loại theo yêu cầu
Mã:
    sArr = Sheets("VatLieu").[b6:f10000].Value + Sheets("VatLieu").[h6:l10000].Value + Sheets("VatLieu").[n6:Q10000].Value
 

File đính kèm

Upvote 0
Xin lỗi em gán nhầm cột trong code. Các anh cho em hỏi em thêm có cách nào nối mảng được không ạ, em đang cần tìm tất cả các loại theo yêu cầu
Mã:
    sArr = Sheets("VatLieu").[b6:f10000].Value + Sheets("VatLieu").[h6:l10000].Value + Sheets("VatLieu").[n6:Q10000].Value

đã là code thì múc hết . nhưng t muốn biết mục đích thực tế cho việc này là gì ? ghi ra các sản phẩm có liên quan vào shet1 rồi sau đó làm gì ?
 
Upvote 0
đã là code thì múc hết . nhưng t muốn biết mục đích thực tế cho việc này là gì ? ghi ra các sản phẩm có liên quan vào shet1 rồi sau đó làm gì ?
Mục đích của em là lập dự toán công trình, do có quá nhiều vật liệu, máy thi công và nhân công. Em tách ra thành 3 vùng dữ liệu trong Sheet Vật Liệu cho dễ nhìn. Nhờ các anh code ghép mảng làm sao đưa 3 vùng dữ liệu vào thành 1 có thể tìm kiếm được
Chân thành cám ơn!
 
Upvote 0
sử dụng file này và cho ý kiến , tìm kiếm không phân biệt có dấu và không dấu
gõ "ong thep" để tìm mặt hàng có chứa "....ống thép...." viết liền nhau
textDinhLien.jpg

gõ ong thep để tìm mặt hàng có chứa ít nhất 1 trong 2 từ ống hoặc thép

textRoiRac.jpg

gõ "ong thep" van để tìm những mặt hàng có chứa "ống thép" viết liền nhau hoặc có chứa từ ván

textMix.jpg
 

File đính kèm

Upvote 0
Tuyệt vời ông mặt trời! Thanks a
Mà nếu trường hợp không dùng textbox thì có được không a!
 
Lần chỉnh sửa cuối:
Upvote 0
Tuyệt vời ông mặt trời! Thanks a
Mà nếu trường hợp không dùng textbox thì có được không a!

không dùng textbox thì phải đợi gõ xong hết từ khóa và rời select khỏi ô C2 mới xem được kết quả . giống như kiểu trận bóng đá từ đêm qua đến sáng nay ngủ dậy mới xem lại
dùng textbox thì giống như câu gì trên mạng hay nói : "quá nhanh quá ....."
 
Upvote 0
không dùng textbox thì phải đợi gõ xong hết từ khóa và rời select khỏi ô C2 mới xem được kết quả . giống như kiểu trận bóng đá từ đêm qua đến sáng nay ngủ dậy mới xem lại
dùng textbox thì giống như câu gì trên mạng hay nói : "quá nhanh quá ....."
Em hiểu cách của anh rất hay. Anh cho em code không dùng textbox nữa được không ạ.
Thanks a
 
Upvote 0

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

Back
Top Bottom