我有一列用户 ID,然后有几百列日期,其中有每天的值。
其中 AI 到 AAD 是该用户 ID 每天的值,我知道如何获取用户第一天生成的值:
=INDEX($AI$1:$AAD$1, MATCH(INDEX($AI2:$AAD2, MATCH(TRUE, INDEX($AI2:$AAD2<>0,),0)), $AI2:$AAD2, 0))
日期在第 1 行,然后在第 2 行中搜索第一个非 0 的值。
但现在我想找到该用户第一次连续 30 天每日价值等于 0 的情况(如果有的话)。我该怎么做?我现在处于困惑的地步。
我想我可以制作第二张工作表,其中每一行都从原始工作表中汇总连续 30 天的数据,然后我以之前查找第一个非零值的方式查找第一个零值。但这感觉像是作弊,因为它可以直接在公式(数组公式?)中完成。
答案1
第一次约会时尝试用 30 个零开头的字母书写。
=INDEX(AI$1:AAD$1, AGGREGATE(15, 7, ROW($1:$643)/(COUNTIF(OFFSET(AI2, 0, ROW($1:$643)-1, 1, 30), 0)=30), 1))
你可以加二十九到 AGGREGATE 返回的结束日期的值。您必须格式化返回的整数(例如36528) 作为日期。