Vlookup、Lookup都靠边,Mlookup函数来了!! vlookup range lookup

Vlookup是最常用到的查找函数,但它有很大的局限性。比如:只能查找第一个符合条件的值,无法任意位置查找和多条件查找等。于是,兰色用VBA编写了一个功能强大的Mlookup函数。

一、用法介绍

=Mlookup(查找内容,查找区域,返回值所在的列数,第N个)

语法说明:

查找内容:除了单个值外,还可以选取多个单元格,进行多条件查找。

查找区域:同VLOOKUP

返回值的在列数:同VLOOKUP

第N个:值为1就返回第1个符合条件的,值为2就返回第2个符合条件的....当值为0值时,返回最后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)



三、使用方法

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

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

Mlookup = ARR2(X, L)

Exit Function

End If

End If

Next X

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

Mlookup = ARR2(X, L)

Exit Function

End If

Next X

End If
Vlookup、Lookup都靠边,Mlookup函数来了!! vlookup range lookup

Mlookup = ''

End Function

2、当前文件另存为“启用宏的工作簿”格式,



然后在这个表格中就可以象兰色一样使用Mlookup函数了。

附表下载地址:(复制到ie地址栏中按回车下载)

http://www.excelpx.com/home/upload/2015_02/temp_15020520147433.zip

兰色说:VBA就是这么帅,需要什么函数就编写它。学会VBA后,你会发现excel变得无所不能!

书也买了一大堆,没心思看。教程也下载了好多,越看越迷糊。excel到底该怎么学?其实,通过视频学习才是最好的学习途径,点左下角'阅读原文' 查看兰色幻想+小妖录制的超全的290集excel视频教程。

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/83011.html

更多阅读

转载 不看不知道,真是太神奇了! 你不知道的事

原文地址:不看不知道,真是太神奇了!作者:维新里动画图解一般看不见的机械原理不看不知道,真是太神奇了!人们的现代生活离不开各种各样的机械,无数复杂的机械走进了寻常百姓的生活中,小到你家里客厅墙上的挂钟,大到你出门上班用以代步的汽

声明:《Vlookup、Lookup都靠边,Mlookup函数来了!! vlookup range lookup》为网友蜘蛛分享!如侵犯到您的合法权益请联系我们删除