【问题标题】:How to use IFERROR inside an array formula?如何在数组公式中使用 IFERROR?
【发布时间】:2015-02-17 21:06:21
【问题描述】:

如果数组公式中的任何查询在它们所命中的范围内没有要查询的实际数据,它们会返回 #VALUE! 并且将鼠标悬停在数组公式上会显示错误。如果我接受这些查询并将它们包装在 IFERROR 中,我会得到相同的结果。

如果我将包装在 IFERROR 中的内容拆分到自己的单元格中以验证查询,则会显示错误子句,在本例中为 0。

这是一个示例表的link

Sheet1 有示例数据。
Sheet2 故意留空以模拟上述问题。
Sheet3 在各种状态下对其进行了三个查询。前两个是我正在尝试使用的数组公式。底部的 Query 是 IFERROR 拆分到自己的单元格中,以表明该查询在与排序的其余部分分开时确实有效(arrayformula(etc))。

【问题讨论】:

    标签: google-sheets google-sheets-formula array-formulas google-sheets-query


    【解决方案1】:

    尝试在 1 个查询中组合两个范围(来自两个工作表)而不是使用 2 个查询,并在单个查询周围包装一个 IFERROR():

    =ARRAYFORMULA(IFERROR(QUERY({Sheet1!A1:I500; sheet2!A1:I500}, "Select * where Col7='no'", 0), 0))
    

    看看这对你有用吗?

    【讨论】:

    • 这适用于查询搜索相同内容的情况。我在不同的工作表中有类似的情况,我正在做同样的事情,但将结果乘以不同单元格中的值。 code QUERY('sheet1'!A3:G51, "Select B where A contains '"&$F$10&"'")*P34)+(QUERY('sheet1'!A3:G51, "Select C where A contains '"&$F$10&"'")*P35) 这个用例有完全相同的问题,但您的解决方案似乎无法解决。尽管您的解决方案完全适用于我最初提出的用例。
    • 您可以将该问题添加到您共享的工作表中吗?
    • 是的,添加一些示例数据只需要一点时间
    • 好的,我在文档的另一张表中添加了一些示例数据。无论出于何种原因,该公式都声称其中一个值是数字不是数字,我不知道为什么。我切了一小部分来自己运行它,它也有同样的问题。我会继续戳它,但这至少可以让您看到完整的查询以及即使在当前状态下它正在做什么。
    • 你能说明公式的输出应该是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多