在附图中,我想将工作表 1 的 D 列中的 C2 到 C14 相加。用户将在其他工作表中选择此数字“14”,例如在工作表 2 的 R4 单元格中。C 列中的下一行将是 C3:C15,它应该通过拖动自动形成。我该如何修改命令来执行此操作?
我在下面详细阐述我的问题:***范围将由用户在 Sheet 2 的 R4 单元格中定义。基于此用户定义的范围,Sheet 1 中将汇总多少个值 - 这将发生变化。如果 R4 单元格输入为 10,我想先在 D2 单元格中求和 sum(C2:C11),然后在 D3 单元格中求和 sum(C3:C12) 等。如果用户在 Sheet 2 的 R4 单元格中给出范围 12,我想在 D2 单元格(Sheet 1)中求和 sum(C2:C13),在 D3 单元格中求和 sum(C3:C14) 等......
答案1
您可以通过多种方式执行此操作,包括 SUMIFS 或 OFFSET。使用 INDEX 不会造成任何波动,而且速度很快:
=SUM(C2:INDEX($C2:$C$100,Sheet2!$R$4))
将 INDEX 视为从数组中选择第 i 个数字或引用。=INDEX($C$2:$C$100,2)
在单元格中单独使用 say 只会从 C3 返回值 13(来自您的示例)。但是 INDEX 也是少数几个可以返回引用的函数之一,因此=SUM($C$2:INDEX($C$2:$C$100,2))
变为=SUM($C$2:$C$3)
。
编辑:请注意 INDEX 的范围参数中相对引用的正确使用。您希望“索引数组”的开头随着公式向下拖动而移动,否则您将始终选择相同的索引单元格。但是,当按原样使用公式时,Excel 会警告公式可能会跳过相邻的值(这正是我们打算做的),但我不喜欢那些绿色的小警告箭头。您可以忽略它而不会出现问题,但这里有一个具有绝对引用且没有警告的替代公式(尽管计算量略大):
=SUM(C2:INDEX($C$2:$C$100,Sheet2!$R$4+ROW(C2)-1))