Страницы: 1
RSS
Максимальное значение, если много условий
 
Всех приветствую!  
 
Если коротко то вопрос в следующем. В экселе есть замечательная формула "суммеслимн". Т.е. суммирует по определенному столбцу - с заданными критериями по другому столбцу. Можно ли сделать формулу, которая также считает по заданным критериям - максимальное и минимальное значение?  
Если упрощенно, то в первом столбце стоит время сделок, в правом - цены. Задаем параметр - посчитать макс значение цен среди сделок с 11.00 до 12.30 например.  
 
Будьте добры, заранее благодарен!
 
Пробовал просто путем отбора с помощью "если" в соседнем столбце, но строк в экселе больше 300 000 и интервалов около 10, поэтому не помогает...
 
попробуй так:  
=МАКС(ЕСЛИ(Время>=ВРЕМЯ(10;0;0);ЕСЛИ(Время<=ВРЕМЯ(11;15;0);Продажи)))  
 
не забудь в конце Ctrl+Shift+Enter нажать
 
{quote}{login=Алекс}{date=09.08.2009 12:58}{thema=Kontev.AV@mail.ru}{post}попробуй так:  
=МАКС(ЕСЛИ(Время>=ВРЕМЯ(10;0;0);ЕСЛИ(Время<=ВРЕМЯ(11;15;0);Продажи)))  
 
не забудь в конце Ctrl+Shift+Enter нажать{/post}{/quote}  
 
ответил со вложением на почту.
 
Еще функцию ДМАКС посмотрите.
KL
 
Формула массива:  
{=НАИБОЛЬШИЙ((A6:A21<=B3)*(A6:A21>=B2)*B6:B21;1)}
 
Если строк 300000, а продажи идут "по порядку", то можно сделать так:  
вначале ищем строку с начальным временем, потом с конечным, потом уже по этому диапазону ищем максимальное или что то ещё. В этом случае формула становится на порядок легче.  
 
Нечто вроде вот этого:  
=МАКС(ДВССЫЛ(АДРЕС(ПОИСКПОЗ(G1;$A$1:$A$19;0);СТОЛБЕЦ($B$1);1;1)):ДВССЫЛ(АДРЕС(ПОИСКПОЗ(G2;$A$1:$A$19;0);СТОЛБЕЦ($B$1);1;1)))  
 
В файле пример.
 
Если строк 300 000 и интервалов около 10, то я бы настоятельно рекомендовал:  
 
1) не использовать ни одну из формул массива предложенных здесь  
 
2) не использовать летучих функций ДВССЫЛ(), СМЕЩ() и иже с ними  
 
3) использовать либо ДМАКС либо идею предложенную в последнем посте, но без летучей ДВССЫЛ() и медлительного АДРЕС():  
 
=МАКС(ИНДЕКС($B:$B;ПОИСКПОЗ(G1;$A$1:$A$19;0)):ИНДЕКС($B:$B;ПОИСКПОЗ(G2;$A$1:$A$19;0)))  
 
если же условия определены интервалами, чьи границы не обязательно находятся в списке, то:  
 
=МАКС(ИНДЕКС($B:$B;ПОИСКПОЗ(G1;$A$1:$A$19)):ИНДЕКС($B:$B;ПОИСКПОЗ(G2;$A$1:$A$19)))
KL
 
Борьба индекса с двссыл уже в 2 темах. :) там ведь расчёт этих формул происходит всего дважды. Какая нафиг разница? :)
 
{quote}{login=}{date=09.08.2009 05:29}{thema=}{post}Борьба индекса с двссыл уже в 2 темах. :) там ведь расчёт этих формул происходит всего дважды. Какая нафиг разница? :){/post}{/quote}  
Поскольку вы не регистрировались в системе, мне трудно судить о том, отвечаю ли я одному и тому же человеку или нет, но вы взгляните во вторую тему, а лучше - сами смоделируйте базу из 300 000 строк и введите 10 формул подобных приведенным здесть с двумя параметрами. И попробуйте изменить что-либо в любой ячейке листа. Вам даже измерять ничего не понадобится, чтобы почувствовать разницу.
KL
Страницы: 1
Читают тему
Наверх