Các câu hỏi về hàm dò tìm dữ liệu (Lookup, Vlookup, Hlookup...)

  • Thread starter Thread starter songlon
  • Ngày gửi Ngày gửi
Liên hệ QC

Closed poll

  • 1

    Votes: 1 100.0%
  • 2

    Votes: 0 0.0%

  • Total voters
    1
  • Poll closed .
Status
Không mở trả lời sau này.
chào bạn
mình cũng chỉ mới tham gia thôi, nhưng hy vọng là mình có thể giúp được bạn
hàm VLOOKUP dùng để thực hiện việc tìm kiếm một giá trị trong cột đầu tiên của vùng cần tìm và cho kết quả tương ứng của cột chỉ định.
VLOOKUP=( giá trị tìm, vùng cần tìm, cột cần lấy,loại cần tìm)
loại cần tìm ở đây là mình muốn tìm giá trị tuyệt đối thì dùng 0, còn tương đối thì dùng 1.
 
Hỏi về cách sử dụng hàm vlookup

Làm cách nào để liệt kê tất cả những PC mà một người đang sử dụng đây?
Có ai biết chỉ mình với.
Xem attached file nha.
Thanks mọi người trước nha.
 

File đính kèm

File đính kèm

Nên thay
=IF($A23=VLOOKUP((MID(B$22,3,LEN(B$22))),$A$4:$B$12,2,0),"X","")
bởi
=IF($A23=VLOOKUP(RIGHT(B$22,3),$A$4:$B$12,2,0),"X","")
thì ngắn hơn
 
em cảm ơn anh huuthang,anh có thể giải thíck hộ em cái chỗ đơn giá trong bài k ạ:=VLOOKUP(LEFT(A8,2),$B$15:$F$19,5-(RIGHT(A8,2)="PN")-2*(RIGHT(A8,2)="SN"),) em k hiểu 5-(right...) -2*: là thế nào sao lạ 5- roi lại -2 ạ
 
Lần chỉnh sửa cuối:
Nên thay
=IF($A23=VLOOKUP((MID(B$22,3,LEN(B$22))),$A$4:$B$12,2,0),"X","")
bởi
=IF($A23=VLOOKUP(RIGHT(B$22,3),$A$4:$B$12,2,0),"X","")
thì ngắn hơn
Thay cũng được nhưng nếu tên máy dài hơn 3 ký tự thì hàm right(b22;3) sẽ sai. Muốn tổng quát thì dùng =RIGHT(B22;LEN(B22)-2) hoặc hàm Mid ở trên.
 
Học tập được nhiều điều

em cảm ơn anh huuthang,anh có thể giải thíck hộ em cái chỗ đơn giá trong bài k ạ:=VLOOKUP(LEFT(A8,2),$B$15:$F$19,5-(RIGHT(A8,2)="PN")-2*(RIGHT(A8,2)="SN"),) em k hiểu 5-(right...) -2*: là thế nào sao lạ 5- roi lại -2 ạ
Cảm ơn Bạn Huuthang_bd đã biểu diễn tuyệt chiêu, lần đầu tiên biết được chiêu này, 5-false=5; 5-true=4 ...,quá đã! cảm ơn nhiều.
 
em cảm ơn anh huuthang,anh có thể giải thíck hộ em cái chỗ đơn giá trong bài k ạ:=VLOOKUP(LEFT(A8,2),$B$15:$F$19,5-(RIGHT(A8,2)="PN")-2*(RIGHT(A8,2)="SN"),) em k hiểu 5-(right...) -2*: là thế nào sao lạ 5- roi lại -2 ạ
Bạn đang hỏi công thức này:
=VLOOKUP(LEFT(A3,2),$B$15:$F$19,5-(RIGHT(A3,2)="PN")-2*(RIGHT(A3,2)="SN"),)
Bình thường, trong ví dụ này, để chọn ra cột trả trị trong hàm vlookup thì sử dụng 2 hàm If() lồng vào nhau như sau:
=VLOOKUP(LEFT(A3,2),$B$15:$F$19,IF(RIGHT(A3,2)="SN",4,IF(RIGHT(A3,2)="PN",4,5)),)
Đoạn màu xanh thì đơn giản, tôi không giải thích. Tôi giải thích đoạn màu đỏ.
Bảng dò có 5 cột và cột Các hãng khác là cột 5. Tôi lấy cột này làm chuẩn là số 5 đầu tiên
Nếu Nhà sản xuấtPanasonic Thì (RIGHT(A3,2)="PN") = True, (RIGHT(A3,2)="SN") = False. Lúc đó biểu thức màu đỏ trong công thức sẽ là:
5-True-2*False = 5 - 1 - 0 = 4.
Tương tự, khi Nhà sản xuấtSony thì biểu thức màu đỏ sẽ là:
5-False-2*True = 5 - 0 - 2 = 3.
Các trường hợp khác thì:
5-False-2*False = 5 - 0 - 0 = 5.
 
Bạn xem trong file kèm nhé.

Cảm ơn bạn nhé. Nhưng mà với công thức này thỉ nếu đến một lúc nào đó thông tin bị thay đổi (ví dụ như trường hợp chèn thêm dòng, ...) thì kết quả hiển thị không đúng nữa. Vả lại kết quả mình muốn hiển thị hơi khác với file bạn đã hướng dẫn.
Trong file đính kèm mình đã ghi luôn kết quả mình muốn hiển thị luôn rủi, bạn xem dùm mình với nhé. (Điều kiện là số người thì cố định nhưng số lượng và tên PC thì thay đỏi sau mỗi lần update.
Mnh sẽ nghiên cứu công thức trong file trả lời trước của bạn để học thêm về những công thức mình chưa biết.
Hi vọng sớm nhận được kểt quả %#^#$
 

File đính kèm

Cảm ơn bạn nhé. Nhưng mà với công thức này thỉ nếu đến một lúc nào đó thông tin bị thay đổi (ví dụ như trường hợp chèn thêm dòng, ...) thì kết quả hiển thị không đúng nữa. Vả lại kết quả mình muốn hiển thị hơi khác với file bạn đã hướng dẫn.
Trong file đính kèm mình đã ghi luôn kết quả mình muốn hiển thị luôn rủi, bạn xem dùm mình với nhé. (Điều kiện là số người thì cố định nhưng số lượng và tên PC thì thay đỏi sau mỗi lần update.
Mnh sẽ nghiên cứu công thức trong file trả lời trước của bạn để học thêm về những công thức mình chưa biết.
Hi vọng sớm nhận được kểt quả %#^#$
Tạm thời dùng công thức mảng vậy.
 

File đính kèm

Bạn đang hỏi công thức này:
=VLOOKUP(LEFT(A3,2),$B$15:$F$19,5-(RIGHT(A3,2)="PN")-2*(RIGHT(A3,2)="SN"),)
Bình thường, trong ví dụ này, để chọn ra cột trả trị trong hàm vlookup thì sử dụng 2 hàm If() lồng vào nhau như sau:
=VLOOKUP(LEFT(A3,2),$B$15:$F$19,IF(RIGHT(A3,2)="SN",4,IF(RIGHT(A3,2)="PN",4,5)),)
Đoạn màu xanh thì đơn giản, tôi không giải thích. Tôi giải thích đoạn màu đỏ.
Bảng dò có 5 cột và cột Các hãng khác là cột 5. Tôi lấy cột này làm chuẩn là số 5 đầu tiên
Nếu Nhà sản xuấtPanasonic Thì (RIGHT(A3,2)="PN") = True, (RIGHT(A3,2)="SN") = False. Lúc đó biểu thức màu đỏ trong công thức sẽ là:
5-True-2*False = 5 - 1 - 0 = 4.
Tương tự, khi Nhà sản xuấtSony thì biểu thức màu đỏ sẽ là:
5-False-2*True = 5 - 0 - 2 = 3.
Các trường hợp khác thì:
5-False-2*False = 5 - 0 - 0 = 5.
Cảm ơn anh,em đã hiểu.Nếu ta có thêm 3 hãng nữa lần lượt là SN,PN,CHK,XX,YY,ZZ la ta có 8 cột: thì sẽ là :
VLOOKUP(LEFT(A3,2),$B$15:$F$19,8-(5*(RIGHT(A3,2)="SN")-4*(RIGHT(A3,2)="PN")-2*(RIGHT(A3,2)="XX)")-1*(RIGHT(A3,2)="YY") Ở ĐÂY EM CÒN CỘT ZZ SẼ LÀM THẾ NÀO Ạ,EM K ĐỔI CHỖ CHK VA ZZ CHO NHAU.CÓ FẢI LỒNG THÊM 1 LENH IF VAO K Ạ?
 
Lần chỉnh sửa cuối:
Cảm ơn anh,em đã hiểu.Nếu ta có thêm 3 hãng nữa lần lượt là SN,PN,CHK,XX,YY,ZZ la ta có 8 cột: thì sẽ là :
VLOOKUP(LEFT(A3,2),$B$15:$F$19,8-(5*(RIGHT(A3,2)="SN")-4*(RIGHT(A3,2)="PN")-2*(RIGHT(A3,2)="XX)")-1*(RIGHT(A3,2)="YY") Ở ĐÂY EM CÒN CỘT ZZ SẼ LÀM THẾ NÀO Ạ,EM K ĐỔI CHỖ CHK VA ZZ CHO NHAU.
Nếu không có cột Các loại khác và số cột nhiều thì bạn không nên dùng cách này. Trong trường hợp đó, dùng Match() là hiệu quả nhất.
 
Cảm ơn bạn thắng nhìu nhìu nha.
Còn 1 cái nữa, dấu "--" trong công thức là gì vậy? Mình search hoài mà vẫn không kiếm ra được nó có nghĩa gì nữa!$@!!. Bạn có thể giải thích dùm mình không?
Khi tách số ra khỏi chuỗi thì nó vẫn là kiểu Text. Dấu (--) để chuyển các giá trị số tách được từ chuỗi sang kiểu Number.
 
dạ vâng, em cảm ơn ạ!lần sau anh lại giúp em nhé.Hi`
 
Dò tìm bằng vlookup và lấy cả comment

&&&%$R--=0&&&%$RCác bác chỉ giúp mình cái này với. Mình là lính mới, nên có nhiều điều chưa biết!!!!
!$@!!Mình có một cơ sở dữ liệu ở sheet2. Ở sheet1 mình dùng vlookup dò tìm từ khóa ở sheet1 trong cơ sở dữ liệu ở sheet2, hàm hoạt động bình thường không vấn đề, nhưng trong cơ sở dữ liệu ở sheet2 có một số ô có phụ chú (comment) và vấn đề là kết quả hàm vlookup chỉ trả về kết quả hiển thị của ô trong cơ sở dữ liệu còn phụ chú (comment) thì không xuất hiện ở kết quả đó. Vậy các bác cho mình hỏi làm sao để có thể dùng vlookup truy xuất cả dữ liệu trong ô và cả phần phụ chú (comment) trong cơ sở dữ liệu trong sheet2? Mình rất mong được sự chỉ giáo của các pác.
Cảm ơn các pác đã đọc topic của mình!!!!!!!!+-+-+-+
 
Bạn dùng hàm tự tạo như sau:

PHP:
Option Explicit
Function LookUpComm(LookUpValue, LookUpRegion As Range, Col As Byte)
 Dim Clls As Range, Rng As Range:         Dim Comm
 On Error GoTo LoiLookup
 Set Rng = LookUpRegion.Cells(1, 1).Resize(LookUpRegion.Rows.Count)
 For Each Clls In Rng
   If Clls.Value = LookUpValue Then
      With Clls.Offset(, Col)                      '-4144 '
         If Intersect(.Offset(), Cells.SpecialCells(xlCellTypeComments)) Is Nothing Then
            LookUpComm = .Value
         Else
            Comm = .Comment.Text
            LookUpComm = .Value & " " & Comm
'            MsgBox LookUpComm      '
         End If
      End With
   End If
 Next Clls
ErrLookUp:           Exit Function
LoiLookup:
   LookUpComm = "Hay Xai Ham Cua Excel":        Resume ErrLookUp
End Function

Chú í khi sử dụng:
Hàm trả về trị & Text trong ghi chú, nếu đúng ô đó có ghi chú;
Trả về câu mặc định nếu ô đó chưa có ghi chú.

(Lúc này bạn hãy thay bằng hàm của excel - Vì mình chưa biết cách khác phục nào khác; Nó cho kết quả đúng trong cửa sổ Immediate mà thôi!
Thường cái vụ này phải giành thời gian thêm nữa cho nó. Tiện đây xin kêu gọi mọi người cùng nghiền ngẫm với mình chút chơi nha. Xin có lời mời!) )
 
Lần chỉnh sửa cuối:
Xin cũng tham gia với bác 1 chút, có gì bác chỉ giúp
Cú pháp hàm: look(vungTC,TC,cot)
vungTC: Vùng tìm kiếm
TC: Tiêu chuẩn
cot: Cột lấy dữ liệu

Mã:
Public Function look(vung As Range, tc, cot)
    Application.Volatile
    Set rg = vung.Find(tc, LookIn:=xlValues, LookAt:=xlWhole)
        If Not rg Is Nothing Then look = rg.Offset(, cot)
If look <> "" Then Exit Function
    Set rg = vung.Find(tc, LookIn:=xlComments, LookAt:=xlPart)
    If Not rg Is Nothing Then look = rg.Offset(, cot)
If look <> "" Then Exit Function
    look = "None"
End Function
 

File đính kèm

Lần chỉnh sửa cuối:
To SeaLand

Mình sử dụng hàm của bạn nhưng không thấy nội dung trong ghi chú được trả về trong kết quả;
Vậy các bác cho mình hỏi làm sao để có thể dùng vlookup truy xuất cả dữ liệu trong ô và cả phần phụ chú (comment) trong cơ sở dữ liệu trong sheet2?

Ví dụ: Ở cột B, các ô có màu font là các ô có Comments

|A|B|C|
| Ma | SLg |Kết quả hàm trả về|(Cú pháp hàm ứng với ô trái kề bên)
|A01| 14 ||
|A02| 34 ||
|A06| 42 |42 Max Of A| =LookUpComm("A06",A$1:B$15,1)
|B2| 3 |3 Min Of B| =LookUpComm("B2",A$1:B$15,1)
|B11|14| Hay Xai Ham Cua Excel | =LookUpComm(A6,A$1:B$15,1)
|B21|14| Hay Xai Ham Cua Excel | =LookUpComm("B21",A$1:B$15,1)
|B28| 34 |34 Mid Of B| =LookUpComm("B28",A$1:B$15,1)
|B32| 49 |49 Max Of B| =LookUpComm("B32",A$1:B$15,1)
 
To HYen: Rất có thể cách hiểu của mọi người khác nhau. Hàm của mình có cơ chế tìm như sau: Tìm trong vùng TC kể cả nội dung của ô hay comment nếu thỏa mãn trả về giá trị ô chỉ định. Như bạn viết rất có thể bạn muốn lấy Comment thì phải? Nếu truy xuất kiểu đó thì phải xác định kết quả để riêng hay trộn lẫn, vì rất có thể kết quả có cả giá trị có cả comment.
 
Lần chỉnh sửa cuối:
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom