( Giúp đỡ ) Tìm kiếm dữ liệu

Liên hệ QC

tuanthao103

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
14/1/13
Bài viết
5
Được thích
0
Xin chào mọi người.
Hôm nay mình có 1 bài làm muốn nhờ mọi người giúp đỡ.
Mình có gửi kèm theo file. Nội dung mình muốn là khi mình nhập dữ liệu vào B2 thì mình sẽ nhân được kết quả ở bên dưới với nội dung Tên hàng - Mã hàng được lấy từ column D và E
Ví dụ.
Mình nhập ' aaa '
Mình sẽ nhận được kết quả là:
Tên hang - Mã hàng
[TABLE="class: outer_border, width: 10"]
[TR]
[TD]aaa1[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985465[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa2[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985466[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa3[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985467[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa4[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985468[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa5[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985469[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa6[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985470[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa7[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985471[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[/TR]
[/TABLE]
 

File đính kèm

Xin chào mọi người.
Hôm nay mình có 1 bài làm muốn nhờ mọi người giúp đỡ.
Mình có gửi kèm theo file. Nội dung mình muốn là khi mình nhập dữ liệu vào B2 thì mình sẽ nhân được kết quả ở bên dưới với nội dung Tên hàng - Mã hàng được lấy từ column D và E
Ví dụ.
Mình nhập ' aaa '
Mình sẽ nhận được kết quả là:
Tên hang - Mã hàng
[TABLE="class: outer_border, width: 10"]
[TR]
[TD]aaa1[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985465[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa2[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985466[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa3[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985467[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa4[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985468[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa5[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985469[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa6[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985470[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa7[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985471[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[/TR]
[/TABLE]
Dùng công thức Vlookup
 

File đính kèm

Xin chào mọi người.
Hôm nay mình có 1 bài làm muốn nhờ mọi người giúp đỡ.
Mình có gửi kèm theo file. Nội dung mình muốn là khi mình nhập dữ liệu vào B2 thì mình sẽ nhân được kết quả ở bên dưới với nội dung Tên hàng - Mã hàng được lấy từ column D và E
Ví dụ.
Mình nhập ' aaa '
Mình sẽ nhận được kết quả là:
Tên hang - Mã hàng
Mở File, sau đó nhập thử "aaa" hoặc "bbb"..........và xem kết quả.
Nhớ Enable macros trước khi mở File nhé!

-------------------------------------
P/S: Các bạn tải File dưới nhé! File trên code nhầm tý tẹo!
 

File đính kèm

Lần chỉnh sửa cuối:
Công thức bạn dùng chưa chuẩn lắm. Bạn thử gõ "ccc" hoặc "ddd" thì sẽ thấy.
-------------------------------------------------------

Nguyên nhân do dữ liệu của tác giả nhập có khoảng trống giữa 3 kí tự đầu với các kí tự phía sau.
Tóm lại nếu làm theo cách của bạn thì tác giả phải nhập liệu thật chuẩn. Chưa kể nếu mã phía sau nó không phải là các con số tăng dần như trên thì công thức cũng "tèo".
Theo quan điểm cá nhân, tôi nghĩ VBA sẽ khắc phục tốt các nhược điểm nêu trên!
 
Lần chỉnh sửa cuối:
Công thức bạn dùng chưa chuẩn lắm. Bạn thử gõ "ccc" hoặc "ddd" thì sẽ thấy.
-------------------------------------------------------

Nguyên nhân do dữ liệu của tác giả nhập có khoảng trống giữa 3 kí tự đầu với các kí tự phía sau.
Tóm lại nếu làm theo cách của bạn thì tác giả phải nhập liệu thật chuẩn. Chưa kể nếu mã phía sau nó không phải là các con số tăng dần như trên thì công thức cũng "tèo".
Theo quan điểm cá nhân, tôi nghĩ VBA sẽ khắc phục tốt các nhược điểm nêu trên!
Đúng là công thức còn sót, nhưng cần thiết vẫn có thể sửa chữa được.
Lập công thức này là theo đầu bài cụ thể đề ra thế nào thì xử lý như thế, mẫu đầu bài chắc bạn thấy là số TT là liên tục.
Nếu chủ topic thay đổi đầu bài tôi vẫn dùng công thức giải quyết được, chắc chắn vậy, kể cả số liệu rời rạc.
Bạn dùng sự kiện target change trong bài cũng có vấn đề : Nếu xóa B2 bằng phím Del sẽ thấy
--------------
Kể cả khi bạn nhập "aaa" hoặc "bbb" thì target change đâu có stop.
 
Lần chỉnh sửa cuối:
Bạn nhìn thử xem trên thanh công thức sẽ thấy dữ liệu không dừng. Có lẽ là do code trong sheet1 chưa được hợp lý
Sao tôi không thấy hiện tượng này nhỉ?

Code sửa lại thế này!
----------------------------------------------
Code tại sheet1:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$2" Then
Call Find
End If
End Sub
---------------------
Code tại modul:
Mã:
Public Sub Find()
Dim i As Long, data(), kq(1 To 100, 1 To 2)
Dim j As Long, ma As Range
Set ma = Sheet1.[B2]
With Sheet1
    data = .Range("D2:E" & .Range("E65500").End(xlUp).Row)
For i = 1 To UBound(data)
    If Left(data(i, 1), 3) = ma Then
        j = j + 1: kq(j, 1) = data(i, 1): kq(j, 2) = data(i, 2)
    End If
Next i
    .Range("B3:C" & .Range("C65500").End(xlUp).Row).ClearContents
    .Range("B3").Resize(j, 2) = kq
End With
End Sub
 
Lần chỉnh sửa cuối:
Xin chào mọi người.
Hôm nay mình có 1 bài làm muốn nhờ mọi người giúp đỡ.
Mình có gửi kèm theo file. Nội dung mình muốn là khi mình nhập dữ liệu vào B2 thì mình sẽ nhân được kết quả ở bên dưới với nội dung Tên hàng - Mã hàng được lấy từ column D và E
Ví dụ.
Mình nhập ' aaa '
Mình sẽ nhận được kết quả là:
Tên hang - Mã hàng
[TABLE="class: outer_border, width: 10"]
[TR]
[TD]aaa1
[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985465
[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa2[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985466[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa3[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985467[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa4[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985468[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa5[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985469[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa6[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985470[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD]aaa7[/TD]
[TD][TABLE="width: 107"]
[TR="class: outer_border"]
[TD="width: 107, align: right"]45985471[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[/TR]
[/TABLE]

nếu tên hàng được xếp liên tục
Mã:
B4=IF(COUNTIF($D$2:$D$85,$B$2&"*")>ROW(1:1),INDEX(D$2:D$85,MATCH($B$2&"*",$D$2:$D$85,0)+ROW(1:1)-1),"")
kéo qua phải, kéo xuống nhiều nhiêu, để đó
 
Thử với công thức và Name xem sao.
B2 nhập càng nhiều ký tự thì tìm kiếm càng tốt.
 

File đính kèm

Lần chỉnh sửa cuối:
Công thức cho cả số liệu rời rạc hoặc liên tục, chưa tính tới trường hợp bị trùng tên hàng
 

File đính kèm

Cảm ơn các bạn đã giúp đỡ.
File của bạn @Ba tê mình áp dụngthaazsy hợp nhất.
File của bạn @gtri khi mình ko nhập dữ liệu gì thì bị vậy.
View attachment 127548

Nhưng theo các bạn có cách nào tìm bất kì từ nào trong tên hàng thay vì phải tìm bằng chữ cái đầu tiên ko vậy??. Và có thể thay đổi mã hàng từ kiết quả tìm kiếm ko vây.???
Mình gửi kèm file đầy đủ nhờ mọi người giúp đỡ.
Điều tối thiểu bạn cũng không biết. Thôi để người khác giúp bạn vậy.
Tôi xin rút.
 
Cảm ơn các bạn đã giúp đỡ.
File của bạn @Ba tê mình áp dụngthaazsy hợp nhất.
File của bạn @gtri khi mình ko nhập dữ liệu gì thì bị vậy.
View attachment 127548

Nhưng theo các bạn có cách nào tìm bất kì từ nào trong tên hàng thay vì phải tìm bằng chữ cái đầu tiên ko vậy??. Và có thể thay đổi mã hàng từ kiết quả tìm kiếm ko vây.???
Mình gửi kèm file đầy đủ nhờ mọi người giúp đỡ.

nếu tên hàng không trùng
Mã:
B4=IF(COUNTIF($F$2:$F$712,"*"&$B$2&"*")>ROW(1:1),INDEX(OFFSET($F$1:$F$712,MATCH(B3,$F$1:$F$712,0),),MATCH("*"&$B$2&"*",OFFSET($F$1:$F$712,MATCH(B3,$F$1:$F$712,0),),0)),"")
nếu mã hàng không trùng (nhưng trong data của bạn thấy trùng nhau nhiều)
Mã:
B4=IF(COUNTIF($F$2:$F$712,"*"&$B$2&"*")>ROW(1:1),INDEX(OFFSET($F$1:$F$712,MATCH(C3,$G$1:$G$712,0),),MATCH("*"&$B$2&"*",OFFSET($F$1:$F$712,MATCH(C3,$G$1:$G$712,0),),0)),"")
C4=VLOOKUP(B4,$F$2:$G$712,2,0)
 
nếu tên hàng không trùng
Mã:
B4=IF(COUNTIF($F$2:$F$712,"*"&$B$2&"*")>ROW(1:1),INDEX(OFFSET($F$1:$F$712,MATCH(B3,$F$1:$F$712,0),),MATCH("*"&$B$2&"*",OFFSET($F$1:$F$712,MATCH(B3,$F$1:$F$712,0),),0)),"")

để cho ngắn một chút thì đặt name
Mã:
tại B4, đặt name dong=MATCH(Sheet1!$B3,Sheet1!$F$1:$F$712,0)

cthu71c
Mã:
B4=IF(COUNTIF($F$2:$F$712,"*"&$B$2&"*")>=ROW(1:1),INDEX(OFFSET($F$1,Dong,,712-Dong),MATCH("*"&$B$2&"*",OFFSET($F$1,Dong,,712-Dong),0)),"")
 
Nhưng theo các bạn có cách nào tìm bất kì từ nào trong tên hàng thay vì phải tìm bằng chữ cái đầu tiên ko vậy??. Và có thể thay đổi mã hàng từ kiết quả tìm kiếm ko vây.???
Mình gửi kèm file đầy đủ nhờ mọi người giúp đỡ.
Nếu bạn đặt vấn đề cụ thể ngay từ đầu như thế này có lẽ mọi người chẳng cần tốn thời gian suy nghĩ công thức, rồi hàm rồi code mất công.
Chỉ cần dùng AutoFilter ----> CustomFilter là múa lên được rồi!!!
 
Xin nhờ mọi người thêm chút nữa.
Data của mình bây giờ phát sinh thêm 1 column 'giá nhập' nữa. Mình muốn cho vào cùng dữ liệu tìm kiếm.
Mong mọi người giúp đỡ.
Dùng VBA đi, Enable Macros khi mở file.
Mọi chuyện như cũ, thay đổi ô B2 là code chạy.
 

File đính kèm

Web KT

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

Back
Top Bottom