簡體   English   中英

excel 中包含合並單元格的 Countif

[英]Countif with Merged Cells in excel

我有下表。 由此,我想使用 function 來計算每個 class 的主題數,如 F 列所示。就像我們在 Class A 中有多少個主題,在 Class B 中有多少個主題,等等。

我使用了 COUNTIF 公式,但由於單元格合並,它不起作用。

在此處輸入圖像描述

是否有可能獲得保留合並單元格的主題的數量?

一種方法是通過REDUCE()

在此處輸入圖像描述

D1中的公式:

=LET(a,SCAN(A2,A2:A21,LAMBDA(a,b,IF(b="",a,b))),REDUCE(A1:B1,UNIQUE(a),LAMBDA(b,c,VSTACK(b,HSTACK(c,SUM(--(a=c)))))))

請注意SCAN()的作用類似於填充 function。還要注意合並的單元格是邪惡的!

=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)

幾個友情建議:

  • 合並單元格可能會幫助您以有意義的方式排列值,但它們會帶來問題;
  • 使用合並單元格時不能對列進行排序;
  • 你不能使用 Filter 選項,即使你可能有一些更大的問題等着你去解決,試試看;
  • 而是使用Center Across Selection ,這是比合並更好的選擇。
  • 最后但並非最不重要的是,我看到大多數專家建議和建議避免合並單元格。 所以請避免合並單元格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM