Кен хотел бы отображать содержимое ячейки в зависимости от времени суток. Например, если ячейка C1 содержит функцию СЕЙЧАС (для времени суток), в другой ячейке ему нужна формула, которая проверяет это время. Если до 17:00, формула отображает содержимое ячейки E1.

Если время после 17:00, формула отображает содержимое ячейки F1. Кен не знает, как рассчитать оператор IF, чтобы он правильно проверял время.

Ключ к выполнению этой задачи — помнить, как Excel хранит время и дату внутри себя. Когда вы используете функцию СЕЙЧАС, она возвращает серийный номер, представляющий текущую дату и время. Все в этом серийном номере слева от десятичной точки — это дата, а все справа — время. Избавьтесь от части даты, прежде чем проводить сравнение, и затем вы сравниваете яблоки с яблоками (так сказать).

Один из способов избавиться от части даты в серийном номере:

=IF(C1-INT(C1)<TIME(17,0,0),E1,F1)

Функция ВРЕМЯ возвращает только временную часть серийного номера даты / времени для тех часов, минут и секунд, которые вы указали в параметрах. Так как вы хотите 17:00, тогда нужно установить только часть часов на 17.

Другой способ удалить часть даты из серийного номера — использовать функцию MOD следующим образом:

=IF(MOD(C1,1)<TIME(17,0,0),E1,F1)

Функция возвращает остаток от деления значения в C1 на 1.

Остаток в данном случае — это все, что находится справа от десятичной точки — время.

Однако, возможно, самый простой способ провести сравнение — полностью пропустить математические вычисления для значения в C1. Вместо этого используйте функцию ЧАС следующим образом:

=IF(HOUR(C1)<17,E1,F1)

Функция ЧАС проверяет порядковый номер даты / времени в ячейке C1 и возвращает значение от 0 до 23, в зависимости от часа дня, представленного этим порядковым номером. Сравните это с 17 (значение 17:00), и ваша формула может отобразить желаемое значение в зависимости от времени суток.

Важно помнить, что функция СЕЙЧАС (на которой основана ваша формула) обновляется только при обновлении рабочего листа. Это означает, что если ваш рабочий лист обновлен в 16:55, а затем не обновлен до 17:10, то в течение этих 15 минут формула вернет значение «до 17:00», потому что она еще не знает его. после 17:00 до перерасчета.

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (12889) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.