跳到主要內容

如果在 Excel 中滿足多個條件,則計算行數

根據多個條件計算區域中的行數,其中一些取決於在行級別工作的邏輯測試,Excel 中的 SUMPRODUCT 函數可能會對您有所幫助。

例如,我有一個包含計劃和實際銷售額的產品報告,現在,我想計算包含實際銷售額大於計劃銷售額的 Apple 的行,如下圖所示。 為了解決這個任務,最有效的函數是 SUMPRODUCT 函數。

如果使用 SUMPRODUCT 函數滿足多個條件,則計算行數


如果使用 SUMPRODUCT 函數滿足多個條件,則計算行數

要在滿足多個條件時計算行數,請使用 Excel 中的 SUMPRODUCT 函數,通用語法為:

=SUMPRODUCT((logical1)*(logical2))
  • logical1, logical2:用於比較值的邏輯表達式。

1. 要計算實際銷售量大於計劃銷售量的 Apple 行數,請應用以下公式:

=SUMPRODUCT(($C$2:$C$10>$B$2:$B$10)*($A$2:$A$10=E2))

備註:在以上公式中, C2:C10>B2:B10 是將 C 列中的值與 B 列中的值進行比較的第一個邏輯表達式; A2:A10=E2 是第二個邏輯表達式,用於檢查單元格 E2 是否存在於 A 列中。

2。 然後按 Enter 獲得所需結果的關鍵,請參見屏幕截圖:


公式說明:

=SUMPRODUCT(($C$2:$C$10>$B$2:$B$10)*($A$2:$A$10=E2))

  • $C$2:$C$10>$B$2:$B$10: 該邏輯表達式用於比較每行C列的值與B列的值,如果C列的值大於B列的值,則顯示TRUE,否則顯示FALSE,並返回數組值如下:{TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE}。
  • 2 澳元:10 澳元=E2:此邏輯表達式用於檢查單元格E2 是否存在於區域A2:A10 中。 所以,你會得到這樣的結果:{TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE}。
  • ($C$2:$C$10>$B$2:$B$10)*($A$2:$A$10=E2):乘法運算用於將這兩個數組相乘為一個數組,返回結果為:{1;0;1;0;0;0;0;1;0}。
  • SUMPRODUCT(($C$2:$C$10>$B$2:$B$10)*($A$2:$A$10=E2))= SUMPRODUCT({1;0;1;0;0;0;0;1;0}):這個 SUMPRODUCT 將數組中的數字相加並返回結果:3。

使用的相對功能:

  • SUMPRODUCT:
  • SUMPRODUCT函數可用於將兩個或多個列或數組相乘,然後獲得乘積之和。

更多文章:

  • 如果滿足內部標準,則計算行數
  • 假設您有今年和去年的產品銷售報表,現在,您可能需要統計今年銷售額大於去年或今年銷售額小於去年的產品,如下所示截圖顯示。 通常,您可以添加一個輔助列來計算兩年之間的銷售差異,然後使用 COUNTIF 來獲取結果。 但是,這篇文章,我將介紹 SUMPRODUCT 函數來直接獲取結果,無需任何輔助列。
  • 計算兩列之間的匹配
  • 例如,我在 A 列和 C 列中有兩個數據列表,現在,我想比較兩列併計算 A 列中的值是否在 C 列的同一行中找到,如下面的屏幕截圖所示。 在這種情況下,SUMPRODUCT 函數可能是您在 Excel 中解決此任務的最佳函數。
  • 計數單元格數等於多個值之一
  • 假設,我在 A 列中有一個產品列表,現在,我想從 A 列中獲取列在 C4:C6 範圍內的特定產品 Apple、Grape 和 Lemon 的總數,如下圖所示。 通常,在 Excel 中,簡單的 COUNTIF 和 COUNTIFS 函數在這種情況下不起作用。 這篇文章,我將談談如何通過 SUMPRODUCT 和 COUNTIF 函數的組合快速輕鬆地解決這個工作。

最佳辦公效率工具


Office選項卡-在Microsoft Office(包括Excel)中啟用選項卡式閱讀和編輯

  • 一秒鐘即可在數十個打開的文檔之間切換!
  • 每天為您減少數百次鼠標單擊,告別鼠標手。
  • 查看和編輯多個文檔時,將您的工作效率提高 50%。
  • 為 Office(包括 Excel)帶來高效的選項卡,就像 Chrome、Edge 和 Firefox 一樣。
Comments (2)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
=SUMPRODUCT({Array of True/False}) doesn't count the True values in the array anymore (as of the SUM or COUNT formulaes).
But you can force the convertion of True/False to 1 and 0 by adding the '--' operator right before the array:
=SUMPRODUCT(--{Array of True/False}).
You can also type this operator right after the multiplication sign, giving the strange '*--' operator.

In this exemple, a working formulae would be:
=SUMPRODUCT(--($C$2:$C$10>$B$2:$B$10)*--($A$2:$A$10=E2))
This comment was minimized by the moderator on the site
Hello Professor X,

You are right in one way. The double negative (--) is one of several ways to coerce TRUE and FALSE values into their numeric equivalents, 1 and 0. Once we have 1s and 0s, we can perform various operations on the arrays with Boolean logic.

But our formula doesn't need the the double negative (--), making the formula more compact. This is because the math operation of multiplication (*) automatically converts the TRUE and FALSE values to 1s and 0s. Have a nice day.

Sincerely,
Mandy
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations