excel中比vlookup函数更厉害的自制Nlookup综合查询函数使用实例教程
发布时间:2023-12-18 17:03:32
我们都知道VLOOKUP函数在我们数据查询过程中运用的非常多,在众多函数中这个函数的使用频率应该是最高的。虽然这个函数运用的比较普遍,但是在高级查询过程中这个函数还是会有很大的弊端。今天我们就来学习自定义一个高级综合查询函数Nlookup函数,这个函数几乎能够解决我们现有vlookup函数不能解决的所有问题。我们以下面的4个场景来详细讲解一下。
一、Nlookup自定义函数介绍
Nlookup函数为我们用VBA代码自定义的一个函数,所有我们可以通过编辑代码的方法来实现我们需要的功能和操作。
函数=Mlookup(查找条件值,查找范围区域,查找值所在列,需要查询的个数),与vlookup函数最大的区别在于第四个参数。
函数解析:
1.1 查找条件值:相当于vlookup函数第一参数,我们需要查找的值;
1.2 查找范围区域:相当于vlookup函数的第二参数,我们需要查找的数据范围区域;
1.3 查找值所在列:相当于vlookup函数的第三参数,从左往右数第几列;
1.4 需要查询的个数:与vlookup函数的第四参数不同,这个参数为我们需要查找数据的第几个。
下面我们就来具体讲解解析案例场景。
二、Nlookup函数综合使用场景
场景1:从数据源中查询姓名为张三的第二次销售额
函数=Nlookup(H5,B1:F14,5,2)
函数解析:前面3个参数与VLOOKUP函数的使用方法一致,第四个参数为2,因为要求的是第二条数据。
场景2:查询张三的最后一次销售记录
函数=Nlookup(H10,B1:F14,5,0)
函数解析:修改第四个参数的值为0,代表查找最后一个条件值。
场景3:案例三:多条件查询,查找5月2日李四的销售额
函数=Nlookup(H11:I11,A1:F14,6,1)
函数解析:多条件查询的时候,第一参数查询的条件值直接选择两个参数,第四参数输入1,代表精确查找一个。
场景4:查找王五的所有销售额数据(提取人员所有数据)
函数=Nlookup(K4,B1:F14,5,-1)
函数解析:第四参数-1为查询所有符合条件的数据。
看了上面这么多经典的案例,可能大家都在想这个函数到底是怎么来的了?下面我们就来讲一下怎么定义这个函数。
三、Nlookup函数自定义方法
第一步:按alt+f11或者鼠标邮件点击工作表名称,点击查看代码,进入VBA代码编辑窗口;
第二步:点击thisworkbook,新建模块,在模块中输入下方代码;
Function Nlookup(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
Nlookup = ARR2(X, L)
Exit Function
End If
End If
Next X
ElseIf M = -1 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
Nlookup = Nlookup & "," & ARR2(X, L)
End If
Next X
Nlookup = Right(Nlookup, Len(Nlookup) - 1)
Exit Function
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
Nlookup = ARR2(X, L)
Exit Function
End If
Next X
End If
Nlookup = ""
End Function
第三步:将表格另外为.xlsx宏的文件,重新打开即可看到你重新定义的Nlookup函数。
现在你学会这个Nlookup自定义函数的制作和使用方法了吗?赶快去学习一下吧~
猜你喜欢
- 装了office 2010后,默认新建菜单中的格式都是不带x的,比如docx就是doc,新建Excel后缀也是xls而不是xlsx。下面给解
- 作为一名数据分析师,工作中打交道最多的就是数据,大部分都是用Excel处理,很早之前觉得数据匹配查询只用vlookup函数就够了,但是vlo
- 当文档中插入了大量图片时,手动为这些图片编号会是一件很麻烦的事情。特别是在需要对编号后的图形进行增删时,手动编号将更加麻烦。下面小编就为大家
- 首先介绍下函数len,len,最简单的解释就是返回文本字符串的字符数。11 返回2,我返回1.而lenb是返回文本字符串的字节数。此时11返
- 由于全部大写的单词有时具有特殊的意义(比如某个特定的商标或公司名称),因此在很多情况下不能将其视为不符合拼写规范的错误拼写。在Word201
- 在Excel中录入好数据以后经常需要把Excel转换成PPT形式,这个其实很简单,如果还不懂的朋友可以学习一下。下面是由小编分享的如何将ex
- 在Word文档中我们可以根据自己的实际需要,为文本框设置一定的样式,比如我们为文本框填充想要的纹理效果,比如水滴纹理效果,新闻纸纹理效果,画
- 我们看到的各种书籍,文件资料等,比如各种课本,各种论文,各种项目策划书等,都是有封面的。其实,我们在Word文档中,可以很方便地使用系统提供
- word怎么设置图片格式呢?当我们在word文档资料插一张图片在文字里,在文字不是我们喜欢的设置格式,因为系统默认插入的是在文字底下的,要想
- Excel表格中怎么制作一个柱形动态图表?excel表格中数据很多,想要按月份制作一个动态图标,该怎么制作呢?下面我们就来看看详细的教程,需
- 1)黄/绿色调的颜色不建议使用高饱和度和亮度趋于中心128,尤其是
- 每次打开excel工作表都弹出大提示框怎么回事?如何解决?相信很多朋友都不是很清楚吧,其实方法很简单的,下面小编就为大家详细介绍一下,大家一
- 很多时候我们在使用Excel的时候都是根据其网格来进行编辑的,而最近却有一些用户发现自己的文件内不显示网格线界面是全白的情况,这有可能是不小
- win10防火墙怎么关闭,Win10防火墙关闭设置方法1、打开控制面板,点击“系统和安全”。2、点击“安全和维护”。3、打开“windows
- 1、首先,我们打开Excel表格,然后看看整个菜单栏中的,如图所示: 2、在我们打开表格之后,然后我们点击菜单栏中
- Excel中的加减乘除具体该如何进行运算呢?下面是小编带来的关于excel表格加减乘除的运算方法,希望阅读过后对你有所启发!excel表格加
- word是我们常用的文字处理办公软件,很多小伙伴会用它来写文稿,写完原创文稿还需要使用其他软件添加水印防止盗用,不过如果小伙伴使用的word
- 在我们excel2013中存在着一些重要的文件,要如何才能为这些文件加密呢,下面让小编为你带来2013excel表格密码设置的方法。2013
- excel sum是什么意思?在excel中,sum是求和的意思,将目标参数进行求和操作。下面以A1:A5求和为例。验证如下:1、打开EXC
- 1.使用 Office Tool Plus 安装新的 Office 前,必须卸载旧版本的 Office。2.为了避免出现兼容性问题,请卸载