Страницы: 1
RSS
выбор из массива ближайшего большего и меньшего значения
 
какая функция такое сделает  
столбец А 142:213:314:457:...  
дано значение 300  
надо чтоб выбиралось 314 и 213
 
ИНДЕКС(ПОИСКПОЗ); ПРОСМОТР
 
большое спасибо, с первым днем зимы!
 
{quote}{login=MCH}{date=01.12.2010 02:09}{thema=}{post}ИНДЕКС(ПОИСКПОЗ); ПРОСМОТР{/post}{/quote}Что-то у меня такое подозрение, что формула =ИНДЕКС(A2:A22;ПОИСКПОЗ(C2;A1:A21)) не совсем корректна... (если ближайших меньших более 1 одинаковых?)
 
да вроде корректно работает, ищет последнне наименьшее число (в данном случае 17 позиция), даже если их несколько одинаковых, главное соблюсти сортировку по возрастанию
 
Если данные не отсортированы, то можно так:  
ближайшее большее  
=C2+МИН(ИНДЕКС(ОСТАТ(A1:A22;C2);))    
ближайшее меньшее  
=C2+МАКС(ИНДЕКС(ОСТАТ(A1:A22;-C2);))
 
Поторопился, не всегда корректно((
 
Для неотсортированных пока только формулы массива в голову лезут))  
=C2+МИН(ЕСЛИ((A1:A22-C2)>0;A1:A22-C2))  
=C2-МИН(ЕСЛИ((C2-A1:A22)>0;C2-A1:A22))
 
Тоже формулы массива:  
 
=C2+1/МАКС(1/($A$1:$A$22-C2)) - для первого большего  
=C2-1/МАКС(1/(C2-$A$1:$A$22)) - для первого меньшего
Редко но метко ...
 
очень помогла функция ПРОСМОТР в поиске ближайшего меньшего значения в столбце, но если столбцов несколько, для примера - 3 (Модель1, Модель2, Модель3). подскажите как сделать что бы сперва поиск шел горизонтально, останавливался при совпадении наименований моделей и далее в столбце уже выполнял поиск ближайшего меньшего значения. вроде как ГПР ведет поиск по горизонтали, но данная функция требует указать строку.
 
STiM, бедно живете?  
Мы еще беднее, у нас нет даже списка Моделей :)
 
Вопрос в чем-то схожий, никак не могу разобраться :( есть массивчик, к примеру такого типа:  
 
333  
338  
343  
348  
353  
358  
363  
368  
373  
383  
 
надо чтобы выбиралось ближайшее значение к заданному, то есть если к примеру задано 380, то 383, если 375, то 373, то есть не первое ближайшее по спику, а ближайшее математически...
 
=ИНДЕКС(D14:D23;МАКС(ЕСЛИ(МИН(ABS(H13-D14:D23))=ABS(H13-D14:D23);СТРОКА(14:23)-13)))  
 
Как вводить формулу массива:  
После введения формулы в ячейку, ввод завершается нажатием не просто Enter, а Ctrl+Shift+Enter. Формула при этом будет заключена в фигурные скобки - {}.
 
Ага, спасиб, ща попробую. Два маленьких вопросика, Н13 это типа цель, D14:D23 - данные, а вот СТРОКА(14:23)-13 - это чего? И еще, а формулу массива в просто формулу в качестве составляющей можно вставлять?
 
СТРОКА(14:23)-13. Массив:  
{14-13;15-13;16-13...}={1;2;3...}  
 
Если модуль разницы чисел равен минимальной разнице (по модулю), то в массив записывается номер строки. По этому номеру из диапазона извлекается нужное значение.  
 
Формулу массива можно вставить в простую формулу, но простой она уже не будет - станет такой же "массивной".
 
Ага, спасибо vikttur, попробую. У меня вроде заработала такая конструкция:  
{=ИНДЕКС(A7:A63;ПОИСКПОЗ(НАИМЕНЬШИЙ(ABS(G7-A7:A63);1);ABS(G7-A7:A63);0))  
A7:A63 это данные  
G7 - цель
 
НАИМЕНЬШИЙ(...;1)=МИН(...)
 
{quote}{login=vikttur}{date=09.04.2012 05:29}{thema=}{post}НАИМЕНЬШИЙ(...;1)=МИН(...){/post}{/quote}  
 
Как в книжке было - один в один передрал, не хотел рисковать :))
Страницы: 1
Читают тему
Наверх