Я пытался использовать функции, чтобы получить сегодняшний день как число в Excel. Например, когда я писал этот вопрос, я должен был получить 18 долларов.
Я пытался использовать:
- функция,
TODAY()
которая возвращает сегодняшнюю дату в формате даты. Day(<date>)
который возвращает номер дня<date>
. То естьDAY(19/05/1984)
должно вернуться 19.
Следовательно, формула
=DAY(TODAY())
должен дать результат, который я хотел.
Однако это возвращение 18.01.1900 (при использовании функции сегодня)
Если я использую
=TODAY()
в ячейке А1, а затем
=DAY(A1)
в другой камере я получаю правильный результат.
Почему ДЕНЬ (СЕГОДНЯ ()) не дает ожидаемого результата?
Исходя из моего опыта математика и программиста-любителя (в Maple, Java и некоторых Python), моя композиция функций выглядит хорошо.
В целом, как Excel обрабатывает состав формул?
microsoft-excel
microsoft-excel-2010
Taladris
источник
источник
=DAY(TODAY())
... Возвращает текущий день месяца (1 - 31) ..Ответы:
Ваша формула верна; способ, которым Excel форматирует ячейки, сбивает с толку. Например, если вы вручную установите значение ячейки,
18
а затем измените формат на дату, он будет отображаться какJanuary 18, 1900
.Если вы измените формат ячейки с вашей формулой на «Общий», он должен отобразить ожидаемый результат.
источник
TODAY()
. Действительно раздражает, когда вы используете их только в функциях декомпозиции и вам приходится переключать форматирование обратно.Я думаю, вы можете быть смущены, думая, что Excel манипулирует значениями даты: это не так.
Как использовать даты и время в Excel
В Excel числа используются для представления дат (возможно, дробное число дней с 0 января 1900 года), но в Excel они сохраняются и обрабатываются как числа. TODAY () - это числовая функция, а DAY () - это функция от числового аргумента до числового результата.
В вашем случае DAY (TODAY ()) правильно вернул 18 (число), которое, я полагаю, вы присвоили ячейке, отформатированной для отображения даты в краткой форме - так что 18 отображается как 18.01.1900. Потому что для Excel, когда 18 интерпретируется как дата, вот что это значит.
Если вы отформатируете эту ячейку в числовом формате, вы увидите ответ, отображаемый так, как вы ожидали, то есть 18.
источник
Нет ничего плохого в вашей формуле. То, что я хотел бы предложить вам, если Формула не дает ожидаемый результат, то она либо дает Ошибка или Неправильный результат. Поскольку вы не упомянули, что в Формуле есть повар!
В то же время я хотел бы показать вам, как можно получить значение DAY в Number в Excel.
Проверьте снимок экрана ниже.
NB:
Дата находится в ячейке E166 . Во втором столбце F есть результаты, а в третьем столбце G показана формула, для которой я использовал.
Вы также можете использовать функцию TEXT, чтобы получить значение дня в виде текстовых данных.
Значение имеет КРАСНЫЙ Цвет имеет пользовательский формат ячейки DD, вы можете применить к ячейке (S), чтобы показать только дневные значения даты (S).
Обратите внимание, я предложил вам все возможности, так как вы упомянули, что в основном вы не являетесь пользователем Excel.
Надеюсь, это поможет вам, не забудьте опубликовать ОШИБКУ, которую дала ваша Формула.
источник
Ваша формула составлена правильно. Неожиданный результат связан с тем, как различные типы данных хранятся в Excel.
Существуют две аналогичные системы, которые Excel использует для хранения дат на основе настройки уровня рабочей книги.
Система дат 1900 года
Система дат 1904 года
Эти выдержки были взяты из: https://support.microsoft.com/en-us/help/214330/differences-between-the-1900-and-the-1904-date-system-in-excel
Серийный номер представляет собой простой текущий счетчик числа дат с 1 января 1900 года, включая фиктивную дату 29 февраля 1900 года. Однако функцию DAY можно дополнительно рассматривать как функцию преобразования типов данных. Он принимает серийный номер даты в качестве входных данных и возвращает целое число в качестве выходных данных. В вашем примере, если мы думаем о 18 как о представлении серийных дат и считаем 18 дней вперед с 1 января 1900 года, мы получим 18 января 1900 года.
Простое исправление в интерфейсе - изменить формат ячейки на что-то другое, например, Number или General . Это скажет Excel показать его вам как целое число, а не пытаться интерпретировать его как серию дат. На заднем плане все хорошо, чтобы пойти. Целочисленный результат может использоваться в любой другой формуле и будет вести себя корректно.
В качестве примера, скажем, мы хотели создать условную формулу, которая сообщит нам, прошло ли 15-е число в текущем месяце. Мы можем сделать это используя:
Было бы гораздо труднее достичь того же результата с использованием серийного номера, поэтому функция DAY, возвращающая целое число, оказывается более полезной в контексте общих случаев использования Excel.
источник