Google sheets 在Google Sheets中创建多列搜索框
我正在尝试使用Google Sheets上的Google sheets 在Google Sheets中创建多列搜索框,google-sheets,filter,google-sheets-formula,array-formulas,google-sheets-query,Google Sheets,Filter,Google Sheets Formula,Array Formulas,Google Sheets Query,我正在尝试使用Google Sheets上的过滤器和搜索功能创建一个多列搜索框 我目前有一张名为“主客户表”的表,其中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,'Ma
过滤器
和搜索
功能创建一个多列搜索框
我目前有一张名为“主客户表”的表,其中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个条目减少一半
我不知道怎么修理它。任何帮助都将不胜感激,谢谢 出现错误的原因是,search()将始终返回一个#值错误。如果使用现有代码搜索空白单元格以解决此问题,则可以包装数组公式并使任何内容“等于”,以便它不会返回错误
=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))))
这里的关键补充是数组公式和
if('Master Client Sheet'!E2:E=""," ",'Master Client Sheet'!E2:E)
也就是说,如果某个内容为空,则将其设置为空白,以便搜索函数可以返回无错误的结果。对于可能包含空白信息的任何列,您必须将此if语句包装。出现此错误的原因是,如果您搜索空白单元格以使用现有代码解决此问题,则search()将始终返回一个#值错误。您可以包装数组公式并使任何内容“等于”这样它就不会返回错误
=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))))
这里的关键补充是数组公式和
if('Master Client Sheet'!E2:E=""," ",'Master Client Sheet'!E2:E)
也就是说,如果某个内容为空,则将其设置为空白,以便搜索函数可以返回无错误的结果。您必须为可能包含空白信息的任何列包装此if语句。尝试如下操作:
=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"))
=ARRAYFORMULA(IFNA(查询(至_TEXT('Master Client Sheet')!A2:J),“where”&TEXTJOIN(“and”),1,
如果(A2:J2)“下部(列”和列(A2:J2)和“)包含“,”和下部(A2:J2)和“,”),则为0),
“无此类数据”))
试着这样做:
=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"))
=ARRAYFORMULA(IFNA(查询(至_TEXT('Master Client Sheet')!A2:J),“where”&TEXTJOIN(“and”),1,
如果(A2:J2)“下部(列”和列(A2:J2)和“)包含“,”和下部(A2:J2)和“,”),则为0),
“无此类数据”))
请提供一个超级简化的示例和示例数据。。。显示1)样本原始数据2)所需输出3)当前输出的公式@CodeCamper@CodeCamper这是一个示例的链接。“搜索”选项卡从主客户端工作表中提取,并根据在浅粉色行中键入的内容进行筛选。例如,如果我在寻找“Cane Corso”和“Delivery”,它会缩小搜索范围。很好,这个例子似乎很好,你能让它不按预期运行吗?或者给我一些指示让它不按预期运行吗?这个例子很好,因为几乎没有客户。。。我的实际列表有180个客户机,函数只显示76个。我将看看是否可以在我的示例中复制它。请提供一个带有示例数据的超级简化示例。。。显示1)样本原始数据2)所需输出3)当前输出的公式@CodeCamper@CodeCamper这是一个示例的链接。“搜索”选项卡从主客户端工作表中提取,并根据在浅粉色行中键入的内容进行筛选。例如,如果我在寻找“Cane Corso”和“Delivery”,它会缩小搜索范围。很好,这个例子似乎很好,你能让它不按预期运行吗?或者给我一些指示让它不按预期运行吗?这个例子很好,因为几乎没有客户。。。我的实际列表有180个客户机,函数只显示76个。我将看看是否可以在我的示例中复制它。