根据多个条件计算连续的天数/发生次数

时间:2019-08-01 16:30:45

标签: regex if-statement google-sheets frequency array-formulas

在附件中,我的以下公式有问题。

=IF(B2="","", ArrayFormula(max(frequency(if(E2:Z2=B2,row(E2:Z2)),if(E2:Z2<>B2,row(E2:Z2))))))

位于D列中,它正在尝试根据以下条件对连续天数进行计数:

  • 正在使用中/等于今天(B列)
  • 当到达另一个条目时停止倒数(过去)。
  • 不计入未来。

C列是预期的答案。

结果只是计算整个行中所有连续出现的次数,可能是在将来发生,或者他们可能在一天中使用了另一项资产,从而中断了连续计数,但是,如果确实有更多事件要继续,则继续计数。

突出显示的绿色是我要计算的范围。

作为参考,请假设Today()是01/08/2019,否则情况会不断发生变化。

https://docs.google.com/spreadsheets/d/1FCCnSqMmH5jLFLTQFnmLlIrkiIicjHFvTcP87zBBjPM/edit#gid=0

1 个答案:

答案 0 :(得分:1)

=ARRAYFORMULA(LEN(REGEXEXTRACT(SUBSTITUTE(TRANSPOSE(QUERY(TRANSPOSE(IF(
 INDIRECT("E2:"&ADDRESS(COUNTA(B2:B)+1, MATCH(TODAY(), 1:1, 0), 4))=
 INDIRECT(ADDRESS(2, MATCH(TODAY(), 1:1, 0), 4)&":"&
          ADDRESS(COUNTA(B2:B)+1, MATCH(TODAY(), 1:1, 0), 4)), 1, "♦"))
 ,,999^99)), " ", ), "(\d+)$")))

0