Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Округлить в большую сторону. - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин  
Мир MS Excel » Работа и общение » Мозговой штурм » Округлить в большую сторону. (Формулы)
Округлить в большую сторону.
AlexM Дата: Вторник, 03.12.2013, 23:06 | Сообщение № 1
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4490
Репутация: 1115 ±
Замечаний: 0% ±

Excel 2003
Задача округлить число в большую сторону так, чтобы последняя цифра была четной.
Числа любые, целые и с десятичными разрядами.
Пример округления
5 - 6
12 - 12
15 - 16
0 - 0
0,1 - 0,2
1,377 - 1,378
-3,1415 - -3,1414
-17 - -16
и тд.

Есть решение на 54 знака (счет по правилам)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеЗадача округлить число в большую сторону так, чтобы последняя цифра была четной.
Числа любые, целые и с десятичными разрядами.
Пример округления
5 - 6
12 - 12
15 - 16
0 - 0
0,1 - 0,2
1,377 - 1,378
-3,1415 - -3,1414
-17 - -16
и тд.

Есть решение на 54 знака (счет по правилам)

Автор - AlexM
Дата добавления - 03.12.2013 в 23:06
MCH Дата: Вторник, 03.12.2013, 23:24 | Сообщение № 2
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

44, 34 (не по правилам, т.е. с "=")


Сообщение отредактировал MCH - Вторник, 03.12.2013, 23:25
 
Ответить
Сообщение44, 34 (не по правилам, т.е. с "=")

Автор - MCH
Дата добавления - 03.12.2013 в 23:24
AlexM Дата: Вторник, 03.12.2013, 23:36 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4490
Репутация: 1115 ±
Замечаний: 0% ±

Excel 2003
Круто...
А 0,119 - 0,12 получается?



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеКруто...
А 0,119 - 0,12 получается?

Автор - AlexM
Дата добавления - 03.12.2013 в 23:36
MCH Дата: Вторник, 03.12.2013, 23:40 | Сообщение № 4
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

А 0,119 - 0,12 получается?

Да:
0,119 - 0,12
0,121 - 0,122
-0,119 - -0,118
-0,121 - -0,12

Только вот 0,129 округляется до 0,13, вроде как последняя цифра "3" - нечетная, подразумевается что третья цифра после запятой - "0" (четная)


Сообщение отредактировал MCH - Вторник, 03.12.2013, 23:49
 
Ответить
Сообщение
А 0,119 - 0,12 получается?

Да:
0,119 - 0,12
0,121 - 0,122
-0,119 - -0,118
-0,121 - -0,12

Только вот 0,129 округляется до 0,13, вроде как последняя цифра "3" - нечетная, подразумевается что третья цифра после запятой - "0" (четная)

Автор - MCH
Дата добавления - 03.12.2013 в 23:40
AlexM Дата: Понедельник, 09.12.2013, 07:57 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4490
Репутация: 1115 ±
Замечаний: 0% ±

Excel 2003
Только вот 0,129 округляется до 0,13

Будем считать округление до 0,130.
И так сегодня понедельник. Пора открываться. Тема заинтересовала только Михаила. Наверно задача слишком простая.
Формула которая у меня была на момент открытия темы.
Код
=A1+МИН(1;10^(2-ДЛСТР(ОСТАТ(A1;1))))*ОСТАТ(ПРАВБ(A1);2)

Получилось сократить лишь до 51 символа.
Код
=A1+10^МИН(;2-ДЛСТР(ОСТАТ(A1;1)))*ОСТАТ(ПРАВБ(A1);2)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Только вот 0,129 округляется до 0,13

Будем считать округление до 0,130.
И так сегодня понедельник. Пора открываться. Тема заинтересовала только Михаила. Наверно задача слишком простая.
Формула которая у меня была на момент открытия темы.
Код
=A1+МИН(1;10^(2-ДЛСТР(ОСТАТ(A1;1))))*ОСТАТ(ПРАВБ(A1);2)

Получилось сократить лишь до 51 символа.
Код
=A1+10^МИН(;2-ДЛСТР(ОСТАТ(A1;1)))*ОСТАТ(ПРАВБ(A1);2)

Автор - AlexM
Дата добавления - 09.12.2013 в 07:57
Pelena Дата: Понедельник, 09.12.2013, 08:25 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Наверно задача слишком простая

Дело не в этом. Думаю, сейчас, в преддверии Нового года, у всех стало меньше свободного времени для решения таких задачек. Да и Михаил сразу задал слишком высокую планку :)
У меня есть вариант 45 символов

Код
=ОКРВВЕРХ(A1;2/10^МАКС(ДЛСТР(ОСТАТ(A1;1))-2;))


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Наверно задача слишком простая

Дело не в этом. Думаю, сейчас, в преддверии Нового года, у всех стало меньше свободного времени для решения таких задачек. Да и Михаил сразу задал слишком высокую планку :)
У меня есть вариант 45 символов

Код
=ОКРВВЕРХ(A1;2/10^МАКС(ДЛСТР(ОСТАТ(A1;1))-2;))

Автор - Pelena
Дата добавления - 09.12.2013 в 08:25
AlexM Дата: Понедельник, 09.12.2013, 08:28 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4490
Репутация: 1115 ±
Замечаний: 0% ±

Excel 2003
Лена, у этого варианта проблема с отрицательными числами. :(



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеЛена, у этого варианта проблема с отрицательными числами. :(

Автор - AlexM
Дата добавления - 09.12.2013 в 08:28
Pelena Дата: Понедельник, 09.12.2013, 08:30 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Например?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНапример?

Автор - Pelena
Дата добавления - 09.12.2013 в 08:30
AlexM Дата: Понедельник, 09.12.2013, 08:33 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4490
Репутация: 1115 ±
Замечаний: 0% ±

Excel 2003
-1,377 - #ЧИСЛО!
-3,1415 - #ЧИСЛО!
-17 - #ЧИСЛО!
Функция с аргументами 3 и 2
Код
=ОКРВВЕРХ(3;2)
вернет 4
А с -3 и 2
Код
=ОКРВВЕРХ(-3;2)
#ЧИСЛО!



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Понедельник, 09.12.2013, 08:39
 
Ответить
Сообщение-1,377 - #ЧИСЛО!
-3,1415 - #ЧИСЛО!
-17 - #ЧИСЛО!
Функция с аргументами 3 и 2
Код
=ОКРВВЕРХ(3;2)
вернет 4
А с -3 и 2
Код
=ОКРВВЕРХ(-3;2)
#ЧИСЛО!

Автор - AlexM
Дата добавления - 09.12.2013 в 08:33
Pelena Дата: Понедельник, 09.12.2013, 08:41 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
У меня корректно считает


Проверила: действительно, отрицательные считает только в 2010 :(
Попутно выяснила, что и с положительными числами не всё гладко, например, 24,15 неправильно округляет, видимо, из-за погрешности вычисления функции ОСТАТ().
Так что снимаю своё решение с конкурса :)
К сообщению приложен файл: 0301399.png (27.3 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816


Сообщение отредактировал Pelena - Понедельник, 09.12.2013, 08:55
 
Ответить
СообщениеУ меня корректно считает


Проверила: действительно, отрицательные считает только в 2010 :(
Попутно выяснила, что и с положительными числами не всё гладко, например, 24,15 неправильно округляет, видимо, из-за погрешности вычисления функции ОСТАТ().
Так что снимаю своё решение с конкурса :)

Автор - Pelena
Дата добавления - 09.12.2013 в 08:41
AlexM Дата: Понедельник, 09.12.2013, 09:31 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4490
Репутация: 1115 ±
Замечаний: 0% ±

Excel 2003
24,15 неправильно округляет

Хм... У меня то же. :(



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
24,15 неправильно округляет

Хм... У меня то же. :(

Автор - AlexM
Дата добавления - 09.12.2013 в 09:31
MCH Дата: Понедельник, 09.12.2013, 11:14 | Сообщение № 12
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

А у меня с 24,15 все хорошо:
Код
=A1+ABS(A1-ЛЕВБ(A1/2;ДЛСТР(A1))*2)
 
Ответить
СообщениеА у меня с 24,15 все хорошо:
Код
=A1+ABS(A1-ЛЕВБ(A1/2;ДЛСТР(A1))*2)

Автор - MCH
Дата добавления - 09.12.2013 в 11:14
Pelena Дата: Понедельник, 09.12.2013, 11:24 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Изящно, как всегда


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеИзящно, как всегда

Автор - Pelena
Дата добавления - 09.12.2013 в 11:24
MCH Дата: Понедельник, 09.12.2013, 12:03 | Сообщение № 14
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Снимаю свою формулу, т.к. она не совсем корректна, так, например, 10,1 или 10,3 или 17,7 не правильно округлит
Подумаю как ее усовершенствовать

Кстати, у Алексея и Елены эти числа также не правильно округлятются


Сообщение отредактировал MCH - Понедельник, 09.12.2013, 12:07
 
Ответить
СообщениеСнимаю свою формулу, т.к. она не совсем корректна, так, например, 10,1 или 10,3 или 17,7 не правильно округлит
Подумаю как ее усовершенствовать

Кстати, у Алексея и Елены эти числа также не правильно округлятются

Автор - MCH
Дата добавления - 09.12.2013 в 12:03
MCH Дата: Понедельник, 09.12.2013, 12:13 | Сообщение № 15
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

55:
Код
=A1+ABS(A1-ЛЕВБ(A1/2;ДЛСТР(A1/2)-ОСТАТ(ПРАВБ(A1);2))*2)
 
Ответить
Сообщение55:
Код
=A1+ABS(A1-ЛЕВБ(A1/2;ДЛСТР(A1/2)-ОСТАТ(ПРАВБ(A1);2))*2)

Автор - MCH
Дата добавления - 09.12.2013 в 12:13
AlexM Дата: Понедельник, 09.12.2013, 17:38 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4490
Репутация: 1115 ±
Замечаний: 0% ±

Excel 2003
Казалось просто, а сколько сюрпризов выплыло.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеКазалось просто, а сколько сюрпризов выплыло.

Автор - AlexM
Дата добавления - 09.12.2013 в 17:38
MCH Дата: Понедельник, 09.12.2013, 17:44 | Сообщение № 17
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Стандарт IEEE 754 много сюрпризов хранит, а в моем случае еще и алгоритм не совсем корректный был
 
Ответить
СообщениеСтандарт IEEE 754 много сюрпризов хранит, а в моем случае еще и алгоритм не совсем корректный был

Автор - MCH
Дата добавления - 09.12.2013 в 17:44
MCH Дата: Понедельник, 09.12.2013, 17:53 | Сообщение № 18
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Только что наткнулся, функция ОСТАТ() возвращает отрицательное число при положительных исходных данных (число и делитель):
Код
=ОСТАТ(1;0,1)


Сообщение отредактировал MCH - Понедельник, 09.12.2013, 17:54
 
Ответить
СообщениеТолько что наткнулся, функция ОСТАТ() возвращает отрицательное число при положительных исходных данных (число и делитель):
Код
=ОСТАТ(1;0,1)

Автор - MCH
Дата добавления - 09.12.2013 в 17:53
jakim Дата: Среда, 18.12.2013, 16:23 | Сообщение № 19
Группа: Друзья
Ранг: Старожил
Сообщений: 1199
Репутация: 313 ±
Замечаний: 0% ±

Excel 2010
У меня вышла такая формула:

Код
=IFERROR(CEILING(A1/2;10^-(LEN(A1)-SEARCH(",";A1)))*2;CEILING(A1/2;1)*2)

Знаков больше, но считает вроде верно.
 
Ответить
Сообщение
У меня вышла такая формула:

Код
=IFERROR(CEILING(A1/2;10^-(LEN(A1)-SEARCH(",";A1)))*2;CEILING(A1/2;1)*2)

Знаков больше, но считает вроде верно.

Автор - jakim
Дата добавления - 18.12.2013 в 16:23
Russel Дата: Четверг, 19.12.2013, 13:34 | Сообщение № 20
Группа: Друзья
Ранг: Старожил
Сообщений: 1394
Репутация: 320 ±
Замечаний: 0% ±

Excel 2010
44 символа:
Код
=ЗАМЕНИТЬ(H40;ДЛСТР(H40);1;ЧЁТН(ПРАВБ(H40)))

UPD: отрицательные в меньшую сторону округляет.

UPD2:
Код
=ЗАМЕНИТЬ(H49;ДЛСТР(H49);1;НЕЧЁТ(ПРАВБ(H49))+ЗНАК(H49))

Неправильно считает ноль.


QIWI 9173973973

Сообщение отредактировал Russel - Четверг, 19.12.2013, 13:44
 
Ответить
Сообщение44 символа:
Код
=ЗАМЕНИТЬ(H40;ДЛСТР(H40);1;ЧЁТН(ПРАВБ(H40)))

UPD: отрицательные в меньшую сторону округляет.

UPD2:
Код
=ЗАМЕНИТЬ(H49;ДЛСТР(H49);1;НЕЧЁТ(ПРАВБ(H49))+ЗНАК(H49))

Неправильно считает ноль.

Автор - Russel
Дата добавления - 19.12.2013 в 13:34
Мир MS Excel » Работа и общение » Мозговой штурм » Округлить в большую сторону. (Формулы)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!