这是 google 表格中的一个示例,灵感来自 this 帖子:
C2中的公式:
=ARRAYFORMULA(IF(B2:B32="Yes",MMULT(N(ROW(B2:B32)>=TRANSPOSE(ROW(B2:B32))),N(B2:B32="Yes"))-HLOOKUP(0,MMULT(N(ROW(B2:B32)>TRANSPOSE(ROW(B2:B32))),N(B2:B32="Yes")),MATCH(VLOOKUP(ROW(B2:B32),IF(N(B2:B32<>B1:B31),ROW(B2:B32),),1,TRUE),VLOOKUP(ROW(B2:B32),IF(N(B2:B32<>B1:B31),ROW(B2:B32),),1,TRUE),0),FALSE),))
只能输入一个公式。
并使其行独立(无论天数):
=ArrayFormula(IF(B2:index(B:B,counta(A:A))="Yes",MMULT(N(ROW(B2:index(B:B,counta(A:A)))>=TRANSPOSE(ROW(B2:index(B:B,counta(A:A))))),N(B2:index(B:B,counta(A:A))="Yes"))-HLOOKUP(0,MMULT(N(ROW(B2:index(B:B,counta(A:A)))>TRANSPOSE(ROW(B2:index(B:B,counta(A:A))))),N(B2:index(B:B,counta(A:A))="Yes")),MATCH(VLOOKUP(ROW(B2:index(B:B,counta(A:A))),IF(N(B2:index(B:B,counta(A:A))<>B1:index(B:B,counta(A:A)-1)),ROW(B2:index(B:B,counta(A:A))),),1,TRUE),VLOOKUP(ROW(B2:index(B:B,counta(A:A))),IF(N(B2:index(B:B,counta(A:A))<>B1:index(B:B,counta(A:A)-1)),ROW(B2:index(B:B,counta(A:A))),),1,TRUE),0),FALSE),))
或者,如果您不关心电子表格的速度:
=ArrayFormula(IF(B2:B="Yes",MMULT(N(ROW(B2:B)>=TRANSPOSE(ROW(B2:B))),N(B2:B="Yes"))-HLOOKUP(0,MMULT(N(ROW(B2:B)>TRANSPOSE(ROW(B2:B))),N(B2:B="Yes")),MATCH(VLOOKUP(ROW(B2:B),IF(N(B2:B32<>B1:B),ROW(B2:B),),1,TRUE),VLOOKUP(ROW(B2:B),IF(N(B2:B<>B1:B),ROW(B2:B),),1,TRUE),0),FALSE),))
如果您对最后一个“是”序列的最后一个值感兴趣,您可以使用此公式检索该值:
=INDEX(C:C,MATCH(9.99E+307,C:C))