Excel:如何将单元格值用作范围的一部分?

Excel:如何将单元格值用作范围的一部分?

我正在按月处理一个大型 Excel 文件。在这个文件中,我必须找到类似以下内容的内容sum

=sum(S2:AC2)

问题是范围内最后一个单元格的列发生了变化。我希望能够做这样的事情:

在单元格中S1输入一个值AC ,然后我可以写入

=sum(S2:value(S1)2)

并产生和我写的效果一样的效果

=sum(S2:AC2)

我知道这是可以做到的。我很久以前就见过。这将节省大量时间。我有数百行 for =sum(S2:AC2)。但下个月它们可能都必须改为=sum(S2:BF2)。如果有一个地方可以更改范围的末尾就好了。

顺便说一句,行号实际上也会发生变化,但是是以完全可预测的方式变化的。

理想情况下,我希望能够连接名称,例如:

=sum(S2: & S1 & row() )

我用它row()来获取当前行号

答案1

这可以通过一个非常优雅的公式实现:

=SUM($S$2:INDIRECT($S$1&ROW()))

答案2

一种方法是像这样使用 INDIRECT

=SUM(INDIRECT("S2:"&S1&"2"))

....但这意味着“硬编码”行号....

如果数据中没有空白,最好根据行中的值数量定义一个“动态命名范围”,例如根据此公式定义一个名称范围

=OFFSET($S$2,0,0,1,COUNTA($S$2:$IV$2))

那么你就可以使用

=SUM(Range)

答案3

我设法做了一些工作。但我并不满意。

假设在单元格中:

 cell(AB1) = "AD"
 cell(AC1) = "AG"

然后在行中x我有以下内容

 cell(ABx)=AB$1 & row()
 cell(ACx)=AC$1 & row()

然后我可以设置

 cell(AAx)=sum(indirect(ABx &":"& ACx))

虽然这可行,但这意味着我必须手动创建具有所需代码的两列。

能够做类似的事情就好了

 cell(AAx)=sum(indirect(AB$1 & row() &":"& AC$1 & row()))

噢,它确实有效!!!

相关内容