我有一个 SUM 公式=SUM(F1:F10)
,如何通过引用单元格值使“10”动态化?例如,单元格D2
的值为 10,因此我的目标是将“F”与单元格的值连接起来D2
。如果我将单元格值从 10 更改D2
为 20,则公式应该更新。
我正在考虑这样的事情:
=SUM(F7:INDIRECT("F" & TEXT($D$2,"0")))
但我需要INDIRECT("F")
动态,因为它的公式也需要应用于 G 列。
抱歉,这个问题很简单,但我已经忘记它是如何工作的了。
答案1
另一种方法是使用=OFFSET()
函数来定义被加数。
例如,定义一个 1 列宽的范围,从单元格右侧的列OFFSET(F1,0,add_col,rows_to_sum,1)
开始,向下延伸行,因此add_col
F1
row_to_sum
OFFSET(F1,0,0,10,1)
相当于F1:F10
OFFSET(F1,0,0,20,1)
相当于F1:F20
OFFSET(F1,0,1,10,1)
相当于G1:G10
OFFSET(F1,0,1,20,1)
相当于G1:G20
add_col
并且rows_to_sum
可以是合适的单元格引用A1
,例如D2
等等。
只需将其包装OFFSET()
在 a 内=SUM()
即可获得类似=SUM(OFFSET(F1,0,A1,D2,1))
使用相对/绝对单元格引用($ 符号)的适当内容。
如果您不总是希望从工作表的第一行开始求和,则请将 0 以外的值用作函数的第二个参数OFFSET()
。例如:
OFFSET(F1,6,0,14,1)
相当于F7:F20
并且单元格引用可以再次用于第二个参数。
类似地,如果要使求和涵盖多列,则对函数的第五个参数使用 1 以外的值OFFSET()
。例如:
OFFSET(F1,6,0,14,2)
相当于F7:G20
并且单元格引用可以再次用于第五个参数。
看https://support.microsoft.com/en-us/office/offset-function-c8de19ae-dd79-4b9b-a14e-b4d906d11b66有关工作表函数的详细信息=OFFSET()
答案2
SUBSTITUTE(ADDRESS(1,F7,4),"1","")
将返回单元格的列字母F7
。这将有助于获取列,您可以使用以下方法将其合并到公式中:
=SUM(F1:INDIRECT(SUBSTITUTE(ADDRESS(1,F7,4),"1","") & TEXT($D$2,"0")))