Excel COUNTIFS,其中條件是特定於行的

Excel COUNTIFS,其中條件是特定於行的

我正在嘗試對以下資料執行 COUNTIF,其中條件是特定於行的,並且不連結到特定值或單元格。

例如,在下面的範例中,我嘗試計算 B 列是 A 列的兩倍的行數。

A
1 5
2 6
5 3

我假設正確的語法是"=COUNTIF(B:B, "="&A:A *2) ,以便它檢查每行中的B 列是否是A 列的兩倍,但我總是得到0。正確的結果是2.

似乎只允許離散的 # 或單一單元格引用(例如“=”&A2),但是我希望檢查的條件特定於每一行。

是否有不同的函數或一些語法錯誤阻止我這樣做?謝謝

答案1

使用SUMPRODUCT

=SUMPRODUCT(--(A1:A4*2=B1:B4))

在此輸入影像描述

注意:在您的範例資料中,結果應該為零,我添加了一行來實現非零結果

答案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,因此這是一個很好的值。然而,在一定範圍內應用時,仍然需要總結一些東西。

相關內容