尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
Vlookup是最常用到的查找函數,但它有很大的局限性。比如:只能查找第一個符合條件的值,無法任意位置查找和多條件查找等。於是,蘭色用VBA編寫了一個功能強大的Mlookup函數。這是蘭色2016年編寫的自定義函數,後又添加了新的查詢功能,因為太多同學提問查詢相關的的難題,今天再次把該函數分享給大家。
一、用法介紹
=Mlookup(查找內容,查找區域,返回值所在的列數,第N個)
語法說明:
查找內容:除了單個值外,還可以選取多個單元格,進行多條件查找。
查找區域:同VLOOKUP
返回值的在列數:同VLOOKUP
第N個:值為1就返回第1個符合條件的,值為2就返回第2個符合條件的….當值為0值時,返回最後1個符合條件的值,值為-1時返回所有查找結果並用逗號連接(新增功能)。
二、功能演示。
【例】如下圖所示的入庫表中,要求完成以下查找。
1、查找第2次電視的進貨數量。
=Mlookup(A11,A2:D8,4,2)
2、查找電視的最後一次入庫數量
=Mlookup(A11,A2:D8,4,0)
3、查找47寸電視的第1次進貨數量。
=Mlookup(A11:B11,A2:D8,4,1)
4、做到篩選功能。
=Mlookup($B$10:$B$11,$A$1:$D$8,4,A14)
5、做到多結果查找功能。(把所有符合條件結果用逗號連接起來)
=MLOOKUP(A11,B$1:C$8,2,-1)
三、使用方法
Mlookup要想在你的表格中也能使用,需要按下面的步驟操作。
1、按alt+F11(鍵盤上如果有FN鍵 ,還需要同時按FN)會打開VBE窗口,在窗口中點插入 – 模塊。把下面的代碼復制黏貼到右側的空白區域中。
代碼(本文最後附下載地址)
Function Mlookup(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