Страницы: 1
RSS
Точное округление с девяткой в конце сотых после округления
 
Здравствуйте.
Такой вопрос вот озадачил меня, необходимо прописать формулу для округления наценки в магазине.
Логика такая, что все цены должны заканчиваться на 9 после округления.

Например:
Цена 5,22 -> Наценка -> 30% -> Цена 5,22*1,3 = 6,786 -> Округляем до 6,79
Цена 25,56 -> Наценка -> 30% -> Цена 25,56*1,3 = 33,228 -> Округляем до 33,29 или 33,19

Перепробовал разные варианты, но что-то не получается.
 
Формула округляет до двух знаков после запятой и заменяет последнюю цифру на 9:
=--ЗАМЕНИТЬ(ОКРУГЛ(A1;2);ДЛСТР(ОКРУГЛ(A1;2));1;9)
Изменено: Karataev - 04.01.2017 11:59:46
 
=--((ЛЕВСИМВ(A1;ДЛСТР(A1)-2)&9))
There is no knowledge that is not power
 
[USER=48032]Karataev[/USER, я пробовал эту формулу, но она показывал некорректные данные при значении до 10 грн. Эти символы "--" впереди функции ЗАМЕНИТЬ наверное есть ключом и решают эту проблему?
 
hulk, два минуса переводят числа из формата "текст" в формат "число", чтобы с числами можно было проводить математические вычисления.
 
Karataev, Спасибо, применил. Не работает с ценой 13,92 (результат 18,90, а должен быть 18,09)
 
Я формулу менял в посте #2, возможно Вы используете первую версию, в которой была неточность.
У меня формула из поста #2 возвращает для числа 13,92 число 13,99.
Формула использует число из ячейки "A1" два раза.
Изменено: Karataev - 04.01.2017 12:25:06
 
Цитата
SuperCat написал:
=--((ЛЕВСИМВ(A1;ДЛСТР(A1)-2)&9))
По Вашей формуле прописал =--((ЛЕВСИМВ(ОКРУГЛ(8,52*1,3;2);ДЛСТР(8,52)-1)&9)) - результат 11,90, а должен быть 11,09
 
Karataev, Вы не учитываете наценку 30%. С ней формула выглядит вот так:
=--ЗАМЕНИТЬ(ОКРУГЛ(P2*1,3;2);ДЛСТР(ОКРУГЛ(P2*1,3;2));1;9)
и тогда из цены 13,92 не получается 18,09, а получается 18,90.
 
При умножении 13,92 на 1,3 получается 18,096. Формула округляет до двух знаков после запятой: 18,1. И затем заменяет 1 на 9.
А Вы предлагаете не округлять, а просто отбрасывать лишние цифры справа?
Изменено: Karataev - 04.01.2017 12:40:19
 
вариант
=--(ТЕКСТ(ОКРУГЛВНИЗ(B1;1);"0,0")&9)
 
=ОКРУГЛВНИЗ(P2*1,3;1)+0,09
 
Цитата
hulk написал: ...(результат 18,90, а должен быть 18,09)
Это с какой же стати?! По вашей логике результат 18,90 должен стать 18,89, а не 18,09. Словом, речь о сотых - 0,9=0,89. Или уточняем хотелку... ;)  
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Цитата
Catboyun написал:
=--(ТЕКСТ(ОКРУГЛВНИЗ(B1;1);"0,0")&9)
Супер! Все получилось, гениально и очень просто. Спасибо огромное всем участникам за помощь!
 
hulk, я явно перестарался, смотрите ответ ZVI
 
Цитата
Z написал: Это с какой же стати?!
Там имелось ввиду, что при P2=13.92 математически: 13,92*1,3=18,096 и ожидался результат 18,09
а по предложенной формуле 18,096 сначала округлилось до 1 знака и стало 18.10 и с заменой единички на девятку превратилось в 18,90
Изменено: ZVI - 04.01.2017 13:06:23
 
Catboyun, нет, именно Ваша формула решила все мои "хотелки" :) и делает именно то, что нужно. Перепроверил на всех значениях. Еще раз спасибо всем за участие.
 
Вариант:
Код
=ОКРУГЛ(A1*1,3+0,01;1)-0,01
Страницы: 1
Читают тему
Наверх