У меня есть формула массива 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 повторяется дважды, что для меня неэффективно, но это единственный способ получить правильный ответ.
В примере данных у меня выглядит следующим образом:
Sample Data in spreadsheet http://clients.estatemaster.net/SecureClientSite/Download/TempFiles/example.jpg Ответ должен быть в данном случае 350, используя формулу I, упомянутых выше.
Если бы я попытался поставить в заявлении MAX в массиве, поэтому удаление тест, чтобы найти, где она была больше нуля, так что это было так:
{=SUM(MAX(IF(B2:B6>B8:B12,B2:B6,B8:B12)-B14:B18,0))}
Тем не менее, кажется, что это только вычисляет первую строку данных в каждом диапазоне, и это дало мне неправильный ответ 70.
Кто-нибудь знает, что я могу уменьшить размер формулы или сделать ее более эффективной, не повторяя IF заявление там?
UPDATE
Джимми
формула MAX вы предложили работать на самом деле техника его подводит для всех сценариев.
Если я изменил мой образец данных в строках 1 до 5, как показано ниже (показывая, что некоторые из чисел больше их соответствующих ячеек в строках 7 до 11, в то время как некоторые из чисел ниже)
правильный ответ им пытаются для того чтобы достигнуть 310, однако вы предложили формулу MAX дает неправильный ответ 275.
Im угадывание формула должна быть функцией массива, чтобы дать правильный ответ.
Любые другие предложения?
Спасибо. Кажется, он работает быстрее, чем может быть массив. – user40432 2008-11-25 03:35:57