我正在按月处理一个大型 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()))
噢,它确实有效!!!