对 Excel 中其他 sheet 中指定的列求和

Sum as many columns as indicated in other sheet in Excel

我正在创建一个包含公司财务的 excel 工作簿。在此工作簿中,有一个带有损益表的 sheet 和一个带有参数的 sheet。

在带参数的sheet中是一个单元格,其中包含公司产品的服务合同预计持续多长时间的季度数。

在带有损益表的 sheet 中,我想对与参数 sheet 中的数字一样多的单元格求和。

例如"Parameter"-sheet 单元格 B7 的数字为 4。现在在 "Income statement"-sheet 中,我希望单元格 C8 的总和到右侧的 4 列(因为参数!B7 = 4).但是,如果我将参数中的数字更改为 5,它必须在损益表的右侧自动占据 5 列。

我试过将 Excel 更改为 R1C1,但我不知道如何创建它。有或(如果可能)没有 VB.

它必须是这样的: =SUM(R8C3:R8C[+Paramaters!R7C2])

有几种方法可以做到这一点。第一个会被抵消。您的偏移公式基于此格式。

OFFSET(REFERENCE CELL, NUMBER OF ROWS TO MOVE, NUMBER OF COLUMNS TO MOVE, HOW MANY ROWS TO RETURN FROM THE NEW POINT, HOW MANY COLUMNS TO RETURN FROM THE NEW POINT)

正面会使您向下或向右移动。负值向左或向上移动。

所以在你的情况下你会看到类似这样的东西:

=SUM(OFFSET($C8,0,0,1,'Parameters'!B7))

现在我没有锁定 8,以防您计划向下复制并希望为向下复制的每一行创建一个新行,并且不希望 C8 始终是相同的参考点。但是,有很多方法可以解决这个问题,如果您愿意,可以保留 $C$8。

话虽如此,如果您只使用几次偏移,请务必继续使用它不会减慢速度。但是,如果您经常使用它,它会减慢速度,因为它是一个不稳定的函数,会在工作表上的任何信息发生更改时重新计算。

现在我们有多种选择!

您也可以使用 INDEX 选项。索引选项,因为它 returns 幕后的单元格地址,可以按如下方式使用:

=SUM(C8:INDEX(8:8,COLUMN(C8)+'Parameters'!B7))