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自定义函数的制作和使用方法了吗?赶快去学习一下吧~


猜你喜欢
- 目前最火热的就是win11系统了,有很多新安装win11的用户用了win11系统后非常的不习惯想改回win10系统,但是该怎么操作呢?下面给
- Win11官方正式发布时间是什么时候?虽然现在网上已经流传了各种版本的Win11,已经可以安装了,但是很多人还是不相信Win11的真实性,毕
- 我们用excel做图的时候,经常会有两组数据需要通过图展示出来,但是两组数据的单位不一致,导致图很难看,那么就设置两个纵坐标即可。今天,小编
- 怎么修复Windows11中的AMD驱动程序崩溃?显卡是任何现代计算机或笔记本电脑的极其重要的组件。AMD是现在很多用户电脑在使用的驱动,但
- 在VCD、DVD类片源普及较广的年代,豪杰超级解霸、金山影霸等播放软件占据了绝大多数PC端市场;再到后来,网速逐渐快了起来,.rm/.wmv
- Excel中经常需要使用到固定单元格格式的技巧,单元格具体该如何固定格式呢?下面是小编带来的关于excel表格固定单元格格式的方法,希望阅读
- 对于一些数据较多的Excel表格,通过冻结标题行或者标题列,查看起来就会方便许多。例如一个有1000多行的表格,当拖动滚动条查看第800行数
- 一些简单的名片也可以在Word制作,下面小编为大家分享word制作单张名片方法,操作很简单的,下面小编就为大家介绍一下,来看看吧利用word
- win10桌面右键新建没有excel和word怎么办?在win10系统中,office办公软件安装后会在鼠标右键生成快捷方式,但是有的用户在
- 如果我们觉得wps文字默认的撤销步数太少,那么,我们可以对其进行修改设置,下面就让小编告诉你wps文字如何设置撤销步数。wps文字设置撤销步
- 有很多用户为了节省时间,都会直接通过u盘或硬盘来安装win10系统。最近不少伙伴咨询win10如何去除磁盘盘符重复显示的操作,今天小编就带来
- 哈喽,大家好!说到九九乘法表,相信小伙伴们都背过。不过如果让你用excel制作九九乘法表,你会怎么做呢?不要跟我说你打算一个格子一个格子地填
- 系统之家装机大师是一款十分优秀的系统重装工具,无任何电脑基础也能快速进行重装,全程自动安装系统,操作简单,有些用户不知道怎么重装系统,不妨使
- 很多小伙伴在使用电脑的时候,点图标和启动栏鼠标右键都能显示出来,而点桌面空白处鼠标右键却一直在转圈圈。这是什么情况呢?其实是我们注册表里有些
- 大家经常会在win10电脑上连接Android手机copy数据或图片,算是比较频繁的操作。不过有的用户反馈说自己的win10电脑却不能识别安
- Win11怎么恢复出厂设置?当我们的电脑遇到了难以解决的问题时,我们不仅可以采用系统重装的方法还可以使用恢复出厂设置的方法来解决,本期教程小
- 腾讯视频 for Mac播放器是腾讯视频为Mac OS用户推出的腾讯视频客户端产品,支持丰富内容的在线点播及电视台直播,提供列表管理、视频音
- Excel2013使用加法运算的步骤:点击新建空白文档,建立一新的 Excel2013表格 在空白文档中输入一些用
- 最新的手机CPU天梯图又出来了,现在的手机技术是突飞猛进短短一个月就给大家带来了很多的新功能和新科技,下面就给大家带来了2023年2月手机C
- 在Excel 2007表格中,经常会打印一些数据,很多计划表、出库等等,打印的时候,往往希望每页都有出现表头,下面让小编为你带来excel2