excel 中最大值数组的总和?
Summation of an array of max values in excel?
假设我在单元格中有以下数据 A1:A3
A1 = 1
A2 = 3
A3 = 5
我想写一个公式,将单元格中的数字与 2 的差相加。如果差为负,则取 0。我尝试了以下 CSE/array 公式:
{=sum(max(A1:A3-2,0))}
Excel计算公式如下:
sum(max({1-2,3-2,5-2},0)) = sum(max({-1,1,3},0)) = sum(max(-1,1,3,0)) = sum(3) = 3
我想写一个计算公式如下:
sum({max(-1,0),max(1,0),max(3,0)}) = sum({0,1,3}) = 4
显然,解决此问题的一种方法是在 B 列中进行第二次计算,这样:
B1 = max(A1-2,0) = max(-1,0) = 0
B2 = max(A2-2,0) = max( 1,0) = 1
B3 = max(A3-2,0) = max( 3,0) = 3
那么我的目标公式是:
= sum(B1:B3) = 4
不过,我想知道:有没有一种方法可以使用数组公式在单个单元格中执行此操作?
谢谢!
这个怎么样?与其尝试使用 MAX
,不如使用 SUMPRODUCT
。如果差异为负数,A1:A3-2>0
的计算结果为 FALSE
,相当于将差异乘以 0
。
=SUMPRODUCT((A1:A3-2)*(A1:A3-2>0))
假设我在单元格中有以下数据 A1:A3
A1 = 1
A2 = 3
A3 = 5
我想写一个公式,将单元格中的数字与 2 的差相加。如果差为负,则取 0。我尝试了以下 CSE/array 公式:
{=sum(max(A1:A3-2,0))}
Excel计算公式如下:
sum(max({1-2,3-2,5-2},0)) = sum(max({-1,1,3},0)) = sum(max(-1,1,3,0)) = sum(3) = 3
我想写一个计算公式如下:
sum({max(-1,0),max(1,0),max(3,0)}) = sum({0,1,3}) = 4
显然,解决此问题的一种方法是在 B 列中进行第二次计算,这样:
B1 = max(A1-2,0) = max(-1,0) = 0
B2 = max(A2-2,0) = max( 1,0) = 1
B3 = max(A3-2,0) = max( 3,0) = 3
那么我的目标公式是:
= sum(B1:B3) = 4
不过,我想知道:有没有一种方法可以使用数组公式在单个单元格中执行此操作?
谢谢!
这个怎么样?与其尝试使用 MAX
,不如使用 SUMPRODUCT
。如果差异为负数,A1:A3-2>0
的计算结果为 FALSE
,相当于将差异乘以 0
。
=SUMPRODUCT((A1:A3-2)*(A1:A3-2>0))