Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] округление дат

Ответить
Настройки темы
2010 - [решено] округление дат

Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: xlsx Лист Microsoft Excel (2).xlsx
(9.0 Kb, 14 просмотров)
Все доброго дня.
Прошу мне снова помочь.
есть задача округления времени
если значение времени за 14 минут до начала следующего часа, то округлить к следующему часу+1 минута
(пример: если 22:46, то округлить до 23:01)
если значение в интервале от 00 до 15 мин, то округлить до 01 ( пример, если 01:08 , то округлить до 01:01)
если значение в интервале от 15 до 45 мин, то округлить до 31 (пример: если 20:44, то округлить до 20:31)
только это надо прописать вот в таком логическом выражении
if ? then ? else ? endif

Помогите пожалуйста.

Отправлено: 17:31, 04-11-2015

 

Динохромный


Contributor


Сообщения: 712
Благодарности: 322

Профиль | Отправить PM | Цитировать


golovatov, попробуйте использовать формулу вида:
Код: Выделить весь код
=ВРЕМЯ(ЧАС($B$2);ЕСЛИ(МИНУТЫ($B$2)>45;61;ЕСЛИ(МИНУТЫ($B$2)>15;31;1));0)
(ссылки даны на ячейку $B$2, для того, чтобы формулу можно было заменить - замените на относительную ссылку "B2".
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:46, 04-11-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


a_axe, а можете показать как это будет выглядеть ,используя выражения , о которых я говорил
if время за 14 минут до начала следующего часа,then round к следующему часу+1 минута...
т.е. как будто ввиде макроса прописывается. ну или в стиле SQL. используя этот оператор if

Последний раз редактировалось golovatov, 04-11-2015 в 18:54.


Отправлено: 18:35, 04-11-2015 | #3


Динохромный


Contributor


Сообщения: 712
Благодарности: 322

Профиль | Отправить PM | Цитировать


golovatov, функция округлить тут не очень подходит - даты в экселе исчисляются в сутках, соответственно один час - это 0,04166[6] по абсолютному значению. На VBA код будет выглядеть приблизительно так (округления я не использую):
Код
Код: Выделить весь код
Public Function timeround(time As Date)
Dim min As Date
    min = Minute(time)
    If min > 45 Then min = 61 Else If min > 15 Then min = 31 Else min = 1
    timeround = TimeSerial(Hour(time), min, 0)
    
End Function

или с оператором Select Case:
Код
Код: Выделить весь код
Public Function timeround2(time As Date)
Dim min As Date
min = Minute(time)
Select Case min
    Case Is > 45
        min = 61
    Case Is > 15
        min = 31
    Case Else
        min = 1
End Select

timeround2 = TimeSerial(Hour(time), min, 0)
    
End Function
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:33, 04-11-2015 | #4



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] округление дат

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2007 - Последовательность дат GalinaRiga Microsoft Office (Word, Excel, Outlook и т.д.) 2 28-08-2015 09:14
Прочие БД - Derby и округление. veter48 Программирование и базы данных 1 04-06-2013 06:27
C/C++ - Округление чисел массива до сотых(C++ Builder) KnightMrak Программирование и базы данных 2 25-11-2012 23:58
Разное - Pascal - округление Ragnazar Программирование и базы данных 2 24-09-2012 12:13
Delphi - Сравнение дат Radik_Assasin Программирование и базы данных 5 21-08-2011 13:49




 
Переход