快好知 kuaihz订阅观点

 

Xlookup、Vlookup请走开,万能的Wlookup函数...

那怎么办?作为Excel精英平台的粉丝,兰色不会让你失望的。这不,兰色编写了一个比Xlookup更强大的查找函数,它就是 Mlookup的升级版:

Wlookup函数

一、用法介绍

=  Wlookup(查找内容,查找值范围,返回值范围,查找模式)

语法说明:

查找内容:查找的值

查找值范围:在该区域/数组中查找

返回值范围:根据在第2个参数中查找结果,返回该数组中对应位置的值

查找模式:

   -2 是区间查找

   -1 是一对多查找

            0 查找最后一个

            N 查找第N个符合条件的值

二、功能演示

1、查找第1个符合条件的值

=Wlookup(A11,A2:A7,C2:C7)

2、从右向左查找

=Wlookup(A11,B2:B7,A2:A7)

3、按行上下查找

=Wlookup(B5,A1:D1,A2:D2)

4、多条件查找

=Wlookup(A11&B11,A2:A7&B2:B7,D2:D7)

注:多条件查找只需要用&连接即可。

5、查找第N个符合条件的值

=Wlookup(A11,B2:B7,C2:C7, N)

查找第2个

=Wlookup(A11,B2:B7,C2:C7, 2)

注:最后一个参数是正整数时,查找返回对应第N个符合条件的值。如果是多列查找第N个,也只需用&连接即可,同4。

6、查找最后一个

=Wlookup(A11,B2:B7,C2:C7,0)

注:第4个参数为0时,查找最后一个

7、一对多查找

Wlookup可以同时返回所有符合条件的结果,并用逗号连接。

=Wlookup(A11,B2:B7,C2:C7,-1)

注:第4个参数为-1时,为一对多查找

8、区间查找

=Wlookup(A11,A2:A7,B2:B7,-2)

注:当第4个参数为-2时,可以实现区间匹配查找

9、扩展应用:筛选功能

=IFERROR(Wlookup($A$11,$B$2:$B$7,A$2:A$7,ROW(A1)),"")

注:因为Wlookup可以返回第N个值,所以这里用row函数就可以逐个返回所有值。

筛选演示:

三、使用方法

Wlookup要想在你的表格中也能使用,需要按下面的步骤操作。

1、按alt+F11(或任一工作表标签右键 - 查看代码)会打开VBE窗口,在窗口中点插入 - 模块。把下面的代码复制粘贴到右侧的空白区域中。

代码(本文最后附下载地址)

Function Wlookup(V, vY, vh, Optional m)

 Dim arr, arr1, arr2()

 Dim k As Integer

 arr = vY

 arr1 = vh

       If UBound(arr1) = 1 Then

       arr1 = Application.Transpose(arr1)

       arr = Application.Transpose(arr)

       End If

ReDim arr2(1 To 1)

 For x = 1 To UBound(arr1)

    If arr(x, 1) = V Then

       Wlookup = arr1(x, 1)

        If IsMissing(m) Then

          Exit Function

        Else

         k = k + 1

         ReDim Preserve arr2(1 To k)

         arr2(k) = arr1(x, 1)

        End If

    End If

  Next x

  If m = 0 Then

    Wlookup = arr2(k)

  ElseIf m = -1 Then

    Wlookup = Join(arr2, ",")

  ElseIf m = -2 Then

    Wlookup = JS(V, vY, vh)

  Else

    Wlookup = arr2(m)

  End If

End Function

Function JS(J1, R1, R2) "取接近值

Dim Jarr1, Jarr2

Dim x

Jarr1 = R1

Jarr2 = R2

For x = 1 To UBound(Jarr1)

  If x + 1 > UBound(Jarr1) Then

      JS = Jarr2(x, 1)

      Exit Function

  ElseIf J1 >= Jarr1(x, 1) And J1 < Jarr1(x + 1, 1) Then

      JS = Jarr2(x, 1)

      Exit Function

  End If

Next x

End Function

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

以后这个工作簿中就可以正常使用Wlookup函数

本文示例附件下载地址:(百度网盘,复制到电脑浏览器地址栏中回车打开)

链接:https://pan.baidu.com/s/1wsbtd2LGoDTUA5j9mOE9cg 提取码: quju 

注:下载打开后如遇到安全提示,点启用即可,无风险。

兰色说:3年前兰色编写了Mlookup函数,今天兰色综合Mlookup和Xlookup的优点,升级成了Wlookup函数,可以说功能上比前2个函数都要强大。另外由于刚编写完,可能会有不完善的地方,如果发现可以告诉兰色及时修正。

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:万能  万能词条  函数  函数词条  走开  走开词条  Xlookup  Xlookup词条  Vlookup  Vlookup词条  
办公

 Excel表格的5个基础技巧

1自动调整列宽当单元格内容不能全部展示时,我们一般都会手动拖动调整列宽,可如果数据非常多时,手动一个个调整就很耽误时间了。不如试试更简单发方法。步骤:选中第一列...(展开)

办公

 微信文章复制到Word中图片无法...

昨天有位小伙伴私信问我:“小编,我想把微信里面的文章复制到Word文档中,但是发现文字复制过去了,而图片都不见了,这是为什么呢?”这个问题刚好我之前也遇到过,想...(展开)

办公

 2018年新个人所得税Excel...

在用excel计算工资个税的时候,很多是用if语句来设计公式的,公式冗长,易出错,不好调整,用MAX公式要简单和简短很多。1、减除额3500元的公式:=ROUN...(展开)