Страницы: 1
RSS
Округлить число до ближайшего по значению...
 
Кто знает,как округлить число до ближайшего по значению из списка???
 
Есть примерчик
 
Варианты функций:  
ОКРУГЛ()  
ОКРРУГЛВНИЗ()  
ОКРУГЛВВЕРХ()  
ОКРУГЛТ()  
ВПР(...;...;1)  
ИНДЕКС(...;ПОИСКПОЗ(...;..;1);ПОИСКПОЗ(...;...;1))
 
А при чём здесь округление - никаких дробей же нет, вероятно, здесь больше подойдёт другое слово – "поиск". Ну да, неважно. Родилось нечто громоздкое, т.к. без формулы массива.
 
См.
 
Я смотрю здесь помогают/советуют/отвечают почти одни и те же лица... Классно что Вы есть, знатоки могучего и неповторимого Excel!!!!  
Vikttur, клевая формула, привела в восторг!!!  
У Турбо-Ежа тоже не маленькая формула, только округляет до ближайшего верхнего...
 
{quote}{login=Nonick}{date=16.08.2008 12:23}{thema=}{post}У Турбо-Ежа тоже не маленькая формула, только округляет до ближайшего верхнего...{/post}{/quote}  
{quote}{login=Nonick}{date=16.08.2008 12:23}{thema=}{post}У Турбо-Ежа тоже не маленькая формула, только округляет до ближайшего верхнего...{/post}{/quote}  
Перемудрил:) А ведь в каком-то из её вариантов считала правильно. Сделал другую формулу - на треть меньше своей с помощью формулы массива и функций МИН, ЕСЛИ и СЧЁТЕСЛИ по логике:  
- находим минимальную разницу между каждым из чисел (МИН) в виде положительного числа;  
- проверяем: есть ли такие значения в большую сторону (СЧЁТЕСЛИ);  
- ЕСЛИ есть, то прибавляем; нет – вычитаем эту разницу.  
 
Такой нюанс: при двух ближайших допустимых (напр., 333) я округляю до большего, а надо до меньшего?
 
---  
Аналогично, но без формул массива:  
=ЕСЛИ(C2<=$A$2;$A$2;ВПР(C2+ЗНАК(C2-ВПР(C2;$A$2:$A$13;1;1))*(C2-ВПР(C2;$A$2:$A$13;1;1));$A$2:$A$13;1;1))  
---  
ZVI
 
{quote}{login=ZVI}{date=16.08.2008 05:19}{thema=Re: Округлить число до ближайшего по значению...}{post}---  
Аналогично, но без формул массива:  
=ЕСЛИ(C2<=$A$2;$A$2;ВПР(C2+ЗНАК(C2-ВПР(C2;$A$2:$A$13;1;1))*(C2-ВПР(C2;$A$2:$A$13;1;1));$A$2:$A$13;1;1))  
---  
ZVI{/post}{/quote}  
---  
Извиняюсь, недомудрил :) - одно значение не бьется - 421.  
Посмотрю, как исправить позже.  
---  
ZVI
 
Огромное спасибо, все просто отлично!!!
 
До ближайшего большего по не отсортированному эталонному массиву с присвоением максимума эталона значениям превышающих этот максимум.  
=ЕСЛИ(C2="";"";ЕСЛИ(ЕОШИБКА(НАИМЕНЬШИЙ($A$2:$A$13;СЧЁТЕСЛИ($A$2:$A$13;"<"&C2)+1));МАКС($A$2:$A$13);НАИМЕНЬШИЙ($A$2:$A$13;СЧЁТЕСЛИ($A$2:$A$13;"<"&C2)+1)))  
Вероятно, через дополнительные проверки ЕСЛИ(), можно будет проверить до какого эталонного большего-меньшего "ближе" и выбирать уже большее или меньшее, н просто ближайшее значение..
Страницы: 1
Читают тему
Наверх