06.30 怎麼自定義nlookup函數,比vlookup更牛,大家試試好用不!

一、怎麼自定義Excel函數nlookup

開發工具--visual basic--左側this workbook--插入模塊--輸入一下代碼

Function Nlookup(rg, rgs As Range, L As Integer, M As Integer)

Dim arr1, ARR2, 列數

Dim R, n, K, X, cc, sr As String

arr1 = rg.Value

ARR2 = rgs

If VBA.IsArray(arr1) Then

For Each R In arr1

If R <> "" Then

cc = cc & R

列數 = 列數 + 1

End If

Next R

Else

cc = arr1

End If

If M > 0 Then '非查找最後一個

For X = 1 To UBound(ARR2)

sr = ""

If 列數 > 1 Then

For q = 1 To 列數

sr = sr & ARR2(X, q)

Next q

Else

sr = ARR2(X, 1)

End If

If sr = cc Then

K = K + 1

If K = M Then

Nlookup = ARR2(X, L)

Exit Function

End If

End If

Next X

ElseIf M = -1 Then '查找所有值

For X = 1 To UBound(ARR2)

sr = ""

If 列數 > 1 Then

For q = 1 To 列數

sr = sr & ARR2(X, q)

Next q

Else

sr = ARR2(X, 1)

End If

If sr = cc Then

Nlookup = Nlookup & "," & ARR2(X, L)

End If

Next X

Nlookup = Right(Nlookup, Len(Nlookup) - 1)

Exit Function

Else '查找最後一個

For X = UBound(ARR2) To 1 Step -1

sr = ""

If 列數 > 1 Then

For q = 1 To 列數

sr = sr & ARR2(X, q)

Next q

Else

sr = ARR2(X, 1)

End If

If sr = cc Then

Nlookup = ARR2(X, L)

Exit Function

End If

Next X

End If

Nlookup = ""

End Function

語法格式:

=Nlookup(查找條件值,查找範圍區域,查找值所在列,需要查詢的個數),與vlookup函數最大的區別在於第四個參數。

實例: A 單條件查找

第一個結果 (第四個參數 1表示第一個 4表示第四個 0表示最後一個)

怎麼自定義nlookup函數,比vlookup更牛,大家試試好用不!

=nlookup(D2,$A$2:$B$18,MATCH($E$1,$A$1:$B$1,0),1)

B:多條件查詢

=nlookup(E2:F2,A2:C18,3,2) E2:F2多個條件區域 A2:C18 區域 3表示第三列 2表示第二個

怎麼自定義nlookup函數,比vlookup更牛,大家試試好用不!

C查找張三的所有銷售額數據(提取人員所有數據)

=nlookup(E2,A2:C18,3,-1) E2查詢的數據 A2:C18查詢區域 ,3第三列 ,-1 表示提取所有

怎麼自定義nlookup函數,比vlookup更牛,大家試試好用不!

怎麼樣,是不是比vlookup更牛!


分享到:


相關文章: