如何从 Excel 中的行/范围中获取最大值/超出值的总和?

问题描述 投票:0回答:3

以下是示例数据。

如何获取超过 200 的所有值?在这种情况下,我有 2 个超过 200 的实例。我的结果应该是 50+50 = 100

这应该可以吧?

=SUM(MAX(A1-200,0),MAX(A2-200,0))
等等..

但是有没有更好的方法来使用范围而不是添加每个单元格的结果,例如..

foreach cell in this range, if cell > 200, excessAmount++

excel excel-formula
3个回答
1
投票

您可以使用这个简单的公式来完成:

=SUM(IF(B3:I3<=200,0,B3:I3-200))

这意味着:

  • 如果值小于 200,则使用 0。
  • 否则(值大于200),使用“200 - 值”。

=> 求和。

哦,您可以使用整个范围作为输入:我已经对范围内的所有单元格执行了此操作

B3:I3

在您的问题中,您提到:

=SUM(MAX(A1-200,0),MAX(A2-200,0))

这可以写成:

=SUM(MAX(A1:A2-200,0))

1
投票

适用于 Microsoft 365 用户的公式:

=SUM(FILTER(B3:H3-200,B3:H3>200))
当满足条件 >200 时,FILTER 函数返回减去 200 的值数组。然后通过 SUM 函数对该数组求和。

遗憾的是,溢出数组不适用于 Excel 2019 及更低版本的用户。所以FILTER功能无法使用。

对于其他人:VBA 代码

sum = 0 For Each cell In Range('Your Range Here').Cells If cell.Value > 200 Then sum = sum + cell.Value - 200 Next cell
    

0
投票

=SUMIF(A1:F2,">200")-200*COUNTIF(A1:F2,">200")


将超过 200 的值相加,然后从每个值中减去 200,得出超出部分。

如果愿意,您可以将常量

200

 移动到其自己的单元格并使用命名范围:

=SUMIF(MyRange,">" & $A$5)-$A$5*COUNTIF(MyRange,">" &$A$5)


    

© www.soinside.com 2019 - 2024. All rights reserved.