Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2013, 16:25   #1
NewStudent07
Пользователь
 
Регистрация: 14.04.2013
Сообщений: 27
Вопрос Округление до 9 в большую сторону.

Есть столбец А, в котором есть самые разные цены. Эти цены нужно округлить в большую сторону так чтобы, они заканчивались на 9 (столбец В). Можна ли это как-то автоматизировать и написать макрос.
Всем кто поможет большое спасибо.
NewStudent07 вне форума Ответить с цитированием
Старый 30.05.2013, 16:36   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код:
=INT(A1/10)*10+9.99
Надеюсь мы в разных странах... А то бы не помогал
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 30.05.2013, 21:31   #3
NewStudent07
Пользователь
 
Регистрация: 14.04.2013
Сообщений: 27
По умолчанию

Hugo121, Ваш код не работает коректно.
Может еще есть варианты??
NewStudent07 вне форума Ответить с цитированием
Старый 30.05.2013, 22:58   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Это не код.
P.S. Если не понравилось .99 - может исправить на свой вкус. Просто у нас цены обычно не n.00, а n.99

А, увидел что Вам нужно на другом форуме
Могли и тут толком объяснить...
Ну батенька, иногда полезно и самому головой подумать. Алгоритм выше.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 30.05.2013 в 23:13.
Hugo121 вне форума Ответить с цитированием
Старый 01.06.2013, 16:15   #5
NewStudent07
Пользователь
 
Регистрация: 14.04.2013
Сообщений: 27
По умолчанию

Hugo121, Вы хотя бы тестировали прежде чем что-то писать.
Смысл делить и тут же умножать на 10???

Ваша формула:
INT(A1/10)*10+9.99

Кто-нибудь видит в этом логику???

Пишите "иногда полезно и самому головой подумать"
Смысл тогда в форумах?
Всем кто напишет реальное решение буду очень благодарен.
P.S. А всякую хрень писать не надо!!
NewStudent07 вне форума Ответить с цитированием
Старый 01.06.2013, 16:37   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вот результаты вычислений по формуле Hugo121:
Исходн. Результат
742.05 749.99
678.88 679.99
506.65 509.99
659.40 659.99
798.58 799.99
912.80 919.99
550.08 559.99
640.40 649.99
333.51 339.99
325.82 329.99
544.62 549.99
21.38 29.99
506.32 509.99
486.76 489.99
369.85 369.99
298.34 299.99
707.88 709.99
780.73 789.99
231.41 239.99
15.69 19.99
803.71 809.99
304.26 309.99
337.92 339.99
53.34 59.99
843.58 849.99
591.05 599.99
668.58 669.99
258.81 259.99
15.14 19.99
389.98 389.99
то что вы не смогли использовать предложенное готовое решение - не беда, все не обязаны знать ексель и уметь им пользоваться...
а вот то, что здесь INT(A1/10)*10+9.99 вы не видите логики - это похоже на диагноз... и очень надеюсь, что на нашем форуме нет людей, для которых предложенная Hugo121 формула является полной бессмыслицей
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 01.06.2013, 16:44   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
Смысл делить и тут же умножать на 10???
смысл в том, что после деления используется только целая часть результата.
1. напишите себе на листок 100 любых чисел
2. поделите на 10, возьмите целую часть от результата деления, умножте ее на 10.
3. выполняйте п.2 с каждым след.числом (всего 100 раз)

удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 02.06.2013, 00:11   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Игорь, спасибо
Как оказывается (на другом сайте), студенту нужно немного иначе:
"есть 5,02 нужно получить 5,09; 6,18 - 6,19; 74,54 - 74, 59; 11,19 - 11,19; 150,0 - 150,09 и т.д."
Эта формула естественно не подходит, но алгоритм годится.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 02.06.2013, 01:04   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

и формула почти подходила, надо было только поменять местами / * и прибавлять не 9.99, а 0.09... если понимать логику написанного))
а догадаться что
Цитата:
Округление до 9 в большую сторону
означает округление до 9 сотых, могли только опытные экстрасенсы, а они как раз все в отпуске - лето!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 02.06.2013, 05:06   #10
DV68
Форумчанин
 
Регистрация: 05.08.2009
Сообщений: 465
По умолчанию

Как вариант:
Код:
=ОТБР(A1;1)+0,09
"Все следует делать настолько простым, насколько это возможно, но не проще." Альберт Эйнштейн
DV68 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Деление нацело с округлением в большую сторону NioTo Паскаль, Turbo Pascal, PascalABC.NET 25 11.10.2013 14:14
Округление целочисленной константы в большую сторону Sibedir Общие вопросы Delphi 15 25.02.2013 06:07
Функция округления в большую сторону в c++ Karina89 Помощь студентам 1 23.11.2011 18:02
Округление в большую или меньшую сторону Shokoladniu Microsoft Office Excel 5 15.10.2009 17:37
Задача на большую строку Witaliy Помощь студентам 4 10.02.2009 18:26