You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求两种Microsoft Excel公式:特定行列交叉值、指定列与命名行交叉的最后值

Excel 公式问题解答

1. 返回特定名称行与特定列交叉处的单元格值

可以通过多种公式实现,其中INDEX + MATCH组合适配所有Excel版本,灵活性最高;XLOOKUP则更简洁(仅支持Excel 365/2021及以上版本)。

示例场景

假设表格结构:

  • 行名称存储在A列(如A2:A100)
  • 列名称存储在第1行(如B1:Z1)
  • 需查找行名称为"产品A"、列名称为"2024年5月销量"的单元格值

公式1:INDEX + MATCH

=INDEX(B2:Z100, MATCH("产品A", A2:A100, 0), MATCH("2024年5月销量", B1:Z1, 0))

第一个MATCH定位目标行的相对行号,第二个MATCH定位目标列的相对列号,INDEX根据行列坐标返回对应单元格值。

公式2:XLOOKUP

=XLOOKUP("产品A", A2:A100, XLOOKUP("2024年5月销量", B1:Z1, B2:Z100))

内层XLOOKUP提取目标列的全量数据,外层XLOOKUP匹配目标行名称并返回对应值。

2. 返回特定列中与给定名称行交叉的最后一个单元格值

分两种常见场景说明:

场景A:同一名称对应多行记录,取特定列中该名称的最后一个值

假设:

  • 行名称在A列(存在重复项,如A2:A100)
  • 目标数据列是B列(如B2:B100)
  • 需查找行名称为"产品A"的最后一条记录值

公式1:LOOKUP(全版本兼容)

=LOOKUP(2, 1/(A2:A100="产品A"), B2:B100)

1/(A2:A100="产品A")生成由1和#DIV/0!组成的数组,LOOKUP会忽略错误值,定位到最后一个1对应的B列值。

公式2:XLOOKUP(Excel 365/2021+)

=XLOOKUP("产品A", A2:A100, B2:B100, , , -1)

最后一个参数-1表示从后往前匹配,直接返回目标名称的最后一条记录值。

场景B:特定行内,取某列范围的最后一个非空值

假设:

  • 目标行名称为"汇总行",行号通过MATCH获取
  • 需取该行B列到Z列的最后一个非空值

公式:INDEX + COUNTA

=INDEX(INDEX(B:Z, MATCH("汇总行", A:A, 0), 0), COUNTA(INDEX(B:Z, MATCH("汇总行", A:A, 0), 0)))

内层INDEX提取目标行的全列数据,COUNTA统计该行非空单元格数量,外层INDEX返回最后一个非空值。

内容的提问来源于stack exchange,提问作者Poliakoff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:20:07