Filter 在单元格数组中使用两个筛选器时,如果筛选器没有匹配项,则会引发错误

Filter 在单元格数组中使用两个筛选器时,如果筛选器没有匹配项,则会引发错误,filter,google-sheets,Filter,Google Sheets,我想在另一个工作表上查看两个小范围内具有特定字符串的行,然后从结果中删除一列并在列表中打印出来 这是我的密码: ={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})

我想在另一个工作表上查看两个小范围内具有特定字符串的行,然后从结果中删除一列并在列表中打印出来

这是我的密码:

={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})}
如果两个范围至少有一次字符串,它将打印出所有有该字符串的行。如果哪怕是一个范围没有它,也不打印,它会显示一个错误

数组\ U文字中出错,一个数组文字缺少一行或多行的值


我需要做些什么来解决这个问题?

构造的问题,例如

={filter(A:B, B:B > 5); {true, false}}
如果没有与条件B:B>5匹配的行,则数组的计算结果为

={#N/A; {true, false}}
其中N/A占用一个单元格。这是一个格式不正确的数组,第一行有一个单元格,第二行有两个单元格

您可以通过将单个N/a替换为多个N/a来解决此问题,以便在任何情况下都具有适当的列数

={iferror(filter(A:B, B:B > 5), {na(), na()}; {true, false}}
当然,这里可以使用na以外的其他东西

此外,在您的特定情况下,您不需要包含真值和假值的行,也不需要外部筛选。首先不要包括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()})
 }

filter命令的第二个参数可以与第一个参数分开;重要的是它们的行数相同

谢谢你的帮助。这个解决方案让我接近了,但留下了一排不太理想的NA细胞。我想我可以通过将{na,na,na}与{,,}交换来将行变空,但是如果第一个过滤器没有匹配的结果,那么仍然会留下一个空行。你能帮我找到一种方法,完全省略这一行,这样我就可以清理它了吗?也许可以将公式包装在=query…,选择*where Col1,假设结果的第一列不能是非空的。或者使用类似于Col1‘NO_RESULTS’的东西,其中NO_RESULTS是一个字符串,而不是n/a。