【问题标题】:Creating a multi-column search box in Google Sheets在 Google 表格中创建多列搜索框
【发布时间】:2020-03-12 19:53:25
【问题描述】:

我正在尝试使用 Google 表格上的 FILTERSEARCH 函数创建一个多列搜索框。

我目前有一张名为“主客户表”的表格,其中包含 A 列到 O 列和一个“搜索选项卡”表格,其中我具有以下功能:

=filter('Master Client Sheet'!A3:N,search(A2,'Master Client Sheet'!A3:A),search(B2,'Master Client Sheet'!B3:B),search(C2,'Master Client Sheet'!C3:C),search(D2,'Master Client Sheet'!D3:D),search(E2,'Master Client Sheet'!E3:E))

这使得当我在搜索框中输入某个关键字时,它会从主表中提取适用的客户。

当它只有 5 次“搜索”时,该功能可以正常工作。但是当我尝试添加更多时,该函数将我的 180 个条目减少到一半。

我不知道如何解决它。任何帮助将不胜感激,谢谢!

【问题讨论】:

  • 请提供一个带有示例数据的超级简化示例...显示 1) 示例原始数据 2) 所需输出 3) 带有当前输出的公式。
  • @CodeCamper 这是一个示例的链接。搜索选项卡从主客户表中拉出,并根据在粉红色行中键入的内容进行过滤。例如,如果我在寻找“Cane Corso”和“Delivery”,它会缩小搜索范围
  • 太棒了,该示例似乎运行良好,您能否让它不按预期运行或给我指示使其无法按预期运行?
  • 这个例子很好,因为客户很少……我的实际列表有 180 个客户,而函数只显示 76 个。我会看看我是否可以在我的例子中复制它。

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


【解决方案1】:

您收到错误的原因是,如果您搜索空白单元格以使用现有代码解决此问题,search() 将始终返回 #VALUE 错误,您可以包装数组公式并使任何“”等于“”这样它就不会返回错误。

=arrayformula(filter('Master Client Sheet'!A2:N,search(A2,'Master Client Sheet'!A2:A),search(B2,'Master Client Sheet'!B2:B),search(C2,'Master Client Sheet'!C2:C),search(D2,'Master Client Sheet'!D2:D),search(E2,if('Master Client Sheet'!E2:E=""," ",'Master Client Sheet'!E2:E))))

这里的关键补充是 ArrayFormula 和

if('Master Client Sheet'!E2:E=""," ",'Master Client Sheet'!E2:E)

这就是说如果某些内容为空白,请将其设为空白,以便搜索功能可以返回非错误结果。您必须为任何可能包含空白信息的列包装此 if 语句。

【讨论】:

    【解决方案2】:

    试试这样:

    =ARRAYFORMULA(IFNA(QUERY(TO_TEXT('Master Client Sheet'!A2:J), "where "&TEXTJOIN(" and ", 1, 
     IF(A2:J2<>"", "lower(Col"&COLUMN(A2:J2)&") contains '"&LOWER(A2:J2)&"'", )), 0), 
     "no such data"))
    

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      相关资源
      最近更新 更多