Разница между датой и временем Excel

Я хотел бы определить текущее время с указанной даты и времени.

Если указанные данные: 19/01/2013 16:44:00
и теперь самое время: 19/01/2013 16:45:00

разница составляет 0 лет 0 месяцев 0 дней 0 часов 1 минута 0 секунд

Это можно сделать легко, просто взяв текущее время и минус предыдущее время и отформатируйте его, но это сложно для того, чтобы хруст данных, поэтому я хочу разбить каждый сегмент даты / времени на свою собственную ячейку

Предположим, что ячейка A1 имеет предыдущее время, а ячейка A2 имеет текущее время

Клетки a5 frough f5 будут содержать 0 лет 0 месяцев 0 дней 0 часов 1 минута 0 секунд

На второй ноте по этому вопросу можно ли заставить =NOW() обновлять каждые x секунд через VBA без взаимодействия?

Вы не можете использовать функцию YEAR чтобы разделить год, потому что это даст 1 год между 31 декабря 2012 года и 1 января 2013 года, когда будет только один день …..

…. Аналогично, у вас могут быть проблемы с MONTH и DAY (например, MONTH всегда возвращает число от 1 до 12, тогда как в этом контексте вы ожидаете только числа от 0 до 11)

Попробуйте DATEDIF для первых 3, затем HOUR , MINUTE , SECOND как предлагает Джастин

Предполагая дату / время начала в A2 и дату и время окончания в B2, попробуйте эти формулы соответственно для Years, Months, Days, Hours, Minutes and Seconds

=DATEDIF(A2,B2-(MOD(A2,1)>MOD(B2,1)),"y")

=DATEDIF(A2,B2-(MOD(A2,1)>MOD(B2,1)),"ym")

=DATEDIF(A2,B2-(MOD(A2,1)>MOD(B2,1)),"md")

=HOUR(B2-A2)

=MINUTE(B2-A2)

=SECOND(B2-A2)

форматировать все ячейки как общие

Вы можете получить некоторые несоответствия из-за переменной длины месяца / года ……

Используйте A5 = Year(A1)-Year(A2) и т. Д.

С помощью

Year(...) Month(...) Day(...) Hour(...) Minute(...) Second(...)

Для получения дополнительной информации о создании листа самообновления на основе таймера просмотрите эти два сообщения и установите таймер для выполнения метода Worksheet.Calculate .

 Private Sub CommandButton1_Click() DoDateA End Sub Sub DoDateA() Dim D1 As Date, D2 As Date, DC As Date, DS As Date Dim CA: CA = Array("", "yyyy", "m", "d", "h", "n", "s", "s") Dim Va%(7), Da(7) As Date, Ci% D1 = Now + Rnd() * 420 ' vary the * factors for range of dates D2 = Now + Rnd() * 156 If D1 > D2 Then [b4] = "Larger" Else [b4] = " smaller" DS = D1 D1 = D2 D2 = DS End If [d4] = D1 [e4] = D2 DC = D2 For Ci = 1 To 6 Va(Ci) = DateDiff(CA(Ci), DC, D1) DC = DateAdd(CA(Ci), Va(Ci), DC) Va(Ci + 1) = DateDiff(CA(Ci + 1), DC, D1) If Va(Ci + 1) < 0 Then ' added too much Va(Ci) = Va(Ci) - 1 DC = DateAdd(CA(Ci), -1, DC) Cells(9, Ci + 3) = Va(Ci + 1) Cells(8, Ci + 3) = Format(DC, "yyyy:mm:dd hh:mm:ss") End If Da(Ci) = DC Cells(5, Ci + 3) = CA(Ci) Cells(6, Ci + 3) = Va(Ci) Cells(7, Ci + 3) = Format(Da(Ci), "yyyy:mm:dd hh:mm:ss") Cells(10, Ci + 3) = DateDiff(CA(Ci), D2, D1) Next Ci End Sub 
  • JXL решает проблему #VALUE
  • Как найти среднее значение годового оклада с использованием месячной зарплаты в Excel?
  • Excel: Как объявить переменные в одной ячейке и определить их в другом?
  • excel: сумма валюты в двух столбцах
  • Как сделать возврат ячейки из функции индекса
  • Как заменить кавычки в Excel формулой SUBSTITUTE?
  • Используйте строковое значение из ячейки для доступа к листу с тем же именем
  • Excel - работа с текстом на нескольких листах
  • Извлечь слова из строки с разделителями в Excel?
  • Я хочу сравнить два списка в разных листах в Excel, чтобы найти любые дубликаты
  • Фильтрация элементов на основе другого значения столбца с результатом в одной ячейке
  • Давайте будем гением компьютера.