比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技術論壇版主 羅剛君

圖文整理:祝洪忠


Advertisements

你可能會喜歡