Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。 我们都知道VLOOKUP函数在我们数据查询过程中运用的非常多,在众多函数中这个函数的使用频率应该是最高的。虽然这个函数运用的比较普遍,但是在高级查询过程中这个函数还是会有很大的弊端。今天我们就来学习自定义一个高级综合查询函数Nlookup函数,这个函数几乎能够解决我们现有vlookup函数不能解决的所有问题。我们以下面的4个场景来详细讲解一下。
Nlookup函数为我们用VBA代码自定义的一个函数,所有我们可以通过编辑代码的方法来实现我们需要的功能和操作。 函数=Mlookup(查找条件值,查找范围区域,查找值所在列,需要查询的个数),与vlookup函数最大的区别在于第四个参数。 函数解析: 1.1 查找条件值:相当于vlookup函数第一参数,我们需要查找的值; 1.2 查找范围区域:相当于vlookup函数的第二参数,我们需要查找的数据范围区域; 1.3 查找值所在列:相当于vlookup函数的第三参数,从左往右数第几列; 1.4 需要查询的个数:与vlookup函数的第四参数不同,这个参数为我们需要查找数据的第几个。 下面我们就来具体讲解解析案例场景。
场景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为查询所有符合条件的数据。 看了上面这么多经典的案例,可能大家都在想这个函数到底是怎么来的了?下面我们就来讲一下怎么定义这个函数。
第一步:按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自定义函数的制作和使用方法了吗?赶快去学习一下吧~ Excel整体界面趋于平面化,显得清新简洁。流畅的动画和平滑的过渡,带来不同以往的使用体验。 |
温馨提示:喜欢本站的话,请收藏一下本站!