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

如何用Excel表格结构化引用按Column3值获取Column2对应最后单元格?

解决方案

一、用结构化引用获取Column3指定值对应的Column2最后一行值

针对你的需求,推荐两种基于结构化引用的公式方案,无需依赖基础数组公式:

  1. LOOKUP函数方案(简洁高效)
    直接使用LOOKUP匹配最后一个符合条件的行,结构化引用自动适配表格扩展:
=LOOKUP(2,1/(Table1[Column3]="A"),Table1[Column2])
  • 原理:1/(Table1[Column3]="A")会生成由1和#DIV/0!组成的数组,LOOKUP会忽略错误值,找到最后一个1对应的Column2值。
  • 替换公式中的"A"为目标值,即可匹配不同的Column3内容。
  1. INDEX+SUMPRODUCT方案(精准控制行号)
    如果需要明确计算相对行号,可使用此方案:
=INDEX(Table1[Column2],SUMPRODUCT(MAX((Table1[Column3]="A")*ROW(Table1[Column3]))-ROW(Table1[#Headers])))
  • 原理:MAX((Table1[Column3]="A")*ROW(Table1[Column3]))获取Column3值为"A"的最后一行绝对行号;减去表头行号ROW(Table1[#Headers])得到表格内的相对行号,再用INDEX提取对应Column2的值。

二、创建随Column3值更新的动态命名范围

要生成随Column3指定值最后一行变化的动态范围(如示例中的A1:B5),可通过Excel名称管理器实现,推荐使用非易失性的INDEX函数构建:

  1. 打开Excel的「公式」选项卡,点击「名称管理器」;
  2. 点击「新建」,输入名称(如DynamicRange);
  3. 在「引用位置」中粘贴以下公式:
=Table1[#All]:INDEX(Table1[#All],SUMPRODUCT(MAX((Table1[Column3]="A")*ROW(Table1[Column3]))-ROW(Table1[#All])+1,COLUMNS(Table1[#All])))
  • 原理:
    • Table1[#All]代表整个表格的区域(含表头);
    • SUMPRODUCT(...)计算Column3值为"A"的最后一行在表格内的相对行数;
    • INDEX定位到目标行的最后一列,结合起始区域形成动态范围,当表格扩展或Column3的匹配行变化时,范围会自动更新。

如果偏好使用OFFSET(易失性函数,注意性能影响),可使用:

=OFFSET(Table1[#All],0,0,SUMPRODUCT(MAX((Table1[Column3]="A")*ROW(Table1[Column3]))-ROW(Table1[#All])+1,COLUMNS(Table1[#All])))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 16:32:32