Страницы: 1
RSS
Сложения и вычитание времени, Калькулятор сложения времени
 
Имеется книга с макросом ввода времени без символов двоеточия. Но Excel не понимает время которое больше 99:00. Если ввести к примеру 100:21 то выдает непонятное число. Помогите внести изменения в макрос чтобы можно было ввести время больше 99:00. Также Excel не понимает если отнимать время меньшее чем большее к примеру  нужно отнять от 5:25 -  7:40 =? и наоборот
 
Измени макрос. Добавь блок;

Код
        With Target
            vVal = Format(.Value, "0000")
            If IsNumeric(vVal) And Len(vVal) = 4 Then
                Application.EnableEvents = False
                .Value = Left(vVal, 2) & ":" & Right(vVal, 2)
                .NumberFormat = "[h]:mm"
            End If

            '''втпвленній блок***************
            If IsNumeric(vVal) And Len(vVal) = 5 Then
                Application.EnableEvents = False
                .Value = Left(vVal, 3) & ":" & Right(vVal, 2)
                .NumberFormat = "[h]:mm"
            End If
            '''**********************

        End With
 
Код
         With Target
            vVal = Format(.Value, "0000")
            If IsNumeric(vVal) Then
                Application.EnableEvents = False
                .NumberFormat = "[h]:mm"
                .Value = Int(vVal / 100) & ":" & Right(vVal, 2)
            End If
        End With
А вот это
Цитата
loginvovchyk пишет: к примеру нужно отнять от 5:25 -7:40 =? и наоборот
непонятно где, и что нужно получить.
Изменено: Михаил С. - 31.08.2014 12:05:48
 
ну например 15:00 минус 16:00 выдает ##### а нужно  -1:00
 
Правильно Вам все выдает. Как Вы сами себе представляете отрицательное время или дату? Вам когда-нибудь назначали встречу "придите в минус полвторого"?
Excel поэтому и отображает решетки, потому что отрицательное число не может быть интерпретировано как время или дата. На мой взгляд это логично. Если потом не надо с этими данными работать(складывать, вычитать и пр.) - то можно воспользоваться функцией ТЕКСТ.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Можно использовать систему дат 1904.
Там есть какие-то нюансы, но в большинстве случаев, ЕМНИП, они не сказываются.
 
Цитата
Михаил С. пишет: Там есть какие-то нюансы
Насколько я знаю, единственный нюанс - это сдвиг всех дат на 4 года. Необходимо для обеспечения совместимости с ПК на MAC ОС.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Помнится, что у майкрософта есть ошибка - в календаре учтен несуществующий день - 29/2/1900, в системе 1904 этого нет.
Всвязи с этим возникают какие-то проблемы. какие - счас не помню, но в большинстве случаев. вроде бы незаметные.
 
Цитата
Михаил С. пишет: Можно использовать систему дат 1904.
Помогло!
 
Добрый день!
У меня похожая проблема.
есть формула , вычитающая время-из времени прилета-вычитает время взлета(например 22:55-20:55 получается 02:00), тем самым считает время полета. А если вылет в 22:00 а прибытие в 02:00, как тогда? 02:00-22:00=###########
Код
=ЕСЛИ(K2-J2>0;K2-J2;"") 
Изменено: viktor595 - 29.10.2014 13:52:36
 
Код
=K2-J2+ЕСЛИ(K2>J2;0;1)

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
viktor595 дык Вы число указывайте, и все считает отлично (длинный формат даты с временем), а ячейка с результатом формат время.
Изменено: alexthegreat - 29.10.2014 13:54:35
 
K2 - время вылета
L2 - время прилета
Код
=L2-K2+(L2<K2)
ну это если полет меньше суток занимает :)
F1 творит чудеса
 
а мож так замутить
Код
=ЕСЛИ(A1<B1;(A1+24)-B1;A1-B1) 
на правильность не проверял
Лень двигатель прогресса, доказано!!!
 
Код
=остат(L2-K2;1)
 
Цитата
Сергей пишет: на правильность не проверял
а зря. должно быть
=ЕСЛИ(A1<B1;(A1+1)-B1;A1-B1)
 
Максим Зеленский, спасибо за показанную оптимизацию.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Максим Зеленский, Михаил С., Сергей, JayBhagavan,спасибо большое! работает прекрасно
Страницы: 1
Наверх