Как сделать формулу, которая, если кто-то заполнит ячейку, вычислит время сейчас. Например, если сотрудник приходит и необходимо заполнить отсутствие, в формуле будет указано время, которое они вводят, например 14:30.

Я уже использовал формулу = now(), но она не работает, она обновляется каждый раз, когда мы помещаем отсутствие.

1 ответ1

1

У вас есть два варианта для достижения этого:

  1. с использованием итерационных вычислений:

    • перейти к файлу - параметры - формулы
      • установите флажок "включить итеративные вычисления"
      • установите "максимальное количество итераций" на 1
    • Теперь вы можете использовать эту формулу:
      =IF(A1="","",IF(B1="",NOW(),B1))
      Это вставит текущую дату и время в B1, как только что-то будет введено в A1, и не будет обновлять его позже.
  2. используя макросы

    • нажмите Alt+F11, чтобы открыть редактор VBA
    • дважды щелкните по названию листа, где вы хотите данные, это откроет модуль кода этого листа
    • Введите этот код:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        Target.Offset(0, 1) = Evaluate("now()")
    End If
End Sub

Этот код будет вводить now() в соответствующую строку столбца B всякий раз, когда ячейка в столбце A заполнена.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .