Страницы: 1
RSS
суммировать первые 20 ячеек в которых значения больше 0
 
Мне надо суммировать первые 20 ячеек в которых значения больше 0. Я воспользовался формулой СУММЕСЛИ(A1:A100;">0"), а как мне написать, что суммировать надо только первые 20 значений не пойму. Подскажите плиз
 
=СУММЕСЛИ(A1:ИНДЕКС(A1:A100;НАИМЕНЬШИЙ(ЕСЛИ(A1:A100>0;СТРОКА(A1:A100));20));">0")  
Формула массива.
 
Спасибо огромное, я б не додумался до такого даже!
 
{quote}{login=kim}{date=08.02.2011 10:34}{thema=}{post}=СУММЕСЛИ(A1:ИНДЕКС(A1:A100;НАИМЕНЬШИЙ(ЕСЛИ(A1:A100>0;СТРОКА(A1:A100));20));">0")  
Формула массива.{/post}{/quote}А если таких ячеек меньше 20?
 
{quote}{login=Михаил}{date=08.02.2011 10:41}{thema=Re: }{post}А если таких ячеек меньше 20?{/post}{/quote}  
формула массива:  
=СУММЕСЛИ(A1:ИНДЕКС(A1:A100;ПОИСКПОЗ(20;МУМНОЖ(--(СТРОКА(A1:A100)>=ТРАНСП(СТРОКА(A1:A100)));--(A1:A100>0))));">0")
 
Блин, один нюанс, у меня данные с конца идут. Надо чтоб считал перед этой ячейкой, а не после нее. Можно че нить придумать?  
 
А если данных меньше зачит будет пусто, мне надо четко 20 цифр суммировать.
 
{quote}{login=MCH}{date=08.02.2011 10:44}{thema=Re: Re: }{post}{quote}{login=Михаил}{date=08.02.2011 10:41}{thema=Re: }{post}А если таких ячеек меньше 20?{/post}{/quote}  
формула массива:  
=СУММЕСЛИ(A1:ИНДЕКС(A1:A100;ПОИСКПОЗ(20;МУМНОЖ(--(СТРОКА(A1:A100)>=ТРАНСП(СТРОКА(A1:A100)));--(A1:A100>0))));">0"){/post}{/quote} у меня на эту формулу ошибку выдал, говорит типа ресурсы Excel закончились
 
{quote}{login=xxxspeed}{date=08.02.2011 10:50}{thema=Re: Re: Re: }{post}у меня на эту формулу ошибку выдал, говорит типа ресурсы Excel закончились{/post}{/quote}  
Стало быть диапазон не А1:А100, а больше. Выкладывайте пример, чтобы не гадать, и про Ваш "один нюанс" не понятно без примера.
 
{quote}{login=xxxspeed}{date=08.02.2011 10:46}{thema=}{post}Блин, один нюанс, у меня данные с конца идут. А если данных меньше зачит будет пусто, мне надо четко 20 цифр суммировать.{/post}{/quote}  
Можно так :-)
 
{quote}{login=Михаил}{date=08.02.2011 10:41}{thema=Re: }{post}{quote}{login=kim}{date=08.02.2011 10:34}{thema=}{post}=СУММЕСЛИ(A1:ИНДЕКС(A1:A100;НАИМЕНЬШИЙ(ЕСЛИ(A1:A100>0;СТРОКА(A1:A100));20));">0")  
Формула массива.{/post}{/quote}А если таких ячеек меньше 20?{/post}{/quote}  
Умеренно шустрый вариант.  
=СУММЕСЛИ(A1:ИНДЕКС(A1:A1000;МИН(МАКС(ЕСЛИ(A1:A1000>0;СТРОКА(A1:A1000)));НАИМЕНЬШИЙ(ЕСЛИ(A1:A1000>0;СТРОКА(A1:A1000);1111111);20)));">0")  
Но кажется автору уже другое понадобилось :)
 
{quote}{login=kim}{date=09.02.2011 12:26}{thema=Re: Re: }{post}"А если таких ячеек меньше 20?"  
Умеренно шустрый вариант.  
=СУММЕСЛИ(A1:ИНДЕКС(A1:A1000;МИН(МАКС(ЕСЛИ(A1:A1000>0;СТРОКА(A1:A1000)));НАИМЕНЬШИЙ(ЕСЛИ(A1:A1000>0;СТРОКА(A1:A1000);1111111);20)));">0")  
Но кажется автору уже другое понадобилось :){/post}{/quote}  
 
Игорь, формулу можно и так записать:  
=СУММЕСЛИ(A1:ИНДЕКС(A1:A1000;НАИМЕНЬШИЙ(ЕСЛИ(A1:A1000>0;СТРОКА(A1:A1000);1000);20));">0")  
где 1000 в функции ЕСЛИ - номер строки последней ячейки. Если ячеек, удовлетворяющих условию, меньше 20, то будет выбираться весь диапазон.
 
спасибо всем за помощь))
Страницы: 1
Читают тему
Наверх