在 Excel 中,我每天都有不同频率发生的事件。带有公式的列 (B) 会跟踪事件编号,当 A 列中的日期发生变化时,从第一个事件开始,编号为 #1,如下所示:
我想要一个公式:
尝试了各种countif、index、match等组合,但没有成功。计数直到遇到第一个 1 是基本的。无法弄清楚如何在不循环的情况下继续在范围内执行此操作,更不用说在将新数据添加到列时自动扩展范围了。最简单的可能是 do-while 循环,但我不知道任何 VBA。预先感谢。
假设帖子标签中没有
Excel Constraints
,可以尝试使用以下内容:
=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)))