输入
我有两个带有输入的标签。
第一张表显示了每种类型的对象在其前 24 个月内的价值演变。可将其视为一种可衡量的演变。
第二张表针对每种类型的对象设置了每个日历月中有多少个对象“开始”。
输出
对于每个日历月、每种类型的对象,我需要获取到那时为止已经开始的所有对象(该类型)的演变值的总和。
例如,对于 2021-05 和 C 型,该值为(编辑:第一个答案后更正)
= 'Starting objects'!B6 * 'Evolutions'!F6
+ 'Starting objects'!C6 * 'Evolutions'!E6
+ 'Starting objects'!D6 * 'Evolutions'!D6
+ 'Starting objects'!E6 * 'Evolutions'!C6
+ 'Starting objects'!F6 * 'Evolutions'!B6
因此,当我移动到后面的列时,公式变得越来越长。这是因为“起始对象”选项卡中的每个单个值在 24 列中都有贡献(因为演化持续 24 个月)。
这需要 SUMPRODUCT,但问题是要相乘的两个范围需要以相反的方向读取。“最旧”的对象需要观察期间的“最新”进化值。Excel 无法轻松恢复范围,因此我尝试使用临时选项卡以相反的顺序显示进化,但仍然找不到可以轻松拖动/复制的公式。
我怎样才能更好地实现这一目标?
答案1
=SUMPRODUCT('Evolutions'!$B6:F6,'Starting Objects'!$B6:F6)
答案2
我最终找到了以下解决方案(不需要隐藏/临时表):
=SUMPRODUCT(
'Starting Objects'!$B4:F4;
INDEX(
'Evolutions'!$B4:F4;
1;
COUNTA('Evolutions'!$B4:F4) - COLUMN('Evolutions'!$B4:F4) + 1
)
)
INDEX 构造反转了 Evolutions 表中的范围。