数据查询只会vlookup就out了,自制zlookup查询函数操作更简单

Excel数据查询,相信大家首先会想到vlookup函数。毋庸置疑vlookup函数在Excel数据查询中作用是非常的强大。但是它也有一些不能实现的数据查询。

数据查询只会vlookup就out了,自制zlookup查询函数操作更简单

如上图所示,我们需要根据人员的出现次数,提取第N次的数据。这里vlookup函数就无法使用,但是我们使用Zlookup函数就可以轻松完成。下面我们就来学习的学习一下zlookup函数如何快速解决我们的查询问题。

案例一:Zlookup查询函数查询人员第2次销售数据

数据查询只会vlookup就out了,自制zlookup查询函数操作更简单

案例说明:如上图,我们需要提取张三、李四在所有销售数据中的第二次销售数据。这种操作我们用vlookup函数就无法解决。

函数公式:

=zlookup(G5,$D$2:$E$12,2,2)

函数解析:

1、zlookup函数与vlookup函数类似,总共是4个参数,都是通过查询条件值在对应数据区域中进行数据查询;

2、第一参数G5代表我们需要查询的条件值;第二参数D2:E12代表数据查询区域;第三参数2代表销售额在姓名右起第2列;第四参数2代表从上往下查询第二个值。

案例二:zlookup函数查询人员最后一天的销售数据

数据查询只会vlookup就out了,自制zlookup查询函数操作更简单

案例说明:如上图所示,我们需要提取对应人员的最后一天的销售数据,vlookup查询最后一条数据同样是无法操作。

函数公式:

=zlookup(G5,$D$2:$E$12,2,0)

函数解析:

1、zlookup函数查询最后一条数据的时候,函数的前面三个参数的使用方法跟案例一是一样的,我们只需要修改第四参数的值调整为0即可。

案例三:zlookup函数轻松完成数据的一对多查询操作

数据查询只会vlookup就out了,自制zlookup查询函数操作更简单

案例说明:我们在对数据进行一对多查询的时候,vlookup函数我们需要结合countif条件计算及row函数嵌套才能操作,但是使用zlookup函数我们可以实现最简单从一对多查询。

函数公式:

=zlookup(G5,$D$2:$E$12,2,-1)

函数解析:

1、zlookup函数进行数据一对多查询的时候,我们同样只需要修改函数的第四参数即可实现。将第四参数修改为0,这样就能查询出对应的所有值,每个值中间会通过逗号连接。

通过上面的案例讲解,现在你学会如何利用自定义的zlookup函数进行数据查找了吗?当然在使用这个函数的时候,我们需要首先在代码编辑窗口进行函数的自定义。操作步骤如下:

第一步:按Alt+F11或者右键点击工作表名称,选择查看代码进入代码编辑窗口。然后在左边工程窗口中,右键点击Thisworkbook点击插入模块;如下图所示:

数据查询只会vlookup就out了,自制zlookup查询函数操作更简单

第二步:在模块窗口界面,我们将下方的代码粘贴进去,这样我们就通过function函数自定义了一个zlookup查询函数。如下图所示:

数据查询只会vlookup就out了,自制zlookup查询函数操作更简单

自定义zlookup函数代码如下:

Function zlookup(rg, rgs As Range, L As Integer, M As Integer)Dim arr1, ARR2, 列数Dim R, n, K, X, cc, sr As Stringarr1 = rg.ValueARR2 = rgsIf VBA.IsArray(arr1) ThenFor Each R In arr1If R <> "" Thencc = cc & R列数 = 列数 + 1End IfNext RElsecc = arr1End IfIf M > 0 Then '非查找最后一个For X = 1 To UBound(ARR2)sr = ""If 列数 > 1 ThenFor q = 1 To 列数sr = sr & ARR2(X, q)Next qElsesr = ARR2(X, 1)End IfIf sr = cc ThenK = K + 1If K = M Thenzlookup = ARR2(X, L)Exit FunctionEnd IfEnd IfNext XElseIf M = -1 Then '查找所有值For X = 1 To UBound(ARR2)sr = ""If 列数 > 1 ThenFor q = 1 To 列数sr = sr & ARR2(X, q)Next qElsesr = ARR2(X, 1)End IfIf sr = cc Thenzlookup = zlookup & "," & ARR2(X, L)End IfNext Xzlookup = Right(zlookup, Len(zlookup) - 1)Exit FunctionElse '查找最后一个For X = UBound(ARR2) To 1 Step -1sr = ""If 列数 > 1 ThenFor q = 1 To 列数sr = sr & ARR2(X, q)Next qElsesr = ARR2(X, 1)End IfIf sr = cc Thenzlookup = ARR2(X, L)Exit FunctionEnd IfNext XEnd Ifzlookup = ""End Function

通过上面的操作设置,现在你学会如何利用自定义的zlookup函数进行数据查找了吗?

展开阅读全文

页面更新:2024-02-11

标签:函数   操作   公式   模块   窗口   区域   条件   案例   编辑   参数   轻松   代码   简单   代表   人员   数据   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top