如何编写与Table5高度一致的溢出范围动态数组公式
实现方案
核心逻辑是通过ROWS(Table5)动态获取结构化表的实际高度,以此控制动态数组的溢出范围:
方案1:直接复用F列现有计算结果
如果不需要重写乘法逻辑,直接裁剪F列的有效结果即可,在G列和Table5首行数据对齐的单元格输入如下公式:
=TAKE(F2:F, ROWS(Table5))
说明:公式中
F2:F需要替换为你F列有效计算结果的起始单元格,比如F列第一个计算单元格是F3就改成F3:F。TAKE函数会自动取F列前N行结果,N等于Table5的实际行数,超出部分会被直接截断,返回结果和F列正确值完全一致,溢出范围高度和Table5完全同步。
方案2:将乘法逻辑内置到动态数组公式中
如果希望G列完全独立不依赖F列,直接把原F列的乘法逻辑改写为动态数组形式即可,假设原F列的单行公式为=C列对应单元格 * E列对应单元格,则G列公式可写为:
=Table5[C列对应列名] * E2:INDEX(E:E, ROW(Table5[#Headers])+ROWS(Table5))
说明:
Table5[C列对应列名]本身就是高度和Table5完全一致的动态数组,配合INDEX函数定位E列的结束行,计算后返回的数组高度天然和Table5匹配,不会出现超出范围的问题。
版本兼容说明
如果你的Excel版本不支持TAKE函数,可将方案1的公式替换为:
=INDEX(F2:F, SEQUENCE(ROWS(Table5)))
内容的提问来源于stack exchange,提问作者SoftTimur
相关产品推荐
相关产品推荐

