【问题标题】:Increase row with indirect formula using ranges使用范围使用间接公式增加行
【发布时间】:2017-07-30 08:47:08
【问题描述】:

我希望能够在我的 Excel 表格中剪切和粘贴以下公式,并让它更新行(无列)。所以E6:AZ6 会在下面一行变成E7:AZ7,其余的保持不变。

=SUMPRODUCT(COUNTIFS(INDIRECT(FirstYears&"!$E6:$AZ6"),"X",INDIRECT(FirstYears&"!$E$1:$AZ$1"),Weeks))

我没有意识到(直到大量搜索)间接functions 不会自动发生这种情况。呸!

我找到了很多可能的解决方案,我认为 row 函数可能会有所帮助,但因为我不知道我在做什么,而且这些解决方案都没有一个范围而不是单个单元格,我一直无法找出在哪里放置行命令,如何拆分当前公式以及我需要对所有这些疯狂的标点符号做什么......!

任何帮助将不胜感激!

【问题讨论】:

  • FirstYearsWeeks 是命名范围吗?您的问题只是让INDIRECT(FirstYears&"!$E6:$AZ6) 像您希望的那样“表现”吗?您是否尝试过将ROW() 函数与OFFSET() 函数结合使用?
  • 感谢您的回复。没有命名范围,我也有同样的问题。您会将行函数放在公式中的什么位置?这可能就是我所需要的,我只是不知道如何写它才能工作。

标签: excel range row


【解决方案1】:

试试……

=SUMPRODUCT(COUNTIFS(INDIRECT(FirstYears&"!$E"&ROW($E6)&":$AZ"&ROW($E6)),"X",INDIRECT(FirstYears&"!$E$1:$AZ$1"),Weeks))

希望这会有所帮助!

【讨论】:

  • 是的!非常感谢多米尼克!它起作用了,并且完全符合我的需要!谢谢!!我现在也可以看看你是怎么做到的,这样我就可以更好地了解将来如何组合这些功能。
【解决方案2】:

我假设FirstYears 包含工作表的名称(作为文本),并且您想要分析该工作表的各个行,结果包含在第二个工作表中。

在第二个工作表的公式中使用 sn-p INDIRECT(FirstYears&!"$E6:$AZ6") 的替代方法是

OFFSET(INDIRECT(FirstYears&"!E6:AZ6"),ROW(cell)-n,0)

其中cell 是第二个工作表中第一个 结果单元格的相对地址,n 是等于ROW(cell) 的值的常数。

因此,如果第一个结果单元格是单元格 A2,则在单元格 A2 中使用的公式 sn-p 是

OFFSET(INDIRECT(FirstYears&"!E6:AZ6"),ROW(A2)-2,0)

当包含此 sn-p 的公式被复制到结果列中时,它会将目标工作表中对 E6:AZ6E7:AZ7EZ:AZ8 等的引用传递到连续的结果单元格中(即 A2A3A4 等)根据您的需要。

它是如何工作的?

OFFSET(r,i,j) 提供的范围与范围 r 的形状相同,但在工作表中移动了 i 行(如果 i 为正则向下移动,如果 i 为负则向上移动)和 j 列(如果 j 为正则向右移动如果 j 为负,则向左)。 0 是 i 和 j 的有效值。

在建议的公式中,r 始终通过使用INDIRECT 函数在目标工作表中设置为范围E6:AZ6,i 在结果列中依次取值 0,1,2,... j 始终设置为零。 i 取值 0、1、2 等,因为单元格 A2 中的 sn-p ROW(A2)-2 在复制到结果列时变为 ROW(A3)-2ROW(A4)-2 等。

注意,与SUM() 等函数不同,在单元格A2 中使用ROW(A2) 等代码sn-p 没有问题 - 它不会产生循环引用警告和结果为零,而是产生正确的值 2。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    相关资源
    最近更新 更多