簡體   English   中英

計算Excel中列中的唯一值

[英]Count unique values in a column in Excel

我有一個帶有一些數據的列的.xls文件。 如何計算包含此列的唯一值的數量?

我用Google搜索了許多選項,但是他們給出的公式總是給我錯誤。 例如,

=INDEX(List, MATCH(MIN(IF(COUNTIF($B$1:B1, List)=0, 1, MAX((COUNTIF(List, "<"&List)+1)*2))*(COUNTIF(List, "<"&List)+1)), COUNTIF(List, "<"&List)+1, 0))

回報 在此輸入圖像描述

要計算A2中不同值的數量:A100(不計算空白):

=SUMPRODUCT((A2:A100<>"")/COUNTIF(A2:A100,A2:A100&""))


@Ulli Schmid的答案復制到這個COUNTIF()公式做什么?

=SUMPRODUCT((A1:A100<>"")/COUNTIF(A1:A100,A1:A100&""))

計算A1:A100中的唯一單元格不包括空白單元格和空字符串(“”)。

它是如何做到的? 例:

A1:A100 = [1, 1, 2, "apple", "peach", "apple", "", "", -, -, -, ...]
then:
A1:A100&"" = ["1", "1", "2", "apple", "peach", "apple", "", "", "", "", "", ...]

所以需要這個&“”將空白單元格( - )變成空字符串(“”)。 如果您直接使用空白單元格計算,COUNTIF()將返回0.使用該技巧,“”和 - 都計為相同:

COUNTIF(A1:A100,A1:A100) = [2, 2, 1, 2, 1, 2, 94, 94, 0, 0, 0, ...]
but:
COUNTIF(A1:A100,A1:A100&"") = [2, 2, 1, 2, 1, 2, 94, 94, 94, 94, 94, ...]

如果我們現在想要得到所有唯一單元格的數量,不包括空白和“”,我們可以划分

(A1:A100<>""), which is [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, ...]

通過我們的中間結果COUNTIF(A1:A100,A1:A100&“”),並對這些值進行總結。

SUMPRODUCT((A1:A100<>"")/COUNTIF(A1:A100,A1:A100&""))  
= (1/2 + 1/2 + 1/1 + 1/2 + 1/1 + 1/2 + 0/94 + 0/94 + 0/94 + 0/94 + 0/94 + ...)
= 4

如果我們使用COUNTIF(A1:A100,A1:A100)而不是COUNTIF(A1:A100,A1:A100&"") ,則那些0/94中的一些將是0/0。 由於不允許除零,我們會拋出錯誤。

try - =SUM(IF(FREQUENCY(MATCH(COLUMNRANGE,COLUMNRANGE,0),MATCH(COLUMNRANGE,COLUMNRANGE,0))>0,1))

其中COLUMNRANGE =您擁有這些值的范圍。

例如 - =SUM(IF(FREQUENCY(MATCH(C12:C26,C12:C26,0),MATCH(C12:C26,C12:C26,0))>0,1))

按Ctrl + Shift + Enter使公式成為一個數組(否則將無法正確計算)

這是獲得唯一值計數以及獲取唯一值的另一種快捷方式。 將您關心的列復制到另一個工作表中,然后選擇整個列。 單擊Data - > Remove Duplicates - > OK。 這將刪除所有重復的值。

這是一個優雅的數組公式(我在http://www.excel-easy.com/examples/count-unique-values.html找到)可以很好地完成這個工作:

類型

= SUM(1 / COUNTIF(列表,列表))

並使用CTRL-SHIFT-ENTER確認

具有條件的唯一計數。 Col A是ID並且使用條件ID=32 ,Col B是Name,我們正在嘗試計算特定ID的唯一名稱

=SUMPRODUCT((B2:B12<>"")*(A2:A12=32)/COUNTIF(B2:B12,B2:B12))

剛剛發生在我身上的另一種棘手的方法(經過測試並且有效!)。

  • 選擇列中的數據
  • 在菜單中,選擇“ Conditional Formatting ,“ Highlight Cells ,“ Duplicate Values
  • 選擇是否要突出顯示唯一值或重復值。
  • 保存突出顯示
  • 選擇數據
  • 轉到Data ,然后Filter

根據顏色過濾:

Excel  - 至少2013年 - 讓您過濾顏色。甜!

不可否認,對於一次性的數據檢查,這比您經常使用的電子表格要多,因為它需要進行一些格式更改。

您可以執行以下步驟:

  1. 首先隔離色譜柱(如果有任何相鄰的色譜柱,則在色譜柱之前和/或之后插入一個空白色譜柱,以計算唯一值;

  2. 然后選擇整個列,轉到“數據”>“高級過濾器”並選中“僅限唯一記錄”復選框。 這將隱藏所有非唯一記錄,以便您可以通過選擇整列來計算唯一記錄。

如果使用Mac

  1. 突出顯示列
  2. 復制
  3. 打開terminal.app
  4. 輸入pbpaste|sort -u|wc -l

Linux用戶用xclip xsel或類似代替pbpaste

Windows用戶,這是可能的,但需要一些腳本...從http://brianreiter.org/2010/09/03/copy-and-paste-with-clipboard-from-powershell/開始

您可以為唯一記錄計數添加新公式

=IF(COUNTIF($A$2:A2,A2)>1,0,1)

現在,您可以使用數據透視表並獲取唯一記錄計數的SUM 如果您有兩行或更多行存在相同的值,但您希望數據透視表報告唯一計數,則此解決方案最有效。

我在第1行使用帶有標題的電子表格,數據在第2行和第2行。

ID在A列中。要計算有多少不同的值,我將此公式從第2行放到第一個可用列的電子表格末尾[在我的情況下為F]: "=IF(A2=A1,F1+1,1)"

然后我在一個空閑單元格中使用以下公式: "=COUNTIF(F:F,1)" 通過這種方式,我確信每個ID都會被計算在內。

請注意,必須對ID進行排序,否則它們將被計算多次...但與數組公式不同,即使使用150000行電子表格也非常快。

我的數據集是D3:D786,D2中的列標題,D1中的功能。 公式將忽略空值。

= SUM(IF(頻率(IF(小計(3,OFFSET(D3,ROW(D3:D786)-ROW(D3),, 1)),IF(D3:D786 <> “”,MATCH( “〜” &D3 :D786,D3:D786& “”,0))),ROW(D3:D786)-ROW(D3)1),1))

輸入公式時,按CTRL + SHIFT + ENTER

我在下面的網站上找到了這個,有關於Excel的更多解釋我不理解,如果你是那種東西。

http://www.mrexcel.com/forum/excel-questions/553903-count-unique-values-filtered-column.html#post2735467

我將我的數據集復制並粘貼到另一張表中以驗證它並且它對我有用。

暫無
暫無

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

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