Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 След.
RSS
Выборка из одномерного массива значения по условию >=, без сортировки самого массива
 
Задача крайне простая, но я не смог ни ПРОСМОТРом, ни ВПРом, ни ПОИСКПОЗом сделать выборку без сортировки самого массива((Прошу  Вашей помощи...


P.S.В связи с не точной постановкой задачи пришли к не точному решению.....так вот.
Проблема осталась не решена..Заново обозначу тонкости задачи: В массиве А:А имеем числовой ряд разной направленности(сортировать нельзя,т.к в дальнейшем будет привязка к временной оси), необходимо найти в этом массиве первое (ближайшее НЕ по ЗНАЧЕНИЮ аргумента, а по его ПОЗИЦИИ) встречающееся значение, которое будет >= B2...ниже представленные решения, находят ближайший по значению аргумент в массиве...печаль
 
Изменено: voloxa - 4 Мар 2015 12:13:07
 
попробуйте эту
Код
=B2+МИН(ИНДЕКС(ОСТАТ(A1:A69;B2);))
Согласие есть продукт при полном непротивлении сторон.
 
Формула массива (Ctrl+Shift+Enter)
Код
=ИНДЕКС($A$1:$A$9999;ПОИСКПОЗ(МИН(ЕСЛИ($A$1:$A$9999>=B2;$A$1:$A$9999-B2));$A$1:$A$9999-B2;))
Изменено: Казанский - 3 Мар 2015 10:02:11
 
формула массива: {=МИН(ЕСЛИ(($A$1:$A$69)<B2;"";($A$1:$A$69)-B2))+B2}
Изменено: Михаил Лебедев - 3 Мар 2015 10:08:35
 
первый вариант отработал только по первой ячейке..(не совсем понял, как вычисляет)
второй вариант выдаёт #нет данных
 
Код
=ЕСЛИ(B1<>"";МИН(ЕСЛИ($A$1:$A$69>=B1;$A$1:$A$69));"")
ааа тоже кину массивная
Изменено: Сергей - 3 Мар 2015 10:15:32 (запротоколировано в файле)
Лень двигатель прогресса, доказано!!!
 
Спасибо))мир не без добрых людей))в день рождения)))всем спасибо)
 
Цитата
voloxa написал: первый вариант отработал только по первой ячейке..
у меня и на других как-то отработал. Добавил проверку на ошибку
З.Ы. Ну и с Днем Рождения Вас!!! Удачи!
Изменено: Sanja - 3 Мар 2015 10:17:08
Согласие есть продукт при полном непротивлении сторон.
 
Странно..при добавлении проверки выполняет, а без нее только первую строчку...а остальные возвращает значение столбца B
Изменено: voloxa - 4 Мар 2015 12:25:06
 
Спасибо!)
Изменено: voloxa - 4 Мар 2015 12:27:02
 
ЕСЛИ(B1<> "" ;МИН(ЕСЛИ($A$1:$A$69>=B1;$A$1:$A$69)
Ну вообщем 5 баллов!!!)самое простое и действенное)  
Изменено: voloxa - 4 Мар 2015 12:19:08
 
voloxa, свои сообщения можно дополнять.
О чрезмерном цитировании - в Правилах форума
 
В связи с не точной постановкой задачи пришли к не точному решению.....так вот.
Проблема осталась не решена..Заново обозначу тонкости задачи: В массиве А:А имеем числовой ряд разной направленности(сортировать нельзя,т.к в дальнейшем будет привязка к временной оси), необходимо найти в этом массиве первое (ближайшее НЕ по ЗНАЧЕНИЮ аргумента, а по его ПОЗИЦИИ) встречающееся значение, которое будет <= B2...выше представленные решения, находят ближайший по значению аргумент в массиве...печаль
 
если я Вас правильно понял, то по аналогии с моим предложением
Код
=ЕСЛИОШИБКА(ПОИСКПОЗ(B2+МИН(ИНДЕКС(ОСТАТ(A$1:A$69;B2);));$A$1:$A$69;0);"")
Согласие есть продукт при полном непротивлении сторон.
 
Все-таки движок форума должен давать возможность редактировать свои сообщения только в течение какого-то времени, например 1 час.
Иначе ТС может поменять первый пост, и вся тема получается непонятно о чем.
 
Если графически выразить с указанием номеров позиций то выглядеть должно так:
Изменено: voloxa - 4 Мар 2015 12:18:02
 
voloxa, Вас уже предупреждали о чрезмерном цитировании - почему не реагируете и продолжаете бездумно жать на кнопку? Цитируйте ТОЛЬКО то, что действительно необходимо. Вернитесь в свои сообщения и исправьте.
 
Я вот из картинки не понял в массиве поиска верхний диапазон должен начинатся с позиции на котором стоит новое число в столбце B, т.е. он должен смещатся вниз или как
Лень двигатель прогресса, доказано!!!
 
Именно так ..каждый раз массив начинается с координаты нового значения для поиска
 
тю дак уберите закрепление верхнего диапазона и тяните вниз
Изменено: Сергей - 4 Мар 2015 12:28:54 (оно нет)
Лень двигатель прогресса, доказано!!!
 
Не всё так просто,...получается что поиск идёт по значению аргумента....а необходимо чтоб первое по очереди
 
сделайте в файле какие рядом с искомыми должны быть числа из столбца А, так чет не вкуриваю че надо
Лень двигатель прогресса, доказано!!!
 
цветами выделил схему поиска
 
Думаю...эту задачу пора переносить в раздел "Работа";)) цена 300р.
 
Перенести?
 
Переносите)
 
Так?
 
с доп столбцами можно было бы но все рушат перекрестные диапазоны, и да в последнем примере некоректно отражено ближайшее к числу 1212,1 так как указаное рядом 1212,01 меньше его, по условию больше либо равно должно быть 1212,89
Лень двигатель прогресса, доказано!!!
 
Влад, бинго а я чет про массив из номеров столбца совсем забыл
Лень двигатель прогресса, доказано!!!
 
Влад,сделал всё корректно))(Сергей, вы правы, я ошибся не верно обозначил)
Влад,если изменить условия с ">=" на  "<=", для этого необходимо только знак поменять в формуле?скиньте в личку удобный метод расчёта с Вами.
Изменено: voloxa - 4 Мар 2015 14:20:18
Страницы: 1 2 След.
Читают тему (гостей: 2)