我有 3 张工作表,分别是“sheet1”、“sheet2”和“datasheet”。在“sheet2”的单元格 B3 中有“$A$3”(这是动态生成的),而在“sheet1”上,我想基于“datasheet”中的数据创建一个函数(例如求和或求平均值),使用 $A$3 作为起始行直到最后一行。我该怎么做?嵌套函数太多,我不断收到解析错误:
=SUM('datasheet'!INDIRECT('sheet2'!B3 & ":" & 'datasheet'!A))
基本上,就伪代码而言:
=SUM(datasheet[cell ID written on B3 of "sheet2"]:[last row of "datasheet"])
答案1
如果列是静态的(始终为 A),则在 Sheet2 的 B3 中只需输入起始行号并使用以下公式:
=SUM(INDEX('datasheet'!A:A,Sheet2!$B$3):INDEX('datasheet'!A:A,MATCH(1E+99,'datasheet'!A:A)))
它将从指示的行到最后一个包含数字的单元格求和。
另一个选项是 SUM 将忽略任何非数字值,公式可以缩短为:
=SUM(INDEX('datasheet'!A:A,Sheet2!$B$3):'datasheet'!A65000)
将 65000 更改为一个在您的数据集中永远无法达到的荒谬大数字。