欧非资源网:安全、免费、专业放心的资源下载站! 最新软件|软件分类

您的位置:欧非资源网 > Excel专区 > Excel函数 > excel中比vlookup函数更厉害的自制Nlookup综合查询函数使用实例教程

excel中比vlookup函数更厉害的自制Nlookup综合查询函数使用实例教程

时间:2020-11-17 17:31作者:admin来源:未知人气:378我要评论(0)

我们都知道VLOOKUP函数在我们数据查询过程中运用的非常多,在众多函数中这个函数的使用频率应该是最高的。虽然这个函数运用的比较普遍,但是在高级查询过程中这个函数还是会有很大的弊端。今天我们就来学习自定义一个高级综合查询函数Nlookup函数,这个函数几乎能够解决我们现有vlookup函数不能解决的所有问题。我们以下面的4个场景来详细讲解一下。

一、Nlookup自定义函数介绍

Nlookup函数为我们用VBA代码自定义的一个函数,所有我们可以通过编辑代码的方法来实现我们需要的功能和操作。

函数=Mlookup(查找条件值,查找范围区域,查找值所在列,需要查询的个数),与vlookup函数最大的区别在于第四个参数。

函数解析:

1.1 查找条件值:相当于vlookup函数第一参数,我们需要查找的值;

1.2 查找范围区域:相当于vlookup函数的第二参数,我们需要查找的数据范围区域;

1.3 查找值所在列:相当于vlookup函数的第三参数,从左往右数第几列;

1.4 需要查询的个数:与vlookup函数的第四参数不同,这个参数为我们需要查找数据的第几个。

下面我们就来具体讲解解析案例场景。

二、Nlookup函数综合使用场景

场景1:从数据源中查询姓名为张三的第二次销售额

比vlookup更厉害的自制Nlookup综合查询函数,职场老手都没有见过

 

函数=Nlookup(H5,B1:F14,5,2)

函数解析:前面3个参数与VLOOKUP函数的使用方法一致,第四个参数为2,因为要求的是第二条数据。

场景2:查询张三的最后一次销售记录

比vlookup更厉害的自制Nlookup综合查询函数,职场老手都没有见过

 

函数=Nlookup(H10,B1:F14,5,0)

函数解析:修改第四个参数的值为0,代表查找最后一个条件值。

场景3:案例三:多条件查询,查找5月2日李四的销售额

比vlookup更厉害的自制Nlookup综合查询函数,职场老手都没有见过

 

函数=Nlookup(H11:I11,A1:F14,6,1)

函数解析:多条件查询的时候,第一参数查询的条件值直接选择两个参数,第四参数输入1,代表精确查找一个。

场景4:查找王五的所有销售额数据(提取人员所有数据)

比vlookup更厉害的自制Nlookup综合查询函数,职场老手都没有见过

 

函数=Nlookup(K4,B1:F14,5,-1)

函数解析:第四参数-1为查询所有符合条件的数据。

看了上面这么多经典的案例,可能大家都在想这个函数到底是怎么来的了?下面我们就来讲一下怎么定义这个函数。

三、Nlookup函数自定义方法

第一步:按alt+f11或者鼠标邮件点击工作表名称,点击查看代码,进入VBA代码编辑窗口;

比vlookup更厉害的自制Nlookup综合查询函数,职场老手都没有见过

 

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

相关阅读 Excel有哪些常用的数学函数?​Excel取消表格中虚线的两种方法Excel最常见的「错误值」,这些含义你都知道吗?实现快速找出Excel表格中两列数据不同内容的3种方法!如何利用Excel一键提取身份证的这些重要信息,公式直接套用!Excel如何制作动态红绿灯,工作可不要亮红灯哦Excel身份证号大探索excel如何根据日期按月汇总计算公式Excel浪漫表白公式,发给心仪的她/他Excel表格如何自动求和

文章评论
发表评论

热门文章 excel 两表数据快速对比,高手都是这样做,四种方法随你选.xlsm是什么文件格式,以及xlsm文件怎么打开的方法excel if函数如何多个条件并列excel中计算加权平均数的公式:用SUMPRODUCT和SUM函数计算加权平均

最新文章 Excel有哪些常用的数学函数?​Excel取消表格中虚线的两种方法 Excel最常见的「错误值」,这些含义你都知道吗?实现快速找出Excel表格中两列数据不同内容的3种方法!如何利用Excel一键提取身份证的这些重要信息,公式直接套用!Excel如何制作动态红绿灯,工作可不要亮红灯哦

人气排行 excel 两表数据快速对比,高手都是这样做,四种方法随你选.xlsm是什么文件格式,以及xlsm文件怎么打开的方法excel if函数如何多个条件并列excel中计算加权平均数的公式:用SUMPRODUCT和SUM函数计算加权平均excel中IF条件函数10大用法完整版,全会是高手,配合SUMIF,VLOOKUPexcel中COUNTIFS函数9种高级用法详解,条件统计重复值,告别加班涨工如何解除Excel VBA工程密码excel 如何根据身份证号码提取户籍所在省份地区函数公式

盖楼回复X

(您的评论需要经过审核才能显示)