Страницы: 1 2 След.
RSS
Поиск первого числа в массиве удовлетворяющего условиям
 
Надо искать в массиве C5:C1000 первое попавшееся число которое будет больше 100, а в массиве D5:D1000 надо искать  первое попавшееся число которое будет больше 50. Но вывести в ячейку надо тоько одно число, которое первее попадется в этих двух столбцах. Т.е. проверять надо в порядке C5,D5,C6,D6... Перепробовал разные функции, но чет никак не могу додуматься.
 
Сергей, какие функции пробовали?
 
Я пока не очень силен. Пробовал ВПР и ПОИСКПОЗ. Может и с ними можно что нить придумать, но у меня не получилось.
 
С двумя вспомогательными ячейками формулы умеренного размера. Если в одну ячейку упаковать, монстрик получается:
 
Жмем F9 - проверяем результат. Тож монстрик :)
 
Отпад!!! Теперь буду разбираться как это работает, прикольная вещица получилась!
 
Спасибо Вам, быстро Вы придумали. А может еще подскажите, у меня есть дата, но её может не быть в списке, тогда я для проверки использую большую формулу, которая проверяет сначала указанную дату, потом +1 день, потом еще +1 день, пока не найдет подходящую, если в течении недели её не будет, то ячейка останется пустой: =  
ЕСЛИ(ЕОШИБКА(СМЕЩ(PRICE!$A$1;ПОИСКПОЗ(E$2;PRICE!$A$1:PRICE!$A$50000;0)-1;0));  
ЕСЛИ(ЕОШИБКА(СМЕЩ(PRICE!$A$1;ПОИСКПОЗ(E$2+1;PRICE!$A$1:PRICE!$A$50000;0)-1;0));  
ЕСЛИ(ЕОШИБКА(СМЕЩ(PRICE!$A$1;ПОИСКПОЗ(E$2+2;PRICE!$A$1:PRICE!$A$50000;0)-1;0));  
ЕСЛИ(ЕОШИБКА(СМЕЩ(PRICE!$A$1;ПОИСКПОЗ(E$2+3;PRICE!$A$1:PRICE!$A$50000;0)-1;0));  
ЕСЛИ(ЕОШИБКА(СМЕЩ(PRICE!$A$1;ПОИСКПОЗ(E$2+4;PRICE!$A$1:PRICE!$A$50000;0)-1;0));"";СМЕЩ(PRICE!$A$1;ПОИСКПОЗ(E$2+4;PRICE!$A$1:PRICE!$A$50000;0)-1;0));  
СМЕЩ(PRICE!$A$1;ПОИСКПОЗ(E$2+3;PRICE!$A$1:PRICE!$A$50000;0)-1;0));  
СМЕЩ(PRICE!$A$1;ПОИСКПОЗ(E$2+2;PRICE!$A$1:PRICE!$A$50000;0)-1;0));  
СМЕЩ(PRICE!$A$1;ПОИСКПОЗ(E$2+1;PRICE!$A$1:PRICE!$A$50000;0)-1;0));  
СМЕЩ(PRICE!$A$1;ПОИСКПОЗ(E$2;PRICE!$A$1:PRICE!$A$50000;0)-1;0))   (она не соответствует вложенному файлу, E$2 это заданная дата (28.07.2007), +1,+2... это я прибавляю дни) Может можно это сделать проще. Мне надо взять следущий день до воскресенья данной недели, который есть в списке после заданного дня.
 
Ну это уж совсем! Почему Лешино послание удалено?
Я сам - дурнее всякого примера! ...
 
Все, извиняюсь. Увидел все, что хотел.
Я сам - дурнее всякого примера! ...
 
{quote}{login=KukLP}{date=21.12.2010 12:25}{thema=}{post}Ну это уж совсем! Почему Лешино послание удалено?{/post}{/quote} Какое послание?
 
{quote}{login=Казанский}{date=20.12.2010 11:34}{thema=}{post}С двумя вспомогательными ячейками формулы умеренного размера. Если в одну ячейку упаковать, монстрик получается:{/post}{/quote} У меня почему то, при внесении изменений в фориулу поз.С больше она не работает и пишет всегда 9999, и я пытался у себя написать такую же формулу но она тоже не работает, не могу понять в чем причина.
 
вот, 100 изменил на 80
 
Ну вот еще 3 часа понадобилось чтоб понять, что надо и как надо фигурные скобки писать, все понял свою ошибку, еще раз всем спасибо за помощь. Только так и не понял суть этих скобок в Exele, что они дают?
 
Я добавил некоторые вещи, и возникло еще пара вопросов, которые не получилось решить самому. Прошу помощи грамотных людей. 1. Как мне в ячейке H7 начинать поиск от нужной мне даты(строки), я строку с датой нахожу, а подставить в формулу вместо строки 1 не получается. 2. В ячейке E15 получается большая формула о которой писал выше, может можно её как нить укоротить. 3. Функцией СЦЕПИТЬ не получается объединить полученные в ячейках F7 и G7 дату и время.
 
Если правильно понял, то как-то так
 
Да Михаил, спасибо. А сдатой и временем я честно говоря лоханулся))) когда постоянно пытаешься придумать какую нибудь формулу зыбываешь о простых вещах.
 
Спасибо всем за помощь, переварил всю полученную информацию, но чем дальше идешь тем больше нерешенных вопросов возникает. Подскажите пожалуйста: 1. Мне надо проверять столбец Price!E<= max(Price!E(предыдущей строки)-B5), начиная с даты в ячейке D13 (либо в ячейке D14, если D14=D13, если пример откроете, поймете почему я так написал). Этому вы меня уже научили))), НО вот не получается разобраться с max. Чтоб проверялся каждый новый возникший максимум, в файле я привел пример. 2. Можно ли как нить выделить ячейку соотвеиствующим цветом (например красным или зеленым в зависимости от результата) без условного форматирования, т.к. у.ф. при большом объеме сильно тормозит работу, и при пркрутке страницы выделение то исчезает, то появляется.
 
При сохранении в 2003 офисе возникли проблемы совместимости, не знаю отразятся ли они на файле, вот скриншот предупреждения http://screencast.com/t/wVm742xwTYE
 
Не очень понятно, что Вам надо, попробуйте объяснить еще раз...
 
ps. Да, и дайте столбцам таблицы на листе PRICE какие нибудь заголовки: дата; время и т.д. - не обязательно, но так удобнее, имхо...
 
Столбика H,I,J я привел в качестве визуального примера с чем мы проверяем столбец E. Чтоб проверялся столбец PRICE!E, допустим начинаем прверять с 31.07.07 10:00 соответствующей ячейке Лист1!D13, если PRICE!E20<=PRICE!E19-Лист1!B5, то истина и пишем дату и время. Если ложь проверяем PRICE!E21<=PRICE!E20-Лист1!B5 и т.д. НО С УСЛОВИЕМ, что (PRICE!E20-Лист1!B5)>(PRICE!E19-Лист1!B5). Если больше не будет, то проверять будем PRICE!E21-Лист1!B5>PRICE!E19-Лист1!B5 и т.д. (т.е. столбец E сравниваем с каждым новым появившимся наибольшим числом). И я спросил можно ли как нить условное форматирорование формулой заменить, чтоб скорость увеличить.
 
щас файл другой кину
 
Щас должны вроде понять, там красным цветом выделена суть.
 
Мне почему то кажется меня никто не понял. Еще немного подкорректировал образец, убрал все лишнее и оставил только 1 вопрос. Грубо говоря мне надо сравнить цифры в столбцах E и I и подставить результат в формулу в ячейку D16 вместо 999999. Я вот не знаю как правильно это описать поэтому создал столбцы H,I,J,K. В них написал как бы порядок происходящего.
 
Please, Help! Неужели никто не знает выход из этой ситуации? Выкладываю еще один пример, на что хватило мозгов за весь день. Красным выделена конечная формула, в рамку выделена проблема.
 
Формула массива:  
=ИНДЕКС(ИНДЕКС(A:A;ПОИСКПОЗ(K1;A:A+B:B;0)):A50000+ИНДЕКС(B:B;ПОИСКПОЗ(K1;A:A+B:B;0)):B50000;ПОИСКПОЗ(1=1;ИНДЕКС(E:E;ПОИСКПОЗ(K1;A:A+B:B;0)-1):E50000<=(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(4;СМЕЩ(ИНДЕКС(E:E;ПОИСКПОЗ(K1;A:A+B:B;0)-1);;;СТРОКА($1:$5000)))-0,3);0)-1)
 
DV, Спасибо огромное!!! Супер! Щас буду разбираться в принципе её рабрты. Функция ПРОСМОТР берет ближайшее меньшее значение, а может есть такая же простая функция, чтоб взять ближайшее большее значение?
 
=ЕСЛИ(ПРОСМОТР(K1;A1:A61+B1:B61)=K1;ПРОСМОТР(K1;A1:A61+B1:B61);ПРОСМОТР(K1;A1:A60+B1:B60;A2:A61+B2:B61))
 
{quote}{login=DV}{date=24.12.2010 03:00}{thema=Re: }{post}Формула массива:  
=ИНДЕКС(ИНДЕКС(A:A;ПОИСКПОЗ(K1;A:A+B:B;0)):A50000+....{/post}{/quote} Впринципе я разобрался как эта формула работает, (сотня таких вот красавиц заменили мне пару тысяч других формул, сильно загруающих работу ЦП) но у меня не получилось сделать еще одну, наподобе, чтоб она результат промежуточных итогов показала вместо даты. Уважаемый DV, помогите пожалуйста!
 
покажите пример
Страницы: 1 2 След.
Читают тему
Наверх