Excel 中 VLOOKUP 从后往前查找的解决方案

在 Excel 中,VLOOKUP 函数默认是从上到下(前向后)查找,但有时我们需要从后往前查找(如查找最后一个匹配项)。以下是几种实现方法:

方法 1:使用 INDEX + MATCH 组合(推荐)

=INDEX(结果列, MATCH(2, 1/(条件列=查找值), 1))

公式说明:

  • 条件列=查找值:创建布尔数组(TRUE/FALSE)

  • 1/(条件列=查找值):将 TRUE 转为 1,FALSE 转为错误值

  • MATCH(2, ... ,1):查找大于等于 2 的值(总是返回最后一个匹配位置)

  • INDEX:返回对应位置的值

=INDEX(C2:C10, MATCH(2, 1/(A2:A10="苹果"), 1))

方法 2:使用 LOOKUP 函数

=LOOKUP(2, 1/(条件列=查找值), 结果列)

公式说明:

  • 同样利用 1/(条件列=查找值) 创建数组

  • LOOKUP 默认会返回最后一个匹配项

=LOOKUP(2, 1/(A2:A10="苹果"), C2:C10)

方法 3:使用 XLOOKUP(Excel 365 或 2021+)

=XLOOKUP(查找值, 条件列, 结果列, , , -1)

参数说明:

  • 最后一个参数 -1 表示从后向前搜索

  • 最简洁的解决方案(推荐新版 Excel 用户使用)

示例:

=XLOOKUP("苹果", A2:A10, C2:C10, , , -1)

方法 4:使用辅助列 + VLOOKUP

  1. 添加辅助列(假设在 D 列):

    =ROW()/COUNTIF($A$2:A2, A2)

  2. 使用 VLOOKUP:

    =VLOOKUP(MAX(IF(A2:A10="苹果", D2:D10)), D2:E10, 2, FALSE)

示例场景

假设数据如下:

A列(产品)B列(日期)C列(销量)
苹果2023-01-01100
香蕉2023-01-02200
苹果2023-01-03150
苹果2023-01-05180

查找最后一个"苹果"的销量:

=INDEX(C2:C5, MATCH(2, 1/(A2:A5="苹果"), 1))

结果将返回 180(最后一个苹果的销量)

注意事项

  1. 所有方法都是数组公式,输入后需按 Ctrl+Shift+Enter(Excel 365 除外)

  2. 确保区域大小一致

  3. 方法1和2在找不到匹配项时返回 #N/A

  4. 处理大型数据集时,INDEX+MATCH 比数组公式更高效

这些方法都绕过了 VLOOKUP 的前向搜索限制,实现了从后往前的查找功能。根据你的 Excel 版本和个人偏好,选择最适合的方法即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值