У меня есть формула массива SUM с несколькими вложенными операторами IF, что делает ее очень неэффективной. Моя формула охватывает более 500 строк, но вот ее простая версия:
{=SUM(IF(IF(A1:A5>A7:A11,A1:A5,A7:A11)-A13:A17>0,
IF(A1:A5>A7:A11,A1:A5,A7:A11)-A13:A17,0))}
Как вы можете видеть, первая половина формулы проверяет, где массив больше нуля, и если они есть, он суммирует значения во второй части формулы.
Вы заметите, что один и тот же оператор IF повторяется там дважды, что для меня неэффективно, но это единственный способ получить правильный ответ.
Пример данных, которые я имею, выглядит следующим образом:
Пример данных в электронной таблице http://clients.estatemaster.net/SecureClientSite/Download/TempFiles/example.jpg
В этом случае ответ должен быть 350, используя формулу, упомянутую выше.
Если я попытался вставить оператор MAX в массив, поэтому удалил тест, чтобы найти, где он был больше нуля, так оно и было:
{=SUM(MAX(IF(B2:B6>B8:B12,B2:B6,B8:B12)-B14:B18,0))}
Однако, похоже, что он вычисляет только первую строку данных в каждом диапазоне, и он дал мне неправильный ответ 70.
Кто-нибудь знает, что я могу уменьшить размер формулы или сделать ее более эффективной, если не нужно будет повторять оператор IF там?
ОБНОВЛЕНИЕ
Jimmy
Формула MAX, которую вы предложили, фактически не работает для всех сценариев.
Если я изменил свои выборочные данные в строках с 1 по 5, как показано ниже (показывая, что некоторые из чисел больше, чем их соответствующие ячейки в строках с 7 по 11, а некоторые из чисел ниже)
Пример данных в электронной таблице http://clients.estatemaster.net/SecureClientSite/Download/TempFiles/example2.jpg
Правильный ответ, который я пытаюсь получить, равен 310, однако вы предложили, что формула MAX дает неправильный ответ 275.
Я предполагаю, что формула должна быть функцией массива, чтобы дать правильный ответ.
Есть еще предложения?