具有不同范围大小的多个标准(和空白值)的过滤器
FILTER with multiple criteria (and blank values) with different range sizes
我有一个多列列表,我想根据最多 4 个条件过滤结果。使用 FILTER
/COUNTIF
,我可以获得所需的结果,只要 all 条件具有值并且当然匹配即可。如果我没有输入所有四个搜索条件,公式就会失效。我希望能够基于 1、2、3 或所有 4 个条件进行搜索并相应地缩小我的结果范围。
Here is my formula(以及 link 到我的电子表格 - [数据验证副本!G2]):
=UNIQUE(FILTER(squads!D3:D&"|"&squads!E3:E&"|"&squads!F3:F&"|"&squads!G3:G&"|"&squads!B3:B,
COUNTIF('Squad Builder'!C8,squads!D3:D),
COUNTIF('Squad Builder'!C9,squads!E3:E),
COUNTIF('Squad Builder'!C10,squads!F3:F),
COUNTIF('Squad Builder'!C11,squads!G3:G)
))
我试图在 COUNTIF
周围添加 IF
语句,但如果它为假,则公式会中断,因为它只有 1 个结果导致范围大小不同。
我的搜索条件位于另一个选项卡中,Squad Builder!C8:C11
附加信息
我有另一个公式可以执行相同的功能并且工作正常。不同之处在于,我正在尝试使用此新公式以 |
分隔格式显示结果。如果这个公式能以某种方式实现,那也太好了。
这只是嵌套在 dataValidations!G2 中的几个公式的片段。
UNIQUE(SORT(QUERY({squads!B3:B,squads!D3:D,squads!E3:E,squads!F3:F,squads!G3:G},"SELECT Col1 "&
IF(LEN('Squad Builder'!C8),"WHERE Col2 = '"&'Squad Builder'!C8&"' ",)&
IF(LEN('Squad Builder'!C9),"AND Col3 = '"&'Squad Builder'!C9&"' ",)&
IF(LEN('Squad Builder'!C10),"AND Col4 = '"&'Squad Builder'!C10&"' ",)&
IF(LEN('Squad Builder'!C11),"AND Col5 = '"&'Squad Builder'!C11&"' ",)
,0),1,TRUE))
尝试:
=INDEX(UNIQUE(QUERY({squads!D3:G,
squads!D3:D&"|"&squads!E3:E&"|"&squads!F3:F&"|"&squads!G3:G&"|"&squads!B3:B},
"select Col5
where 1=1 "&
IF('Squad Builder'!C8<>"", " and Col1 ='"&'Squad Builder'!C8&"'", )&
IF('Squad Builder'!C9<>"", " and Col2 ='"&'Squad Builder'!C9&"'", )&
IF('Squad Builder'!C10<>"", " and Col3 ='"&'Squad Builder'!C10&"'", )&
IF('Squad Builder'!C11<>"", " and Col4 ='"&'Squad Builder'!C11&"'", ))))
我有一个多列列表,我想根据最多 4 个条件过滤结果。使用 FILTER
/COUNTIF
,我可以获得所需的结果,只要 all 条件具有值并且当然匹配即可。如果我没有输入所有四个搜索条件,公式就会失效。我希望能够基于 1、2、3 或所有 4 个条件进行搜索并相应地缩小我的结果范围。
Here is my formula(以及 link 到我的电子表格 - [数据验证副本!G2]):
=UNIQUE(FILTER(squads!D3:D&"|"&squads!E3:E&"|"&squads!F3:F&"|"&squads!G3:G&"|"&squads!B3:B,
COUNTIF('Squad Builder'!C8,squads!D3:D),
COUNTIF('Squad Builder'!C9,squads!E3:E),
COUNTIF('Squad Builder'!C10,squads!F3:F),
COUNTIF('Squad Builder'!C11,squads!G3:G)
))
我试图在 COUNTIF
周围添加 IF
语句,但如果它为假,则公式会中断,因为它只有 1 个结果导致范围大小不同。
我的搜索条件位于另一个选项卡中,Squad Builder!C8:C11
附加信息
我有另一个公式可以执行相同的功能并且工作正常。不同之处在于,我正在尝试使用此新公式以 |
分隔格式显示结果。如果这个公式能以某种方式实现,那也太好了。
这只是嵌套在 dataValidations!G2 中的几个公式的片段。
UNIQUE(SORT(QUERY({squads!B3:B,squads!D3:D,squads!E3:E,squads!F3:F,squads!G3:G},"SELECT Col1 "&
IF(LEN('Squad Builder'!C8),"WHERE Col2 = '"&'Squad Builder'!C8&"' ",)&
IF(LEN('Squad Builder'!C9),"AND Col3 = '"&'Squad Builder'!C9&"' ",)&
IF(LEN('Squad Builder'!C10),"AND Col4 = '"&'Squad Builder'!C10&"' ",)&
IF(LEN('Squad Builder'!C11),"AND Col5 = '"&'Squad Builder'!C11&"' ",)
,0),1,TRUE))
尝试:
=INDEX(UNIQUE(QUERY({squads!D3:G,
squads!D3:D&"|"&squads!E3:E&"|"&squads!F3:F&"|"&squads!G3:G&"|"&squads!B3:B},
"select Col5
where 1=1 "&
IF('Squad Builder'!C8<>"", " and Col1 ='"&'Squad Builder'!C8&"'", )&
IF('Squad Builder'!C9<>"", " and Col2 ='"&'Squad Builder'!C9&"'", )&
IF('Squad Builder'!C10<>"", " and Col3 ='"&'Squad Builder'!C10&"'", )&
IF('Squad Builder'!C11<>"", " and Col4 ='"&'Squad Builder'!C11&"'", ))))