[英]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.