Filter Google Sheets查询在分组结果中获取偶数/奇数行

Filter Google Sheets查询在分组结果中获取偶数/奇数行,filter,google-sheets,google-sheets-formula,array-formulas,google-sheets-query,Filter,Google Sheets,Google Sheets Formula,Array Formulas,Google Sheets Query,我有一个长长的行列表,旁边有日期,后面有一个文本字段 01/01/2019 | ABC | ... 列表按日期排序,每个日期可能有1到4行 01/01/2019 | ABC | ... 01/01/2019 | DEF | ... 05/01/2019 | ABC | ... 05/01/2019 | DEF | ... 05/01/2019 | ABC | ... 05/01/2019 | GHI | ... 10/01/2019 | ABC | ... 10/01/2019 | XYZ |

我有一个长长的行列表,旁边有日期,后面有一个文本字段

01/01/2019 | ABC | ...
列表按日期排序,每个日期可能有1到4行

01/01/2019 | ABC | ...
01/01/2019 | DEF | ...
05/01/2019 | ABC | ...
05/01/2019 | DEF | ...
05/01/2019 | ABC | ...
05/01/2019 | GHI | ...
10/01/2019 | ABC | ...
10/01/2019 | XYZ | ...
我可以愉快地运行一个查询(),该查询按日期分组,并计算()与该日期匹配的行数

01/01/2019 | 2
05/01/2019 | 4 
10/01/2019 | 2
我正在尝试使用一系列可接受的GoogleSheets格式的函数,这些函数将按日期对项目进行分组,然后只返回第n行。我对这里的偶数行/奇数行也很满意

重要的是,我不需要基于实际电子表格行()的偶数/奇数,但如果有意义的话,我需要基于聚合组中匹配行数的偶数/奇数/n

所以我想要这个输出:

EVENS

01/01/2019 | DEF | (row 2 in group)
05/01/2019 | DEF | (row 2 in group) 
05/01/2019 | GHI | (row 4 in group) 
10/01/2019 | XYZ | (row 2 in group) 
01/01/2019 | ABC | (row 1 in group)
05/01/2019 | ABC | (row 1 in group) 
05/01/2019 | ABC | (row 3 in group) 
10/01/2019 | ABC | (row 1 in group) 
赔率

01/01/2019 | DEF | (row 2 in group)
05/01/2019 | DEF | (row 2 in group) 
05/01/2019 | GHI | (row 4 in group) 
10/01/2019 | XYZ | (row 2 in group) 
01/01/2019 | ABC | (row 1 in group)
05/01/2019 | ABC | (row 1 in group) 
05/01/2019 | ABC | (row 3 in group) 
10/01/2019 | ABC | (row 1 in group) 
最终,我的目标是统计任何特定日期作为第一个或第二个或第三个或第四个事件出现的所有文本字段(ABC/DEF/GHI/etc),然后按降序排序,但仅包括(例如)如果ABC是该组的偶数行,或者如果XYZ是该组中的奇数行(例如组的第2行,忽略整个电子表格中恰好位于第35行的事实)


可以添加帮助器列,如:

=ARRAYFORMULA(IF(LEN(A1:A), COUNTIFS(B1:B, B1:B, ROW(B1:B), "<="&ROW(B1:B)), ))


如果你愿意,你可以用一种配方奶粉

=filter(A2:B,ISEVEN(row(A2:A)-match(A2:A,A2:A,0)))

假设数据从第2行开始

如果数据是从另一行开始的,则可以对该行执行查找:

=filter(A2:B,ISODD(row(A2:A)-vlookup(A2:A,{A2:A,row(A2:A)},2,false)))

=filter(A2:B,isodd(row(A2:A)-match(A2:A,A2:A,0)+1))
=filter(A2:B,ISODD(row(A2:A)-vlookup(A2:A,{A2:A,row(A2:A)},2,false)))
=filter(A2:B,ISEVEN(row(A2:A)-vlookup(A2:A,{A2:A,row(A2:A)},2,false)))