Tìm kiếm dữ liệu như cách của Filter trong Excel

Liên hệ QC

KhoiSMC

Thành viên thường trực
Tham gia
19/6/09
Bài viết
248
Được thích
32
Chào các bạn GPE,

Để tìm kiếm theo các từ input của mình tại một ô và kết quả tìm kiếm trên vùng dữ liệu định sẵn sẽ tự hiện lên kq mong muôn trong khi bạn đang gõ từ khóa sẽ nhanh hơn khi lọc từng cột theo cách sẵn có của fillter trong excel.
Các bạn giúp mình xem có hàm nào để thực hiện được việc này không ạ? Mình mô tả các thao tác và kết quả tương ứng trong file đính kèm.
Mong các bạn ktra file để hiểu hơn ạ.

Cám ơn các bạn nhiều,
Khoi
 

File đính kèm

Gửi bạn!

Mình ghi macro và chỉnh sửa lại tí bạn xem ở sheet3 nha, mình chỉ thử 4 điều kiện ở các ô A2:D2, lọc advanced filter nên phải có tiêu đề ở A1:D1.

Nếu bạn chỉ lọc để xem thì bố trí dữ liệu và điều kiện cùng 1 sheet (phải thay đổi lại action filter) để thuận tiện quan sát hơn.
 

File đính kèm

Bạn xem theo file, chỉ mới 4 tiêu chí mà thôi

& lần sau nhớ chính xác hơn trong câu viết, ví dụ:

[thongbao]Khi nhập dữ liệu vào ô C2, sẽ tìm kiếm các từ gõ vào trong vùng dữ liệu sheet2:A2:A100 và hiện lên các gợi ý theo từ đang gõ (giống như khi gõ trong fillter). Kết thúc gõ tại ô C2 thì kq hiển thị như mô tả[/thongbao]
 

File đính kèm

Gửi bạn!

Mình ghi macro và chỉnh sửa lại tí bạn xem ở sheet3 nha, mình chỉ thử 4 điều kiện ở các ô A2:D2, lọc advanced filter nên phải có tiêu đề ở A1:D1.

Nếu bạn chỉ lọc để xem thì bố trí dữ liệu và điều kiện cùng 1 sheet (phải thay đổi lại action filter) để thuận tiện quan sát hơn.

Xin chào bạn mickeybh,

Cám ơn bạn đã đưa ra được giải pháp. Đúng vậy theo nhận xét của bạn thì đúng là nên đưa vào 1 sheet dữ liệu sẽ thuận tiện hơn. Nhờ bạn giúp mình xử lý được vấn đề này không?
và bạn ơi làm sao để có thể ghi thêm macro cho các cột (title n, Description) nữa nhỉ? Khi mình thêm các cột title thêm vào nữa thì làm sao bổ sung được nhỉ?

Thanks
Khoi
 
& lần sau nhớ chính xác hơn trong câu viết, ví dụ:

[thongbao]Khi nhập dữ liệu vào ô C2, sẽ tìm kiếm các từ gõ vào trong vùng dữ liệu sheet2:A2:A100 và hiện lên các gợi ý theo từ đang gõ (giống như khi gõ trong fillter). Kết thúc gõ tại ô C2 thì kq hiển thị như mô tả[/thongbao]

Cám ơn bạn nhé,

hi, đúng vậy mình gõ nhầm đấy. Bạn ơi làm sao có thể tìm kiếm thêm được các cột title n hay description nữa nhỉ. Khi mình thêm các cột vào nữa liệu phải xử lý ntn a.

Khoi
 
Bạn xem file đính kèm nha. Dữ liệu và điều kiện lọc nằm trên sheet3 không liên quan gì đến sheet khác.
 

File đính kèm

Thay toàn bộ code trong sheet3 bằng code sau:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)

With Application
.ScreenUpdating = False
.EnableEvents = False

If Target.Address = "$A$2" Or Target.Address = "$B$2" Or Target.Address = "$C$2" Or Target.Address = "$D$2" Or Target.Address = "$E$2" Or Target.Address = "$F$2" Or Target.Address = "$G$2" Then
On Error Resume Next
ActiveSheet.ShowAllData
Range("A5", Range("G65536").End(xlUp)).AdvancedFilter 1, Range("A1:G2"), Unique:=False
End If

.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Để khắc phục lỗi khi gõ điều kiện tìm kiếm bị sai (điều kiện không có trong dữ liệu).
 
Thay toàn bộ code trong sheet3 bằng code sau:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)

With Application
.ScreenUpdating = False
.EnableEvents = False

If Target.Address = "$A$2" Or Target.Address = "$B$2" Or Target.Address = "$C$2" Or Target.Address = "$D$2" Or Target.Address = "$E$2" Or Target.Address = "$F$2" Or Target.Address = "$G$2" Then
On Error Resume Next
ActiveSheet.ShowAllData
Range("A5", Range("G65536").End(xlUp)).AdvancedFilter 1, Range("A1:G2"), Unique:=False
End If

.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Để khắc phục lỗi khi gõ điều kiện tìm kiếm bị sai (điều kiện không có trong dữ liệu).


Mình góp ý bạn có thể thay đoạn này
If Target.Address = "$A$2" Or Target.Address = "$B$2" Or Target.Address = "$C$2" Or Target.Address = "$D$2" Or Target.Address = "$E$2" Or Target.Address = "$F$2" Or Target.Address = "$G$2" Then
Thành chon gọn
If Not Intersect(Target, [A2:G2]) Is Nothing Then

Nên đặt
With Application
.ScreenUpdating = False
.EnableEvents = False
Trong mênh đề IF
 
Hay thật đấy, kiểu này phải đi học VBA cho excel thôi.

Các bạn siêu thiệt.
Khoi
 
Thay toàn bộ code trong sheet3 bằng code sau:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)

With Application
.ScreenUpdating = False
.EnableEvents = False

If Target.Address = "$A$2" Or Target.Address = "$B$2" Or Target.Address = "$C$2" Or Target.Address = "$D$2" Or Target.Address = "$E$2" Or Target.Address = "$F$2" Or Target.Address = "$G$2" Then
On Error Resume Next
ActiveSheet.ShowAllData
Range("A5", Range("G65536").End(xlUp)).AdvancedFilter 1, Range("A1:G2"), Unique:=False
End If

.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Để khắc phục lỗi khi gõ điều kiện tìm kiếm bị sai (điều kiện không có trong dữ liệu).

Đúng vậy đã khắc phục được lỗi tìm kiếm bị sai.
Tuy nhiên sao đến cột "Description" khi gõ điều kiện tìm kiếm vào ô G2 lại không ra được kết quả mong muốn nhỉ.
Bạn xem file mình đã thử ở đính kèm xem nhé.

Cám ơn bạn nhiều.
Khoi
 

File đính kèm

cụm từ "and" nằm trong 1 chuỗi chứ không phải bắt đầu. Muốn tìm chuỗi có từ and bạn gõ vào điều kiện *and là được.
 
cụm từ "and" nằm trong 1 chuỗi chứ không phải bắt đầu. Muốn tìm chuỗi có từ and bạn gõ vào điều kiện *and là được.

ui rùi ơi, thế mà mình không biết đúng rồi mickeybh bạn a.
Có một việc nữa mình mong muốn đã nêu trong yêu cầu nhưng k biết bạn có giải quyết được không?
nghĩa là:
Khi nhập dữ liệu vào ô A2, sẽ tìm kiếm các từ gõ vào trong vùng dữ liệu sheet3 A6:A65536 và hiện lên các gợi ý theo từ đang gõ (giống như khi gõ trong fillter).
ví dụ:
Tại ô B2 gõ từ "c" thì bên cạnh ô B2 này hiện ra một drop-down-list hiện ra các lựa chọn là
cvc.ca
cvc.nano
cvc.t.toan
cvc.tt
cvc.vl
ga.cp

sau đó có thể chọn được trên danh sách thu gọn đó.

Khoi
 
Cá nhân mình cho rằng không làm được như yêu cầu bạn nói đâu. Khi bạn gõ nội dung vào 1 ô thì ô đó ở trạng thái edit mà chẳng có sự kiện nào để xử lý vấn đề này đâu.
Chỉ có thể làm như sau: Tại ô B2 bạn gõ từ "c" xong rồi bấm vào menu của data validation đổ xuống nó sẽ hiển thị các cụm từ lựa chọn như bạn đã nêu trên mà thôi.
Mà nếu đã như vậy thì cũng chẳng có gì khác hơn (khác khi mình lấy danh mục duy nhất để đưa vào list/data validation) khi bạn gõ nội dung trong ô B2 rồi nó liệt kê ra đâu. Dữ liệu và điều kiện bố trí trên 1 sheet để bạn quan sát sự thay đổi đó mà.
 
Cá nhân mình cho rằng không làm được như yêu cầu bạn nói đâu. Khi bạn gõ nội dung vào 1 ô thì ô đó ở trạng thái edit mà chẳng có sự kiện nào để xử lý vấn đề này đâu.
Chỉ có thể làm như sau: Tại ô B2 bạn gõ từ "c" xong rồi bấm vào menu của data validation đổ xuống nó sẽ hiển thị các cụm từ lựa chọn như bạn đã nêu trên mà thôi.
Mà nếu đã như vậy thì cũng chẳng có gì khác hơn (khác khi mình lấy danh mục duy nhất để đưa vào list/data validation) khi bạn gõ nội dung trong ô B2 rồi nó liệt kê ra đâu. Dữ liệu và điều kiện bố trí trên 1 sheet để bạn quan sát sự thay đổi đó mà.

Uh, đúng như bạn nói. Giờ mình hiểu rõ hơn hoạt động của trạng thái khi sử dụng excel. còn phương án dùng data validation mình cũng đã thử rồi.
Thanks bạn, như vậy đề tài tôi nêu ra đã được bạn giải quyết rồi.

Cám ơn bạn nhiều
Khoi
 
Web KT

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

Back
Top Bottom