比VLOOKUP函數好用十倍的自定義函數
同學們好啊,VLOOKUP函數是表親們的大眾情人,查找數據的時候經常會用到。
但是這個函數也有兩處明顯的缺陷:
一是不能從右向左查詢,
二是不能返回多個結果。
這兩個問題想必困擾了表哥表妹好多年啊。今天就和大家分享一個自定義函數——LOOK,先來看看使用方法:
G2 單元格公式為:
=LOOK($F$2,C:C,2,ROW(A1))
這個自定義函數的參數和VLOOKUP函數類似:
第一參數是要查詢的內容,
第二參數是包含查詢值的數據列,
第三參數是要返回第幾列的內容,
第四參數使用ROW(A1)生成一個連續的序號。
向下複製公式,即可實現一對多查詢。
如果要從右向左查詢,只要修改一下第三參數,使其變成負數即可:
看到這裡,是不是有點眼紅了?
Advertisements
接下來看看如何使用這個自定義函數:
步驟1 右鍵單擊工作表標籤→查看代碼
步驟2 在VBE窗口中依次單擊【插入】→【模塊】,然後在右側的模塊代碼窗口中輸入自定義代碼:
以下代碼可複製:
Function LOOK(查找值 As String, 區域 As Range, Optional 列 As Integer = 2, Optional 索引號 As Integer = 1) As String
Application.Volatile
Dim i As Long, cell As Range, Str As String
With 區域(1).Resize(區域.Rows.Count, 1)
If .Cells(1) = 查找值 Then Set cell = .Cells(1) Else Set cell = .Find(查找值, LookIn:=xlValues)
Advertisements
If Not cell Is Nothing Then
Str = cell.Address
Do
i = i + 1
If i = 索引號 Then LOOK = cell.Offset(0, 列 - 1): Exit Function
Set cell = 區域.Find(查找值, cell)
Loop While Not cell Is Nothing And cell.Address <> Str
End If
End With
End Function
步驟3 按F12鍵,將文件保存為.xlam格式。
以後可以先打開這個載入宏文件,然後再打開需要處理的文檔,就可以使用自定義函數了。
代碼作者 ExcelHome技術論壇版主 羅剛君
圖文整理:祝洪忠