跳到主要内容

如果在 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。 然后按 输入 获得所需结果的关键,请参见屏幕截图:


公式说明:

=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