Как сделать формулу, которая, если кто-то заполняет ячейку, вычисляет текущее время. Например, если сотрудник пришел и нужно заполнить отсутствие, формула подставит время, которое он ввел, например, 14:30.
Я уже использую формулу =now(), но она не работает, она обновляется каждый раз, когда мы указываем отсутствие.
решение1
Для этого у вас есть два варианта:
с использованием итеративных вычислений:
- перейти в файл - параметры - формулы
- отметьте галочкой «включить итерационные вычисления»
- установите "максимальное количество итераций" на
1
- Теперь вы можете использовать эту формулу:
=IF(A1="","",IF(B1="",NOW(),B1))
Она вставит текущую дату и время в ячейку B1 после того, как что-либо будет введено в ячейку A1, и не будет обновлять ее позже.
- перейти в файл - параметры - формулы
использование макросов
- нажмите 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.