首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨列多个单元格的公式/间接问题

跨列多个单元格的公式/间接问题
EN

Stack Overflow用户
提问于 2016-12-01 16:53:01
回答 3查看 965关注 0票数 1

全!我试图在我的Google工作表中添加一个动态工作表名,这样我就不必为我创建的每个工作表编辑所有这些公式了。我认为间接()是最好的,但现在我遇到了一个问题,当我将公式拉到列中的其他单元格时,公式中的单元格正在更新。

我目前正在使用:

代码语言:javascript
复制
=IF(indirect($J$1&"!$G9")=0,indirect($J$1&"!$C9"),0)

这很好,但是当我将公式向下拖动时,它不会更新$G9和$C9单元格引用,这将迫使我减少数百个单元格并手动编辑它们。我相信有更好的方法去做这件事,但我不确定。

而且,J1保存着工作表的名称。在本例中,使用以下公式进行J1=January:

代码语言:javascript
复制
    function sheetName() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

J1公式就是简单的=sheetName()公式。不确定这有什么关系,但以防万一.

EN

回答 3

Stack Overflow用户

发布于 2016-12-01 20:19:41

你可以把

代码语言:javascript
复制
=IF(indirect($A$2&"!"&address(row(G3),column(G3)))>0,indirect($A$2&"!"&address(row(H3),column(H3))),0)

所以当你把G3和H3拉下来的时候,它们会变成G4和H4等。

你可能是想把>放在第一个间接的后面,否则你总是得到零?如果不只是将其改为=。

票数 0
EN

Stack Overflow用户

发布于 2016-12-01 20:26:58

通过将单元格引用放置在quates中,它现在可以在引号中查找任何引用。在query()函数中,这是一个特别明显的问题。同样,如果在工作表中插入行或列,则公式将不会更新引号中的范围引用。因此,将此更改为:

代码语言:javascript
复制
=IF(indirect($J$1&"!"&cell("address",G9))=0,indirect($J$1&"!"&cell("address",G9)),0)

希望这能帮上忙!

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

票数 0
EN

Stack Overflow用户

发布于 2016-12-03 11:57:09

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

=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仅仅作为一个目的,您应该用您认为有多少行来替换它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40916174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档