具有多个和空白(忽略)条件的Google表格查询功能

问题描述 投票:1回答:1

我有一张工作表(培训),列出了所有员工(超过4,000行)的信息,而我在另一张工作表(搜索)上有查询功能,该功能使我可以根据团队选择的条件进行筛选。选择和相应的单元格是:

Company - A3 : First Name - B3 : Last Name - C3 : Email - D3 : PO # - E3 : Class - F3

我需要构建一个query(),使我仅使用具有信息的条件单元进行过滤,而完全忽略任何空白的条件。

Query()将使用单个条件或多个条件(使用“ or”和“ and”)工作,但我们提供的信息并不总是一致的(可能有姓但无名,有电子邮件但不公司等),因此我希望它仅使用与团队输入的数据匹配的数据进行过滤,如果单元格(A3:F3)留空,则忽略条件。

现在编写代码的方式包括与任何标准都匹配的行(我以这种方式编写该代码,知道我的引用正确,然后扩展了标准)。我需要它包含仅与输入的确切条件匹配的行。

=Query({Training!A2:AS},"select Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Col10, Col11, Col12, Col13, Col14, Col15, Col16, Col17, Col19, Col21, Col23, Col25, Col27, Col29, Col31, Col32, Col34, Col37, Col38, Col40, Col42, Col43, Col44, Col45 where Col2 = '"& A3 &"' or Col30= '"& E3 &"' ",0)

举一个我想要的例子。如果我的团队在“搜索”表中输入以下标准:

((A3)公司-地铁:(B3)名-左空白:(C3)姓氏-左空白:(D3)电子邮件-左空白:(E3) PO#-123456:(F3)类-左空白

我当前的代码将显示在Col2中包含Metro或在Col30中包含123456的任何行。我希望它显示仅包含Metro和John的行,忽略仅匹配1个条件的行,并完全忽略其他条件,因为它们均留为空白。

我在网上发现了一些我认为可以正常使用的东西,但是要么最终导致它们不符合我的需要,要么我对功能不熟悉,无法使其正常工作。任何出于教学目的的解释帮助都将很棒。

google-sheets ignore google-sheets-query google-query-language textjoin
1个回答
0
投票

您可以这样做:

=IFERROR(QUERY({Training!A2:AS},
 "select Col1,Col2,Col3,Col4,Col5,Col6,Col7,Col8,Col9,Col10,Col11,Col12,Col13,Col14,Col15,Col16,Col17,Col19,Col21,Col23,Col25,Col27,Col29,Col31,Col32,Col34,Col37,Col38,Col40,Col42,Col43,Col44,Col45 
  where "&TEXTJOIN(" and ", 1, 
 IF(A3<>"", "Col2 = '"&A3&"'", ), 
 IF(B3<>"", "Col3 = '"&B3&"'", ),  
 IF(C3<>"", "Col4 = '"&C3&"'", ), 
 IF(D3<>"", "Col6 = '"&D3&"'", ),  
 IF(E3<>"", "Col30= '"&E3&"'", ),  
 IF(F3<>"", "Col18= '"&F3&"'", )), 0), "no match")
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.