2011-12-07 77 views
13
A B C 

1 Β  Β 
2 Β  Β 
3 Α  Α 
4 Α  Α 
5 Β  Β 
6 Α  Α 
7 Α  B 
8 Β  Β 
9 Β  Β 
10 Α  Α 
11 Β  A 
12 Α  Α 
13 Α  Α 
14 Β  Β 
15 Α  Α 
16 Β ?? 

限定非連續範圍在細胞B16欲計算有多少「B」 S(在A16中的值)在細胞C1:C15 A16。然後使用一些函數,我將在單元格C16中放置一個「A」或「B」。我如何在COUNTIF中提供這樣的範圍?同樣的公式必須在B列用於每個細胞如何COUNTIF

回答

15

下面是B16單元格的公式: =SUM(COUNTIF(INDIRECT({"C1:C15","A16"}),"B"))

+0

不錯的一個 - 我不知道你可以用'INDIRECT'中的'{}'來聲明非連續範圍 – JMax

+1

T他的公式似乎有用,但我無法複製它。 –

+0

你可以使用''INDIRECT''來創建一個範圍數組,但是你只能傳遞它的字符串。因此您需要手動更新每個單元格的範圍。或者,您可以編寫一個VBA函數來執行此操作。 –

0

爲了記錄在案,如果我沒有理解好,你想從小區A16計數的值。但是,如果你做這樣一個公式:

=COUNTIF(C1:C15,A16) 

知道你會在細胞A16有值(這裏B),不是嗎?

所以,你想要得到的值是:

=COUNTIF(C1:C15,A16) + 1 

我是怎麼誤解?

+0

不,我不知道。它可以是A或B,所以我不能使用「+1」 –

+0

如果你在公式中使用var(在這種情況下爲'A16') – JMax

+0

好吧,我應該說,實際上我想要一個計算絕對公式(alphas-beta) –

13

至於那些用於複製和粘貼工作的替代,你可以這樣做:

=COUNTIF($C$1:$C$15,"B") + COUNTIF(A16,"B") 
+1

儘管我的答案可能是向人們介紹'INDIRECT'函數的工具,但這個答案非常簡單。 –

+0

雖然對於許多不連續的單元格有點麻煩,但它具有在刪除行或列時自動調整單元格的巨大優勢。非常感謝。 –

1

您也可以申報非連續範圍的命名範圍,但你必須在聲明範圍內使用INDIRECT函數。否則,它將會像一個正常的,不連續的範圍一樣失敗。

聲明的範圍( 「範圍1」)應該有 「適用於」 現場閱讀:

=INDIRECT({"A1:B2","C4:F17"}) 

或使用其他的命名範圍:

=INDIRECT({"Table1[Column1]","Table2[Column3]","Table4[Column2]") 

然後,你可以參考它想:

=COUNTIF(Range1,"=Yes")