2013-04-11 113 views
20

在A列中,我列出了不同的名稱。在列B,I具有值0或1。使用條件計算唯一值

我想從塔A的所有唯一的名稱,其在列B

具有1的計數使用下面陣列式我能夠算唯一的名稱,但不能夠對列B

=SUM(1/COUNTIF(A:A,A:A)) 
+0

+ 1好的問題:) – 2013-04-11 09:25:29

+0

@SiddharthRout謝謝:) – Tejas 2013-04-11 18:28:11

回答

8

假設不超過100行嘗試這種「數組公式」計數在A2中不同名稱適用條件:A100,其中有在一個1 B2中的同一行:B100:

=SUM(IF(FREQUENCY(IF(B2:B100=1,IF(A2:A100<>"",MATCH(A2:A100,A2:A100,0))),ROW(A2:A100)-ROW(A2)+1),1))

證實CTRL+SHIFT+ENTER

請注意,我說的不同不是唯一因爲這兩個是不一樣的

+0

+ 1 5秒打我吧:) – 2013-04-11 09:21:04

6

喜歡這個?

=SUM(--(FREQUENCY(IF(($B$1:$B$8=1), COUNTIF($A$1:$A$8, "<"&$A$1:$A$8), ""), COUNTIF($A$1:$A$8, "<"&$A$1:$A$8))>0)))

這是數組公式。你將不得不按CTL + SHIFT + ENTER

截圖

enter image description here

+0

@SiddarthRout:很好,但真的很難理解:)謝謝反正 – Tejas 2013-04-11 18:28:40

+0

輝煌。感謝您的教育! – CompanyDroneFromSector7G 2015-04-14 09:54:27

3

是否必須是一個公式?一個非常簡單的方法是從列A和列B中創建一個數據透視表。然後將列B設置爲過濾器字段並將A的計數設置爲值(您需要標記列A和B)。然後數據透視表上的A4(至少在默認情況下)應該包含您的答案。這將適用於任何大小的列表,並且確實會在有多個條件時工作。

如果它必須是一個公式,是否必須完全如此?如果允許您在公式工作之前按A排序,那麼該工作流程如何?我對此並不着迷,我懷疑它可以改進。

1)排序方式A(升序或降序),然後由B(降序)

2)在C C的每一行把像這樣的公式:

=if (and(A2<>A1,B2=1),1,0) 

C1將是如如下:

=b1 

從C2拖拽到數據的最後一行(比如c500)。

3)然後通過求和計算C = sum(c1:c500)。

您當然可以將公式拖到數據行的下方(只要您知道所需的最大數量),它應該對所有空白行返回0。然後,當您將數據添加到A和B時,其餘部分將自動更新。您可能也需要獲取數據。

數據透視表解決方案的一個好處是,只要您在現有數據的行中插入新數據,數據集就可以自動增長。當然不需要排序。

+0

這很容易。 Nice1。但是,混淆是,直到我應該拖動C列中的公式?那必須是靜態的權利? – Tejas 2013-04-11 18:27:51

+0

我試圖澄清。 – BKay 2013-04-11 19:31:59

+0

如果我及時意識到你的綜合答案包括我不會發布的PT選項。 – pnuts 2013-04-12 01:25:49

1

易與數據透視表......:

SO15944249 example

3

一個相對簡單的解決這一常見的問題是

= SUM((B:B = 1)/ COUNTIFS( A:A,A:A,B:B,B:B))

作爲數組公式輸入。

您需要將數組的大小限制在實際擁有數據的位置。