篇一:万能的Wlookup自定义函数来了!Xlookup、Vlookup请走开!

2019-10-09 18:51:06 66点赞 684收藏 35评论

追加修改(2019-10-18 14:13:21):
If arr(x, 1) =V Then 这里V Then 中间有个空格,发出来不知道怎么没有了

第二篇链接:

篇二:万能的Wlookup自定义函数来了!Xlookup、Vlooku前言接上一篇,本篇也主要用GIF图来演示,主要内容:按行查找(有时候我们的表并不是左边查找右边的数据,也有上下查找)多条件的查找(AND条件)查找第N个值查最后一个值一个条件对多个结果的查找区间查找(功能和vlookup的近似匹配差不多)筛选功能(大招,新加的!!!!)好了废话不多说,开始正题。按行冷血肃肃| 208 评论48 收藏2k查看详情


一、为什么我们要用wlookup

VLOOKUP这个数据查找函数真的是职场必学函数!!!

最近微软发布了Office365发布了一个新的函数,名字叫做Xlookup,用来替代Vlookup和Hlookup。

Xlookup解决了6个vlookup做不到的事情:

  • 默认为近似匹配,但是实际使用中大部分是要绝对匹配的

  • 原始表中插入或者删除,你的结果就会改变

  • 不能向左查找,因为vlookup规定:查找的数据必须在目标数据的第一列

  • 当然也就不能从后面往前面查询

  • 在近似匹配中,需要排好序才可以查到区间

  • 当然,还有就是用了大量的数据,大多数情况实际我们只需要两列。

但是,不要张口闭口就说拜拜,我相信大家打开你的软件,根本就没有这个Xlookup的函数,不信你试试。

篇一:万能的Wlookup自定义函数来了!Xlookup、Vlookup请走开!

所以,今天给大家介绍下自定义函数wlookup篇一:万能的Wlookup自定义函数来了!Xlookup、Vlookup请走开!

二、使用方法

总的来说二个步骤,创建,然后保存。

1、打开一个工作薄,按alt+F11,或者任一工作表标签右键 - 查看代码,我们就打开了VB的编辑窗口。

篇一:万能的Wlookup自定义函数来了!Xlookup、Vlookup请走开!

然后我们中点“插入”-“模块”,把我们的代码复制到右边空白的地方。就可以关闭了。

篇一:万能的Wlookup自定义函数来了!Xlookup、Vlookup请走开!

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) =VThen

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、文件另存为带宏的格式xlsm。

篇一:万能的Wlookup自定义函数来了!Xlookup、Vlookup请走开!

三、功能介绍演示

简单的说一下,该自定义函数有4个参数

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

前面几个都比较好理解,查找模式类似vlookup的0,1。这里有4个值。

  • -2:区间查找(功能和vlookup的近似匹配差不多)

  • -1:一对多的查找(多结果的查找方式)

  • 0:查找最后一个(满足条件的最后一个值)

  • N:查找第N个符合要求的值(满足条件的第N个值)

先看和vlookup一样的功能。
为了体现他们的区别,我们来对比下。


篇一:万能的Wlookup自定义函数来了!Xlookup、Vlookup请走开!

我们在数据中间插入一列,看看结果。

篇一:万能的Wlookup自定义函数来了!Xlookup、Vlookup请走开!

在我们插入了一列之后,vlookup公式的值就变了,而wlookup依然不变篇一:万能的Wlookup自定义函数来了!Xlookup、Vlookup请走开!

从右向左找

这是vlookup不能实现的功能。编号在姓名的左侧,用vlookup是不能查到的对吧。

篇一:万能的Wlookup自定义函数来了!Xlookup、Vlookup请走开!

好了,今天的教程就到这里了。下一篇讲

  • 按行查找(有时候我们的表并不是左边查找右边的数据,也有上下查找)

  • 多条件的查找(AND条件)

  • 查找第N个值

  • 查最后一个值

  • 一个条件对多个结果的查找

  • 区间查找(功能和vlookup的近似匹配差不多)

    大概就这些了,大家先掌握今天的内容篇一:万能的Wlookup自定义函数来了!Xlookup、Vlookup请走开!

展开 收起
35评论

  • 精彩
  • 最新
  • 单位XP+2003:我TM谢谢你出的教程 [皱眉]

    校验提示文案

    提交
    2003不能用宏么?

    校验提示文案

    提交
    收起所有回复
  • 因为VLOOKUP不能从后往前查以及会变函数的问题,我现在一般用index+match的组合函数来替代

    校验提示文案

    提交
    还有offset+match,一次可以得到多列数据

    校验提示文案

    提交
    恩,也是一个办法,就是有点复杂了

    校验提示文案

    提交
    收起所有回复
  • 抄了代码,无法使用

    校验提示文案

    提交
    if arr(x,1)=v then中间有空格,你看看

    校验提示文案

    提交
    大神,求学习教程!

    校验提示文案

    提交
    收起所有回复
  • 是不是只能在这个带宏的格式xlsm文件里面使用WLOOKUP函数?

    校验提示文案

    提交
    是的,必须要有才可以用

    校验提示文案

    提交
    这个比较头痛,因为宏经常在不同的电脑交互中出现错误,导致被破坏,不能使用

    校验提示文案

    提交
    收起所有回复
  • 有一处红色字体,求解

    校验提示文案

    提交
    提示什么呀

    校验提示文案

    提交
    是不是if arr(x,1)=vehement

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 这个模块不能永久保存的?每次保存后退出再进来就没这个模块了

    校验提示文案

    提交
    不会呀,你保存的格式对了么

    校验提示文案

    提交
    收起所有回复
  • 你这个从网上抄来的嘛?这个代码添加不了wlookup.说有错误

    校验提示文案

    提交
    追加修改看一下,少了空格

    校验提示文案

    提交
    收起所有回复
  • 可以说vlookup是最好用的函数,没有之一。

    校验提示文案

    提交
    有个缺陷:无法列出所有重名人的身份证号

    校验提示文案

    提交
    的确,一针见血 [皱眉]

    校验提示文案

    提交
    收起所有回复
  • 有处代码错误,原VThen改成V Then,V后面有空格的,改一下就好。

    校验提示文案

    提交
  • 学习了,vlookup才学会呢

    校验提示文案

    提交
  • 一直都羡慕编程大神啊

    校验提示文案

    提交
  • 啊 就会这一个函数

    校验提示文案

    提交
  • 收藏,退出一气呵成 [邪恶]

    校验提示文案

    提交
  • 666666,mark

    校验提示文案

    提交
  • 好深奥的样子啊

    校验提示文案

    提交
  • 厉害!马克

    校验提示文案

    提交
  • 公式很好,虽然演示的其实vlookup也能通过增加辅助列解决,毕竟是进步呀,就是不知道什么版本有这个,直接升级一步到位

    校验提示文案

    提交
  • 好像在哪看过这个

    校验提示文案

    提交
  • “取接近值”那个函数怎么用的,作者解说一下呗 [赞] [赞]

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
684
扫一下,分享更方便,购买更轻松