根据两个值阈值过滤列

Filtering Columns According to Two Value Thresholds

如果我最多只能有 2 个 Lateral 和最多 3 个 Zagueiro,并且他们不能重复第 3 列中的值,如何我应该这样做吗?

我已经尝试将 QUERY 与多个 "Limit" 一起使用,并且已经尝试使用 FILTER(ISNA(MATCH())) 但在这两个选项中都没有找到所需的答案。

注意:LateralZagueiro之间不能有先后之分,取值的先后顺序为准,越高越重要。

注2:可能恰好找到小于2个Lateral或小于3个Zagueiro

示例数据:

Filipe Luís            Lateral          Flamengo
Willian Arão           Zagueiro         Flamengo
Aderlan                Lateral          Bragantino
Mariano                Lateral          Atlético-MG
Nathan Silva           Zagueiro         Atlético-MG
Tinga                  Lateral          Fortaleza
Marcelo Benevenuto     Zagueiro         Fortaleza
Fabrício Bruno         Zagueiro         Vasco
Joaquim                Lateral          Vasco

示例预期结果:

Filipe Luís            Lateral          Flamengo
Aderlan                Lateral          Bragantino
Nathan Silva           Zagueiro         Atlético-MG
Marcelo Benevenuto     Zagueiro         Fortaleza
Fabrício Bruno         Zagueiro         Vasco

注3:Column 2中的值完全分开是巧合,Zagueiro可能在[=12=之上,在两个[=12=之间] ] 等等。没有特定的先后顺序,一切按照数据原来的顺序进行。

注4:Column 2只会有提到的两个值,不会有其他的。

Link 到电子表格:

https://docs.google.com/spreadsheets/d/1JmX7V2zAYh-O0POOc0BpRp9ejcgLFRtsGZwlruRgHdY/edit?usp=sharing

尝试:

={ARRAY_CONSTRAIN(UNIQUE(FILTER(A1:C, B1:B="Lateral")), 2, 3);
 ARRAY_CONSTRAIN(FILTER(A1:C, B1:B="Zagueiro", REGEXMATCH(C1:C, 
 TEXTJOIN("|", 1, FILTER(FILTER(C1:C, B1:B="Zagueiro"), 
 NOT(COUNTIFS(ARRAY_CONSTRAIN(UNIQUE(FILTER(C1:C, B1:B="Lateral")), 2, 3), 
 FILTER(C1:C, B1:B="Zagueiro"))))))), 3, 3)}

我在 E1 中使用以下公式添加了一个新的 sheet(“Erik Help”):

=ArrayFormula({VLOOKUP(ARRAY_CONSTRAIN(UNIQUE(FILTER(B1:B&C1:C,B1:B=B1)),2,1),{B1:B&C1:C,A1:C},{2,3,4},FALSE);VLOOKUP(ARRAY_CONSTRAIN(UNIQUE(FILTER(B1:B&C1:C,B1:B<>B1,ISERROR(VLOOKUP(C1:C,QUERY(VLOOKUP(ARRAY_CONSTRAIN(UNIQUE(FILTER(B1:B&C1:C,B1:B=B1)),2,1),{B1:B&C1:C,C1:C},2,FALSE),"Select *"),1,FALSE)))),3,1),{B1:B&C1:C,A1:C},{2,3,4},FALSE)})