我想分开一个拥有团队的球员。为了找到这11名球员,他们从一个拥有(GK)的运动员开始,然后连续排在另外10个球员之后,总会有另一个以(GK)开头的运动员。正如我将要处理的多支球队一样,我希望自动进行此过滤,因为每支球队的球员人数不同,但是在某些情况下,所有球队之间的位置都介于10人之间(GK)。这些是持有人。
使用我测试的这个公式,它失败了,因为它从第一个(GK)过滤到最后一个(GK)
仅在一个(GK)之后有10个玩家,而在第十个玩家之后,又有(GK)另一个玩家,我该如何调整过滤条件?
=TRANSPOSE(SPLIT(REGEXEXTRACT(TEXTJOIN("♦️", 1,TRANSPOSE(SPLIT(REGEXEXTRACT(TEXTJOIN("♦️", 1,TRANSPOSE(SPLIT(REGEXEXTRACT(TEXTJOIN("♦️", 1,A2:A), "GK(.*)"), "♦️"))), "(.*)GK"), "♦️"))), "GK(.*)"), "♦️"))
我要使用的这种格式的问题是,它只有在我真正想要获得的名称(GK)在11之前的情况下才有效。如果不是,则生成错误。而且我也无法添加Lineup 11的第一个(GK)。
我想要的正确格式在下面的图片(Column LINEUP (11 Players)
)和电子表格中:
https://docs.google.com/spreadsheets/d/1jnirW5Wkfcj4eSzM9In0_ChxRFl_KtBjgfnp1Qdi2ZY/edit?usp=sharing
答案 0 :(得分:1)
尝试这个:
=indirect(query(arrayformula( if( if(REGEXMATCH(G2:G,".(GK)"),row(G2:G),0)-if(REGEXMATCH(G13:G,".(GK)"),row(G13:G),0)=-11, "G" & row(G2:G) & ":H" & row(G12:G), )), "Select max(Col1) label max(Col1) ''"))
为了更灵活并可以复制:
=indirect(query(arrayformula( if( if(REGEXMATCH(G3:G,".(GK)"),row(G3:G),0) -
if(REGEXMATCH(G14:G,".(GK)"),row(G14:G),0)=-11,
REGEXEXTRACT(address(row(G1),COLUMN(G1)), "[A-Z]+") & row(G3:G) & ":"
& REGEXEXTRACT(address(row(H1),COLUMN(H1)), "[A-Z]+") & row(G13:G), )),
"Select max(Col1) label max(Col1) ''"))
答案 1 :(得分:1)
第一个例子
=offset(indirect("A"&arrayformula(vlookup(11,{filter(row(A2:A26),find("(GK)",A2:A26))-{0;array_constrain(filter(row(A2:A26),find("(GK)",A2:A26)),count(filter(row(A2:A26),find("(GK)",A2:A26)))-1,1)},filter(row(A2:A26),find("(GK)",A2:A26))},2,false))),-11,0,11,1)
第二个例子
=offset(indirect("G"&arrayformula(vlookup(11,{filter(row(G2:G26),find("(GK)",G2:G26))-{0;array_constrain(filter(row(G2:G26),find("(GK)",G2:G26)),count(filter(row(G2:G26),find("(GK)",G2:G26)))-1,1)},filter(row(G2:G26),find("(GK)",G2:G26))},2,false))),-11,0,11,1)