2012-08-25 308 views
34

什麼是計算電子表格列中出現次數的好方法?這可以通過一個陣列公式完成嗎?計算列中出現的次數?

實施例(列A輸入,列BC是自動生成的):

| A | B | C | 
+-------+-------+-------+ 
| Name | Name | Count | 
+-------+-------+-------+ 
| Joe | Joe |  2 | 
| Lisa | Lisa |  3 | 
| Jenny | Jenny |  2 | 
| Lisa |  |  | 
| Lisa |  |  | 
| Joe |  |  | 
| Jenny |  |  | 
+2

你也可以使用= ARRAYFORMULA(COUNTIF(A2:A8,「=」和B2:B8))。這是一個簡單的方法。 – oshliaer

回答

36

Try:

=ArrayFormula(QUERY(A:A&{"",""};"select Col1, count(Col2) where Col1 != '' group by Col1 label count(Col2) 'Count'";1))


22/07/2014在上個月一段時間,表格已經開始支持陣列的更靈活的級聯,使用嵌入式陣列。因此該解決方案可能會稍微縮短爲:

=QUERY({A:A,A:A},"select Col1, count(Col2) where Col1 != '' group by Col1 label count(Col2) 'Count'",1)

+0

對我而言,A是日期。分組時,該日期轉換爲第二列的整數?我如何確保第二列的格式與第一列(日期)相同? – ghal

+0

這將如何更改爲對多列執行相同操作? – noisygecko

31
=COUNTIF(A:A;"lisa") 

可以從列B替換單元格引用的標準

+1

再次閱讀:「B」列*是自動生成*。 – feklee

77

更簡單的方法,以本

在塔B的開始,型

= UNIQUE(A:A)

然後在列C中,使用

= COUNTIF(A:A,B1)

,並在所有行列C.

編輯複製它們:如果不爲你工作,請嘗試使用分號,而不是逗號:

= COUNTIF(A:A; B1)

+1

我剛剛檢查過,實際上這看起來像一個優雅的解決方案!儘管如此,我現在仍然接受@AdamL的答案,因爲它將所有內容都放在一行中,而不需要複製C列中的行。 – feklee

+0

我無法得到這個工作,你能明白爲什麼嗎?這是一個示例電子表格https://docs.google.com/spreadsheets/d/1HWdVTQAdWKbsdzO80MtYqwk1rNigqnfqSk24hjNS3Wk/edit?usp=sharing – bluantinoo

+0

不知何故,在電子表格中,您需要使用分號而不是逗號,即= COUNTIF(B:B; C2 )。但是如果我自己創建一個新的電子表格,我可以使用逗號。不知道爲什麼.. –

1

=arrayformula(if(isblank(B2:B),iferror(1/0),mmult(sign(B2:B=TRANSPOSE(A2:A)),A2:A)))

我得到這個從一個很好的教程 - 不記得標題 - 大概使用MMULT

0

將下面的B3(信貸@亞歷山大·伊萬諾夫爲COUNTIF條件):

={UNIQUE(A3:A),ARRAYFORMULA(COUNTIF(UNIQUE(A3:A),"=" & UNIQUE(A3:A)))} 

優點:它僅需要編輯1細胞時,它包括由唯一性過濾的名稱,它是簡潔。

缺點:它運行的獨特功能3X

只有一次使用了獨特的功能,將它分成2個細胞:

B3:=UNIQUE(A3:A)

C3:=ARRAYFORMULA(COUNTIF(B3:B,"=" & B3:B))