В работе Майкла есть тонкая, но часто важная разница между временем 24:00 и временем 00:00, но Excel не поддерживает время 24:00. «Полночь» — это 00:00:00 и распознается как принадлежащая только следующему дню. Майкл интересуется, есть ли способ указать время 24:00, то есть «полночь», заканчивающую день, а не начало дня, и работать с этой датой / временем с обычными функциями?

Прежде чем ответить на вопрос, важно понять, что полночь — это время для себя; это просто мгновение, доли доли секунды. При цифровом обозначении времени с помощью секунд 00:00:00 обычно соответствует полуночи, а 24:00:00 — несуществующему времени.

Зачем? Поскольку предыдущая секунда будет отмечена как 23:59:59, и когда вы добавляете еще одну секунду, часы не переходят на 24:00:00, а затем следующая секунда становится 24:00:01. В сутках всего 24 часа, и эти часы пронумерованы от 0 до 23, а не от 1 до 24. Поэтому, когда вы «отметите» 23:59:59, время станет 00:00:00.

Можно предположить, что день на самом деле не начинается до 00:00:01 и заканчивается в 24:00:00, но это не общее мнение среди большинства людей, работающих со временем. Такое ощущение, что, поскольку часы отсчитываются с использованием диапазона, отсчитываемого от нуля, согласованность диктует, что секунды также должны считаться с использованием диапазона с отсчетом от нуля. Как каждый час начинается с нуля секунд, так и день должен.

Понимая, что аргументы могут быть разными (относительно того, как должна быть обозначена полночь в Excel), Microsoft решила сделать все — часы, минуты и секунды — в диапазонах с отсчетом от нуля. Чтобы определить, как хранить дату и время на листе, Microsoft разработала систему числовых серийных номеров. Часть серийного номера слева от десятичной точки представляет количество дней с базовой даты начала (обычно 1 января 1900 г.), а часть справа от десятичной точки представляет собой процент дня, прошедшего с полуночи. Итак, рассмотрим следующий порядковый номер:

26442.636805556

Это соответствует 15:17 23 мая 1972 года. Если время щелкнуло еще на одну секунду (до 15:17:01), тогда часть справа от десятичной точки станет 0,63681713, или 63,681713% после полуночи. Когда часть справа от десятичной точки равна 0 (поэтому серийный номер становится просто 26442), то время составляет 0% после полуночи.

Интересно, что если вы вводите время как 24:00:00, то это то, что отображает Excel — не потому, что он допускает такое время внутри компании, а потому, что предполагает, что вы ввели прошедшее время. Если вместо этого вы вводите дату и время, например 19.05.2020 24:00:00, Excel анализирует их как дату и время, конвертируя в 20.05.2020 12:00:00 AM.

Итак, краткий ответ на первоначальный вопрос Майкла состоит в том, что его посылка технически неверна: полночь — это уникальный переходный момент, который на самом деле не относится ни к дню до, ни к дню после. Однако при учете секунд Microsoft поддерживает диапазон отсчета с отсчетом от нуля, и согласованность диктует, что время 00:00:00 принадлежит новой минуте, новому часу и новому дню. В таком бухгалтерском подходе нет такого времени, как 24:00:00, поэтому оно автоматически анализируется как 00:00:00 на новый день.

Для тех, кто должен соблюдать время предыдущего дня, нормальный способ обойти проблему — просто никогда не вводить 24:00:00. Вместо этого введите 23:59:59 и рассмотрите второе отличие как «потерянное» для всех намерений и целей.

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

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