如果列值大于或等于相应列中的值乘以常数,则对列求和

如果列值大于或等于相应列中的值乘以常数,则对列求和

如果 I 列中的值大于相应 R 列中的值乘以一个常数,我想要对 R 列求和。

简单地说,每一行的条件是这样的: 如果 I 大于或等于 R 乘以常数,则将 R 添加到总和中。

以下是我为实现此目的而构建公式的最佳尝试。我意识到 CONCAT 中的语法写得有些无知,但我希望它能传达出意图。

=SUMIF($I$2:$I$272,CONCAT(">=",R * AN36),$R$2:$R$272)*AN36

答案1

不幸的是,在 SUMIF 的条件中,将一个范围乘以一个常数似乎会产生一个数组,而不是一个数字。请参见从 U5 开始并向下溢出的数组。

我的理解是,您的常数位于单元格 AN36 中。为了使屏幕截图更窄,我将常数位于 V3 中。我相信您有三个选择。

在此处输入图片描述

选项1

列:

=I2>R2*$V$2

单元格 X2:

=SUMIF($S$2:$S$11,TRUE,$R$2:$R$11)

您可以计算每行(如 S 列)的条件是否满足,然后使用单元格 Y2 中显示的公式(我在单元格 X2 中使用过该公式)。这很简单,可以让您了解发生了什么。

选项 2

手机 X10:

=SUM(IF($I$2:$I$11>$R$2:$R$11*$V$2,$R$2:$R$11,0))

如果您使用的是最新版本的 Excel 365,则可以在 IF 函数中使用动态数组,并使用单元格 Y10 中显示的公式(我在 X10 中使用过该公式)。这是我的首选选项,因为它不需要辅助列 S。

选项 3

单元格 X14:

{=SUM(IF($I$2:$I$11>$R$2:$R$11*$V$2,$R$2:$R$11,0))}

如果您使用的是早期版本的 Excel,您仍然可以获得与选项 2 相同的结果,但您需要在键入函数结束时按Ctrl+ Shift+,而不仅仅是。这意味着该公式将被视为数组公式并返回单个值。EnterEnter

请注意,我没有包括返回值与常数的乘积(在函数末尾),因为这不在你对所需结果的描述中。因此,请根据需要进行调整。

相关内容