Table of contents
VLOOKUP 是Excel中一个非常流行的函数,指的是垂直查找。 我们可以使用内置的 VLOOKUP 函数,或者我们甚至可以制作自己的公式,作为垂直查询,以更多的动态标准返回值。 在这篇文章中,我将展示如何通过以下方法找到一列中的最后一个值 VLOOKUP 在Excel中。
下载练习册
下载我们用来准备这篇文章的Excel工作簿。
VLOOKUP 列中的最后值.xlsx使用VLOOKUP函数查找一列中的最后一个值
让我们首先介绍一下我们的工作簿。 在这个数据表中,我使用了 3列 和 10行 根据相应的日期来呈现一些销售人员的销售金额。
在这个方法中,我们将通过使用以下方法找到一个值的最后一次出现 VLOOKUP功能 . VLOOKUP 代表着''。 垂直查询 它是一个让Excel在某一列中搜索某一数值的函数。 这里我们有3个不同的销售金额,分别是 比尔。 现在我们要找到他最后一次销售的金额,在 细胞G5
步骤:
➦ 激活 细胞G5。 输入下面的公式。
=vlookup(f5,c5:d13,2)
➦ 击打 进入 按钮,你就会得到他最后发生的销售情况。
但是 VLOOKUP 对于近似模式下的未分类数据,不会给出正确的答案。 见下图。
而如果我们用 完全匹配 因为vlookup使用二进制搜索,所以当它发现一个比查找值大的值时,就会返回到之前的值来显示,见下图。
因此,为了克服这种情况,对于未排序的数据,要找到最后出现的数据,我们必须使用查找函数或其他组合公式。 现在我们将在以下章节讨论这些方法。
用VLOOKUP函数查找列中最后一个值的替代方法
现在我们将应用四种替代方法来寻找一列中的最后一个值。
方法1:使用LOOKUP函数查找列中的最后一个值
在这里,我们将找到一个列的最后一个值,该列有 LOOKUP函数 在Excel中。 LOOKUP 函数用于在一列或一行中寻找第二个列或行中相同位置的一个特定值。 我将在这里找到最后的销售金额,在 细胞G4。
步骤。
➦ 激活 细胞G4。
➦ 输入下面的公式。
=lookup(2,1/(d:d""),d:d)
➦ 然后按下 进入 按钮,你将得到最后一个值。
👉 公式分解。
➥ D:D""
在这里,它将检查是否在 D栏 它将返回作为
{false;false;false;true;true;true;true;true;true;false.....}
➥ 1/(D:D"")
我们已将 1 由于FALSE意味着 0 而TRUE意味着 1 因此,结果将是如下。
{#div/0!;#div/0!;#div/0!;1;1;1;1;1;#div/0!;#div/0!}
➥ lookup(2,1/(d:d""),d:d)
我设置了查找值2,因为查找函数将通过列找到2,当它达到错误时,它将返回到最接近的值1,并显示该结果。 这将返回为
367
方法2:使用INDEX和MATCH函数来查找列中的最后一个值
在这里,我们将使用组合的 索引 和 匹配 职能。 INDEX函数 返回一个值或对一个表或范围内的值的引用。 以及 MATCH函数 是用来在一个范围内搜索一个指定的项目,然后返回该项目在范围内的相对位置。
步骤。
➦ 在下面的公式中键入 细胞G5
=index(d5:d13,match(f5,c5:c13,1))
➦ 击 进入 按钮。
👉 这个公式是如何工作的。
➥ match(f5,c5:c13,1)
这里 MATCH函数 是用来寻找 细胞F5 用于从数组中按升序排序的项目 C5:C13。
6
它实际上是显示从第一个条目开始计算的行数。
➥ index(d5:d13,match(f5,c5:c13,1))
而且 INDEX函数 将给出相应的销售额( D5:D13) 根据数组中的前一个匹配,( C5:C13) 这将返回作为
367
这实际上是最后一次发生在 细胞F5
方法3:结合INDEX、MAX、SUMPRODUCT和ROW函数来查找列中的最后值
现在我们要做的任务是结合 INDEX, MAX, SUMPRODUCT, 和ROW 职能。 ROW功能 将找到行号。 废物利用 是一个将单元格或数组的范围相乘并返回乘积之和的函数。 MAX功能 会找到最大的数字。 而 索引 函数返回一个值或对一个表或范围内的值的引用。
步骤。
➦ 启用编辑功能。 细胞F7
➦ 复制并粘贴下面的公式。
=index($c$5:$c$13,sumproduct(max(row($b$5:$b$13)*($e$7=$b$5:$b$13))-4))
➦ 并按下 进入 按钮。
👉 这个公式是如何工作的。
➥ 行($b$5:$b$13)
ROW函数将显示数组的行号,该数组将返回为-。
{5;6;7;8;9;10;11;12;13}
➥ ($e$7=$b$5:$b$13)
这里 细胞E7 是我们的查询值,这个公式将通过数组匹配它 B5:B13 然后,它将返回为
{false;false;false;false;true;false;false;true}。
➥ 行($b$5:$b$13)*($e$7=$b$5:$b$13)
正是前面两个公式的乘法,才会使相应的行数实际相乘。 失败 途径 0 和 为真 途径 1 因此,乘法后,它将返回为---。
{0;0;0;0;9;0;0;0;13}
➥ max(row($b$5:$b$13)*($e$7=$b$5:$b$13))
ǞǞǞ 规模 函数将从之前的结果中找到最大值,该值将作为
13
➥ sumproduct(max(row($b$5:$b$13)*($e$7=$b$5:$b$13))-4)
现在 废物利用 函数用于查找数组中的行号 . 由于我们的名单从 第五届 行起。 4 因此,最后一次出现的 "A "的位置被减去了。 账单 是 9 在我们的列表中,因此该公式将返回为------。
9 .
➥ index($c$5:$c$13,sumproduct(max(row($b$5:$b$13)*($e$7=$b$5:$b$13))-4))
指数 函数用于查找最后一个匹配的名字的销售情况。 它将返回为---。
563
这是我们最后一次发生在 比尔。
方法四:使用Excel VBA查找列中最后出现的数值
如果你喜欢在Excel中写代码,那么这个方法很适合你。 我们也可以通过使用VBA方法来执行前面的操作。 让我们通过下面的步骤来了解一下我们如何能轻松做到这一点。
为此,首先,我将为独特的名字制作一个下拉条。 然后,我将制作一个新的用户定义的函数" 最后一项查询 "使用 VBA 我们将用它来寻找最后出现的情况。
步骤1。
➦ 首先,将主工作表中的独特名称复制到新工作表中。
第2步。
➦ 然后到主工作表,激活任何新单元格。 我选择了 E5.
➦ 点击 数据> 数据工具> 数据验证。
A 对话框 将会出现。
第3步。
➦ 选择 列表 从 允许 吧。
➦ 然后按下 开放 的图标。 来源 吧。
第4步。
➦ 之后,进入你的新工作表,选择独特的名称。
➦ 新闻 认可
看到一个 下箭头 通过点击这里,你可以选择任何名字。 这将节省我们的时间,因为我们不需要每次都输入名字。
现在我们要做一个新的函数,名为 最后一项查询 用Excel VBA。
第5步。
➦ R 鼠标右键单击 你的鼠标放在工作表的名称上。
➦ 选择 查看代码 从 上下文菜单 .
A VBA 窗口将被打开。
第6步。
➦ 输入下面的代码。
Option Explicit Sub vlookup_last() End Sub Function LastItemLookup(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer) Dim x As Long For x = LookupRange.Columns(1).Cells.Count To 1 Step -1 If Lookupvalue = LookupRange.Cells(x, 1) Then LastItemLookup = LookupRange.Cells(x, ColumnNumber) Exit Function End If Next x End Function
第7步。
➦ 然后按播放按钮,运行代码。 A 对话框 名为 巨集 将会出现。
➦ 点击 运行 .
我们的新功能现在已经准备好了。
第8步。
现在回到你的工作表。
➦ 激活 细胞F5
➦ 用新的函数输入下面的公式。
=LastItemLookup(E5,B5:C13,2)
➦ 新闻 进入 的最后一次发生结果,以获得 罗恩 .
现在,当你选择任何一个销售人员的名字时,你会得到他相应的最后出现的值。
总结
我希望上面描述的所有方法都能很好地vlookup一列中的最后一个值。 欢迎在评论区提出任何问题,并请给我反馈。