Суммирование массива максимальных значений в Excel? - PullRequest
0 голосов
/ 20 июня 2019

Предположим, у меня есть следующие данные в ячейках A1: A3

A1 = 1
A2 = 3
A3 = 5

Я хотел бы написать формулу, которая суммирует разницу между числом в ячейке и 2. Если разница отрицательна, тогда возьмите 0. Я попробовал следующую формулу CSE / массива:

{=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

Однако я хотел бы знать: есть ли способ сделать это в одной ячейке с помощью формулы массива?

Спасибо!

1 Ответ

0 голосов
/ 20 июня 2019

Как насчет этого?Вместо того, чтобы пытаться использовать MAX, просто используйте SUMPRODUCT.Если разница отрицательна, A1:A3-2>0 оценивается как FALSE, что эквивалентно умножению разницы на 0.

=SUMPRODUCT((A1:A3-2)*(A1:A3-2>0))

enter image description here

...