[英]Countif with Merged Cells in excel
=LET(a,A2:A21,
c,DROP(REDUCE(0,a,LAMBDA(x,y,VSTACK(x,IF(y="",TAKE(x,-1),y)))),1),
u,UNIQUE(c),
m,MMULT(--(TRANSPOSE(c)=u),SEQUENCE(COUNTA(c),,1,0)),
HSTACK(u,m))
其中c
创建 A 列的未合并等价物,用上面的值替换空白, m
为每个值创建等于 A 列未合并版本中唯一值u
的计数。
编辑:正如 Mayukh 评论的那样,我们可以用 MAP/SUM 替换 MMULT:
=LET(a,A2:A21,
c,DROP(REDUCE(0,a,LAMBDA(x,y,VSTACK(x,IF(y="",TAKE(x,-1),y)))),1),
u,UNIQUE(c),
HSTACK(u,MAP(u,LAMBDA(x,SUM(--(c=x))))))
这是使用MAP()
的另一种方法
• 单元格D2
中使用的公式
=LET(a,LOOKUP(ROW(A2:A21),ROW(A2:A21)/(A2:A21<>""),A2:A21),
b,UNIQUE(a),
c,MAP(b,LAMBDA(x,SUM(--(x=a)))),
VSTACK(A1:B1,HSTACK(b,c)))
我们也可以使用SCAN()
,因为JvdV Sir 已经显示了该选项,因此使用OLDSCHOOL Function LOOKUP()
。 它只是做与使用SCAN()
所示相同的事情,请参考下面的屏幕截图,
• 使用SCAN()
=SCAN(A2:A21,A2:A21,LAMBDA(x,y,IF(y="",x,y)))
• 使用LOOKUP()
=LOOKUP(ROW(A2:A21),ROW(A2:A21)/(A2:A21<>""),A2:A21)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.