【问题标题】:Does ARRAYFORMULA in Google Sheet Distinguish Between Hard-Coded Ranges and CONCATENATEd RangesGoogle Sheet 中的 ARRAYFORMULA 是否区分硬编码范围和连接范围
【发布时间】:2019-11-21 22:37:08
【问题描述】:

在 Google 表格中使用 ARRAYFORMULA 函数时,在以下公式中对目标范围进行硬编码可以按预期工作:

=ArrayFormula(Sheet1!$FH$3:Sheet1!$GH$3)

ARRAYCONSTRAIN 也一样:

=ARRAY_CONSTRAIN(Sheet1!$FH$3:Sheet1!$GH$3,1,27)

当范围值是动态的使用 CONCATENATE 和其他嵌套函数时,这些公式会失败:

=ArrayFormula(CONCATENATE(CELL("address",OFFSET(INDIRECT(CELL("address",INDEX(Sheet1!3:3,,MATCH(TODAY(),Sheet1!3:3,1)))),0,-26)),":",CELL("address",INDEX(Sheet1!3:3,,MATCH(TODAY(),Sheet1!3:3,1)))))

上面的公式只返回引用的范围(即“Sheet1!$FH$3:Sheet1!$GH$3”)而不是范围值。我尝试过使用花括号 {} 以及 ctrl-shift-enter

有没有办法使用CONCATENATE 或类似函数(例如JOIN)构造的动态范围和ARRAYFORMULAARRAYCONSTRAIN 函数来检索单元格值的范围?

【问题讨论】:

    标签: arrays google-sheets concatenation google-sheets-formula array-formulas


    【解决方案1】:

    你最好只和:

    =ARRAYFORMULA(Sheet1!$FH$3:$GH$3)
    

    无需重复工作表名称两次

    在构建范围时,您总是需要使用INDIRECT,例如:

    =ARRAYFORMULA(INDIRECT("Sheet1!FH3:GH3"))
    

    上面的公式只返回引用的范围(即“Sheet1!$FH$3:Sheet1!$GH$3”)而不是范围值

    在你的情况下尝试:

    =ARRAYFORMULA(INDIRECT(CONCATENATE(CELL("address", OFFSET(INDIRECT(
     CELL("address", INDEX(Sheet1!3:3,, MATCH(TODAY(), Sheet1!3:3, 1)))), 0, -26)),":", 
     CELL("address", INDEX(Sheet1!3:3,, MATCH(TODAY(), Sheet1!3:3, 1))))))
    

    可以简化为:

    =ARRAYFORMULA(INDIRECT(CELL("address", OFFSET(INDIRECT(
     CELL("address", INDEX(Sheet1!3:3,, MATCH(TODAY(), Sheet1!3:3, 1)))), 0, -26))&":"& 
     CELL("address", INDEX(Sheet1!3:3,, MATCH(TODAY(), Sheet1!3:3, 1)))))
    

    【讨论】:

    • 谢谢。两个建议都为 INDIRECT 函数返回 #REF 错误:“函数 INDIRECT 参数 1 值是 'Sheet1!$FH$3:Sheet1!$GH$3'。它不是有效的单元格/范围引用。”在跟踪先前尝试的错误时,我注意到 Google 表格帮助指定了 INDIRECT 用于单元格引用而不是范围的函数(即“返回有关指定单元格的请求信息。” )
    • 是的,如前所述...有效的范围参考是:Sheet1!FH3:GH3 你能分享一份你的工作表吗?
    • 根据您的建议,删除重复的“Sheet1!”在 'CONCATENATE'd 'CELL' 函数中似乎已经解决了这个问题。当范围被硬编码时,重复的“Sheet1!”范围末尾的名称没有区别。
    猜你喜欢
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多