在单元格数组中使用两个过滤器时,当过滤器没有匹配时会增加错误



我想浏览两个小范围,在另一个小范围内,用特定字符串的排床,然后从结果中删除列并将其打印在列表中。

这是我的代码:

={FILTER( FILTER(General!A6:D, SEARCH("Kevin's Credit",General!D6:D)), {TRUE, TRUE, TRUE, FALSE}); FILTER( FILTER(General!K6:N, SEARCH("Kevin's Credit",General!N6:N)), {TRUE, TRUE, TRUE, FALSE})}

如果两个范围至少都具有一条字符串,则它将打印出所有具有它的行。如果一个范围没有它,则既没有打印,也没有显示错误;

array_literal中的错误,一个或多个行的数组是缺少的值。

我需要做什么来解决此问题?

等结构的问题
={filter(A:B, B:B > 5); {true, false}}

是,当没有行与标准b:b> 5匹配时,数组会评估为

={#N/A; {true, false}}

其中#n/a占据单个单元格。这是一个畸形的数组,第一行中有一个单元格,第二行中有两个。

您可以通过几个替换单个#n/a来解决此问题,以便在任何情况下都具有适当数量的列。

={iferror(filter(A:B, B:B > 5), {na(), na()}; {true, false}}

当然,可以在此处使用Na()以外的其他东西。


另外,在您的特定情况下,您不需要带有真正的false值的行和外部过滤器。只是不要首先包括D或N列:

={filter(General!A6:C, search("Kevin's Credit", General!D6:D)); filter(General!K6:M, search("Kevin's Credit", General!N6:N))}

或,在#n/a-safe形式中,

={iferror(
    filter(General!A6:C, search("Kevin's Credit", General!D6:D)),
    {na(), na(), na()}); 
  iferror(
    filter(General!K6:M, search("Kevin's Credit", General!N6:N)),
    {na(), na(), na()})
 }

过滤器命令的第二个参数可以与第一个分开;最重要的是它们具有相同数量的行。

最新更新