Excel - 如何连续计算单元格直到达到相同的值

问题描述 投票:0回答:1

在 Excel 中,我每天都有不同频率发生的事件。带有公式的列 (B) 会跟踪事件编号,当 A 列中的日期发生变化时,从第一个事件开始,编号为 #1,如下所示:

https://imgur.com/oXzWIJx

我想要一个公式:

  1. 统计每天的事件数量,即 10/30 总计 5 个,10/31 总计 3 个,11/1 总计 4 个。最简单的方法可能是计数直到值 1(重新)出现。但然后继续数直到 1 再次出现。
  2. 然后我想查看每天的最大、最小、平均、中值频率。如果我们满足第一个要求,则可以通过将每日总计放在第一列中,在辅助列 C 中轻松完成。
  3. 但我希望最大值、最小值等统计数据能够在 2024 年 11 月 2 日及以后输入新数据时自动更新,因此范围/数组应该不断扩展。

尝试了各种countif、index、match等组合,但没有成功。计数直到遇到第一个 1 是基本的。无法弄清楚如何在不循环的情况下继续在范围内执行此操作,更不用说在将新数据添加到列时自动扩展范围了。最简单的可能是 do-while 循环,但我不知道任何 VBA。预先感谢。

excel excel-formula
1个回答
0
投票

假设帖子标签中没有

Excel Constraints
,可以尝试使用以下内容:

enter image description here


=LET(
     a, MAP(B2:B13,LAMBDA(x,SUM(N(x:B2=x)))),
     b, XLOOKUP(B2:B13,B2:B13,a,,,-1),
     HSTACK(a, IF(a<b,"",b)))

如果您希望在添加新数据时显示计数和最大计数,则可以根据您所在的 MS365 版本使用以下选项之一:

• 使用

TRIMRANGE()
功能的帮助:

=LET(
     a, DROP(B.:.B,1),
     b, MAP(a,LAMBDA(x,SUM(N(x:B2=x)))),
     c, XLOOKUP(a,a,b,,,-1),
     HSTACK(b, IF(b<c,"",c)))

• 或不使用

TRIMRANGE()

=LET(
     a, B2:INDEX(B:B,MATCH(2,1/(B:B<>""))),
     b, MAP(a,LAMBDA(x,SUM(N(x:B2=x)))),
     c, XLOOKUP(a,a,b,,,-1),
     HSTACK(b, IF(b<c,"",c)))

© www.soinside.com 2019 - 2024. All rights reserved.