Vlookup、Lookup全闪开,Mlookup函数来了!

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

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();