我正在嘗試對以下資料執行 COUNTIF,其中條件是特定於行的,並且不連結到特定值或單元格。
例如,在下面的範例中,我嘗試計算 B 列是 A 列的兩倍的行數。
A | 乙 |
---|---|
1 | 5 |
2 | 6 |
5 | 3 |
我假設正確的語法是"=COUNTIF(B:B, "="&A:A *2) ,以便它檢查每行中的B 列是否是A 列的兩倍,但我總是得到0。正確的結果是2.
似乎只允許離散的 # 或單一單元格引用(例如“=”&A2),但是我希望檢查的條件特定於每一行。
是否有不同的函數或一些語法錯誤阻止我這樣做?謝謝
答案1
答案2
您的範例資料沒有(行)實例,其中 B 列是 A 中值的兩倍
=SUM(IF(B1:B3 =A1:A3*2,1,0))
因為 3D/陣列公式會為你做到這一點。
在 LibreOffice 中必須使用CTRL+ SHIFT+輸入數組公式;ENTER我不太確定在 Excel 中是否相同(並且沒有辦法嘗試)。
答案3
原始公式的唯一問題是它需要以某種方式求和。一種方法是如何cybernetic.nomad
做到的。另一種方法是簡單地將海報的公式包含在SUM()
函數中。
還有其他方法可以實現 B 列值是否滿足條件的 1 和 0 列表。坦白說,這將是我的“首選”,因為我從未發現該函數系列Hannu
有很多用途。 COUNT
(我知道我的局限性,因為過去八年左右查看 Excel 幫助網站向我展示了許多“標籤外”用途,並且它們是獲得我一直使用的結果的更直接方法IF()
。)
然而,還有其他方法可以做到這一點,其中之一是對IF()
工作中不使用的每個值進行簡單的 TRUE/FALSE 測試,因此在大型資料集上可能會更快:
=SUM( (B1:B4 = A1:A4*2) *1)
這只是簡單的比較,產生 TRUE/FALSE 結果陣列。然後就可以使用--
運算符,就像cybernetic.nomad
我*1
在這裡所做的那樣。這會將文字 TRUE/FALSE 陣列元素轉換為 1/0 陣列元素,SUM()
然後允許將它們相加。 (我的偏好是 ,*1
因為如果表達式中有自己的乘法,則很容易不在表達式末尾添加,因為乘法(或加法,如果執行 anOR
而不是 an AND
)足以進行轉換。當然,效果很好,對許多人來說--
似乎更清晰,因此比我們人類更容易維護,*1
對每個人來說都是最好的。
該COUNT
系列直接產生 1/0,因此這是一個很好的值。然而,在一定範圍內應用時,仍然需要總結一些東西。