【问题标题】:Formula/Indirect issue spanning multiple cells in a column跨列中多个单元格的公式/间接问题
【发布时间】:2016-12-01 16:53:01
【问题描述】:

全部!我正在尝试将动态工作表名称放入我的 Google 工作表,这样我就不必为我创建的每个工作表继续编辑所有这些公式。我认为 INDIRECT() 效果最好,但现在我在公式中更新单元格时遇到问题,因为我将公式下拉到列中的其他单元格。

我目前正在使用:

=IF(indirect($J$1&"!$G9")=0,indirect($J$1&"!$C9"),0)

这计算得很好,但是当我向下拖动公式时,它不会更新 $G9 和 $C9 单元格引用,这将迫使我进入数百个单元格并手动编辑它们。我确信有更好的方法可以做到这一点,但我不确定。

此外,J1 持有工作表的名称。在这种情况下,J1=January,使用以下公式:

    function sheetName() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

J1 公式就是=sheetName()。不确定这些是否重要,但以防万一......

【问题讨论】:

  • 请分享电子表格的链接,如果可能,请提供示例版本。此外,将 ARRAYFORMULA() 视为一种不将相同公式复制到行/列中的多个单元格的方法。
  • docs.google.com/a/miparanormal.com/spreadsheets/d/… 这不是确切的表格,因为其中包含很多敏感信息,但这是我将所有公式放在一起的快速表格。
  • 您能否向知道该链接的任何人提供查看或编辑(最好)权限? - 我完全理解敏感数据和样本数据。我经常遇到同样的情况。
  • 抱歉,忘记更新权限了。现在应该设置。

标签: google-sheets


【解决方案1】:

你可以放

=IF(indirect($A$2&"!"&address(row(G3),column(G3)))>0,indirect($A$2&"!"&address(row(H3),column(H3))),0)

这样当你把 G3 和 H3 拉下来时,它们就会变成 G4 和 H4 等等。

你可能打算把 > 放在第一个间接之后,否则你总是得到零?如果不只是将其改回=。

【讨论】:

    【解决方案2】:

    通过将单元格引用放在引号中,它现在可以在引号内查找任何引用。这是一个在 query() 函数中尤其明显的问题。同样,如果您在工作表中插入一行或一列,公式将不会更新引号中的范围引用。所以把它改成:

    =IF(indirect($J$1&"!"&cell("address",G9))=0,indirect($J$1&"!"&cell("address",G9)),0)
    

    希望这会有所帮助!

    至于 ARRAYFORMULA() 停止将其复制到行中,您必须将公式更改为可能是 VLOOKUP() 函数,因为 INDIRECT() 不允许使用数组。

    【讨论】:

      【解决方案3】:

      您实际上可以通过间接公式和正确使用地址来动态地做到这一点:

      =arrayformula(IF(indirect($J$1&"!"&address(row(),7,4)&":"&address(10,7,4))=0,indirect($J$1&"!"&address(row(),3,4)&":"&address(10,3,4)),0))

      请注意,我放了一个 10 只是为了举例,你应该用你认为有多少行来替换它。

      【讨论】:

        猜你喜欢
        • 2021-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-22
        • 1970-01-01
        • 2016-11-30
        • 2016-03-31
        • 2023-01-13
        相关资源
        最近更新 更多