← Все курсы · Курс Excel · Все руководства

Даты Excel: серийные номера, текст, похожий на дату, и как это исправить

Почему дату можно сортировать, фильтровать и группировать или ничего из этого · Часть Analyst Prep Kit

К , аналитик данных · Опубликовано

К концу этой страницы вы сможете определить реальную дату по тексту, который выглядит как одна за две секунды, преобразовать целый столбец фальшивого типа в реальный, сгруппировать по месяцам без вспомогательного столбца и прочитать две настройки, которые определяют, означает ли 01.05.2026 январь или май. Это около двадцати пяти минут, и все приведенные ниже результаты получены из Эксель.

Вот что нужно сделать прямо сейчас со столбцом даты, который не работает. Помещать =N(A2) рядом с ним. Если вы получили цифру в сорок шесть тысяч, это реальная дата, и ваша проблема в другом. Если вы получите 0, это текст, и ничто, ожидающее дату, никогда с ним не сработает.

Краткая версия: дата в Excel — это обычное число, отсчитывающее дни с начала 1900 года, и формат определяет, что вы увидите. Текста, похожего на дату, вообще нет в этой системе.

Одна цифра, несколько лиц — это идея, на которой держится остальная часть страницы, поэтому она передает картину.

One number, three faces At the left of the picture a single cell holds the number 46027 in large type, and the cell is drawn with a heavy blue outline to mark it as the real content. Three arrows fan out to the right from that cell, each ending at its own smaller cell. The top cell reads 2026-01-05. The middle cell reads 5 Jan 2026. The bottom cell reads Monday. All three are drawn in the same pale style, none of them emphasised over the others, and none of them holds anything the left cell does not already contain. The picture shows that the three displays are three costumes on one value: change the format and the face changes, while the number on the left never moves. 46027 2026-01-05 5 Jan 2026 Monday
В ячейке содержится 46027 и больше ничего. Каждое изображение справа представляет собой одно и то же число в разном числовом формате, поэтому изменение внешнего вида даты никогда не меняет ее сути, и почему дата, которую вы не можете заставить выглядеть правильно, обычно не является датой.
Что вы узнаете
  1. Дата — это число, а вот это число
  2. Двухсекундный тест на текст, выдающий себя за свидание
  3. Три способа конвертировать текстовый столбец в реальные даты
  4. 01.05.2026 и двузначный год
  5. Время – это часть после запятой
  6. Месяц, конец месяца и группировка
  7. 29 февраля, которого не было
  8. Параметр, который сдвигает каждую дату в файле на четыре года.
  9. Полное до и после
  10. Крайние случаи, которые незаметно нарушают сроки
  11. Почему это работает
  12. Использование этого в вашем собственном проекте
  13. Все на одном экране
Каждый результат на этой странице реален. Выполните в Excel таблицу заказов из шестнадцати строк, используемую в этом наборе руководств, который действует с 5 января по 25 мая 2026 года.

1. Дата – это число, а вот это число

Перед пояснением: в ячейке отображается 05.01.2026. Скажите, что, по вашему мнению, на самом деле в нем хранится.

=N(A2)                       46027
=TEXT(A2,"yyyy-mm-dd")  2026-01-05
=TEXT(1,"yyyy-mm-dd")   1900-01-01

В ячейке 46 027 человек. Это отсчет дней от начала системы, где день 1 — это 1 января 1900 года. Каждая дата, которую вы когда-либо вводили в Excel, представляет собой такое же число, и из него вытекает все удобное в датах.

Вычитание работает, потому что это вычитание. Первый и последний заказы в таблице — 5 января и 25 мая, и промежуток между ними не является специальным расчетом дат:

=B17-B2      140

140 дней, прямая арифметика с двумя целыми числами. Сортировка работает по той же причине, как и фильтрация «после 1 марта», а также группировка в сводной таблице. Все это — обработка чисел в шляпе в форме даты, поэтому все, что на самом деле не является числом, молча теряет все эти способности.

2. Двухсекундный тест на текст, выдающий себя за свидание

Текстовая дата и реальная дата могут выглядеть одинаково, и зачастую текстовая дата выглядит одинаково. лучше, потому что оно было набрано человеком в аккуратном формате. Три теста, первый самый дешевый.

Посмотрите на расстановку. По умолчанию Excel выравнивает числа по правому краю, а текст по левому краю, поэтому столбец дат, охватывающий левый край, является предупреждением. Только предупреждение, поскольку любое явное выравнивание отменяет его.

Бегать =N(A2). Он возвращает числовое значение ячейки или 0, если в ней нет числа. Реальная дата возвращает что-то в районе сорока шести тысяч. Текст возвращает 0. Именно его и следует использовать.

Попробуйте сгруппировать его в сводку. Щелкните правой кнопкой мыши дату в сводной таблице, и если Группа выделен серым цветом, столбец является текстовым. Часто это первый симптом, который замечают люди: сводная таблица, которая не будет группироваться по месяцам почти никогда не возникает проблем с шарниром.

Стоит обратить внимание на один нюанс, потому что именно по нему люди приходят к выводу, что с колонкой все в порядке. Excel на лету запросит распознаваемую текстовую дату, когда функция потребует дату:

=YEAR("19 Jan 2026")     2026
=MONTH("banana")       #VALUE!

Таким образом, формула может работать с текстовыми датами и давать правильный ответ, в то время как сортировка, фильтрация, сводная группировка и вычитание незаметно делают неправильные действия в одном и том же столбце. Одна рабочая формула не является доказательством того, что столбец настоящий.

3. Три способа конвертировать текстовый столбец в реальные даты

В порядке возрастания того, с каким беспорядком они справляются.

DATEVALUE, в новом столбце. Принимает текст и возвращает серийный номер, который затем форматируется как дата.

=DATEVALUE("2026-01-19")     formats to  2026-01-19

Быстро и чисто, и он терпит неудачу с #VALUE! обо всем, что он не может прочитать, что является скорее полезной информацией, чем неудобством. Эти неудачи — это строки, на которые человеку нужно обратить внимание.

Текст в столбцы. Выберите столбец, «Данные», «Текст в столбцы», «Далее», «Далее», затем на третьем шаге выберите Дата и выберите порядок написания текста: DMY, MDY, YMD. Заканчивать. Это тот, который обрабатывает столбец, записанный в порядке страны, отличной от вашей, потому что вы явно указываете ему, что означает текст, вместо того, чтобы позволить Excel догадываться.

Восстановите его из частей. Если текст действительно неправильный, вытащите его части и передайте DATE:

=DATE(LEFT(A2,4), MID(A2,6,2), RIGHT(A2,2))

DATE принимает год, месяц и день как три числа, и интерпретировать нечего, поэтому ничто не может быть интерпретировано неправильно. Это больше набора текста, и это единственный из трех, который не может вас удивить.

Что бы вы ни использовали, делайте это в новом столбце рядом с оригиналом, а не поверх него, по той же причине, что и все остальные. пропуск на уборку: если окажется, что преобразование прочитало текст неправильно, вам нужно, чтобы оригинал все еще был там, чтобы доказать это.

4. 01.05.2026 и двузначный год

Перед пояснением: приходит файл с 01.05.2026 в графе дата. Скажи, какой это день.

Вы не можете этого знать, и Excel тоже. В большинстве стран мира это 5 января, а в Соединенных Штатах — 1 мая, и в тексте нет информации о том, какая конвенция его написала. Excel решает эту проблему, используя региональные настройки Окна того, кто открывает файл. На машине, на которой была написана эта страница, ответ был:

=DATEVALUE("05/01/2026")     2026-05-01

1 мая. В том же файле, открытом на компьютере с британским английским языком, указано 5 января из идентичного текста, и нигде нет ничего, что указывало бы на то, что выбор был сделан. Вот почему набор данных может быть выпущен за четыре месяца и полностью внутренне согласован.

Двузначные годы имеют фиксированную границу, а не региональную, и стоит точно знать, где она находится, поскольку она перемещает значение на сто лет, а не на несколько месяцев.

=DATEVALUE("1/1/29")     2029-01-01
=DATEVALUE("1/1/30")     1930-01-01
=DATEVALUE("1/1/31")     1931-01-01

29 лет и ниже — двадцать первый век; 30 и выше становятся двадцатыми. Дата рождения 01.01.30 в файле клиента — 1930 год, что, вероятно, правильно, а дата контракта 1 января 30 года — 1930 год, что, безусловно, неверно. Ничто вас не предупреждает.

Защита для обеих проблем одинакова и скучна: настаивайте на четырехзначном году и однозначном формате в момент создания файла и предпочитайте yyyy-mm-dd, который правильно сортируется как текст и читается везде одинаково. Если вы не можете контролировать источник, используйте «Текст по столбцам» и объявите порядок самостоятельно.

Представьте себе последний файл, который кто-то отправил вам по электронной почте в формате CSV. Если бы день и месяц в нем поменялись местами, выглядело бы какое-нибудь число в вашем отчете настолько неправильным, что вы это заметили бы?

5. Время – это часть после запятой.

Если целое число — это день, то дробь — это часть дня. Половина часа — полдень.

=TEXT(46027.5,  "yyyy-mm-dd hh:mm")     2026-01-05 12:00
=TEXT(46027.75, "yyyy-mm-dd hh:mm")     2026-01-05 18:00

Это объясняет наиболее распространенный сбой фильтра даты. Временная метка 5 января в 09:14 сохраняется как 46027.385, что не равно 46027, поэтому фильтр ровно по 5 января ничего не находит, и при поиске по дате пропускаются все строки. Ценности не ошибочны; это просто не целые дни.

Два исправления, в зависимости от того, что вы хотите. =INT(A2) выбрасывает время и оставляет свидание. Или фильтруйте по диапазону вместо равенства, >= 5 Jan AND < 6 Jan, который следит за временем и при этом показывает весь день.

Это также объясняет, почему продолжительность более 24 часов отображается странно. Ячейка, содержащая 1,5 дня, отформатированная как hh:mm показывает 12:00, потому что весь день перевернулся. Формат [h]:mm, в квадратных скобках, указывает Excel продолжать отсчет после 24 и показывает 36:00.

6. Месяц, конец месяца и группировка.

Если вы знаете, что дата — это число, функции месяца становятся небольшими.

=YEAR(A2)                          2026
=MONTH(A2)                            1
=DAY(A2)                              5
=TEXT(A2,"yyyy-mm")             2026-01
=EOMONTH(A2,0)               2026-01-31    last day of this month
=EOMONTH(A2,-1)+1            2026-01-01    first day of this month
=EDATE(A2,1)                 2026-02-05    same day, next month
=A2+30                       2026-02-04    thirty days later
=TEXT(A2,"dddd")                 Monday
=WEEKDAY(A2,2)                        1    Monday, when 1 means Monday

Два из них заслуживают внимания. EOMONTH(date,-1)+1 это стандартный способ получить первое число месяца, и его стоит запомнить, поскольку в нем нет FOMONTH. И EDATE это не то же самое, что прибавление 30: через месяц после 5 января будет 5 февраля, а через тридцать дней будет 4 февраля, а в конце месяца разница становится больше.

TEXT(A2,"yyyy-mm") — это ключ группировки, к которому я обращаюсь чаще всего, потому что он сортируется правильно, однозначен, а январь 2025 года и январь 2026 года остаются отдельно. Есть одна загвоздка: результатом является текст, поэтому его больше нельзя использовать в арифметике дат. Это нормально для столбца группировки и неправильно для чего-либо еще.

Часто вспомогательный столбец вообще не нужен. Фильтрация по диапазону дат в формуле работает непосредственно с числами:

=SUMIFS(Orders[Revenue],
        Orders[OrderDate], ">="&DATE(2026,3,1),
        Orders[OrderDate], "<="&DATE(2026,3,31))

2585

2585 — это доход за март, и построение границ с DATE вместо того, чтобы печатать ">=1/3/2026" полностью устраняет региональную двусмысленность из четвертого раздела. Если ваш следующий шаг — сравнить этот месяц с предыдущим, арифметика по месяцам одинаково в любом инструменте.

7. 29 февраля, которого не было

Перед объяснением: 1900 год не был високосным, потому что столетние годы являются високосными только тогда, когда они делятся на 400. Скажем, что Excel делает с 29 февраля 1900 года.

=TEXT(59,"yyyy-mm-dd")     1900-02-28
=TEXT(60,"yyyy-mm-dd")     1900-02-29
=TEXT(61,"yyyy-mm-dd")     1900-03-01
=N(DATE(1900,2,29))               60

Сериал 60 — это день, которого не было. Excel принимает его, форматирует и подсчитывает, и вы можете увидеть результат вычитания:

=DATE(1900,3,1) - DATE(1900,2,28)     2
=DATE(2026,3,1) - DATE(2026,2,28)     1

Тот же интервал календарных дней составляет два дня в 1900 году и один день в 2026 году. Это решение совместимости 1980-х годов, которое было сохранено намеренно, чтобы файлы из более ранних программ работы с электронными таблицами продолжали работать, и оно никогда не было исправлено, поскольку его исправление привело бы к перемещению каждой даты в каждой существующей книге.

Насколько вас это должно волновать? Почти не вообще, а ровно один раз. Любые расчеты после 1 марта 1900 года, включая все бизнес-данные, не затрагиваются. Это имеет значение, если вы когда-нибудь вычислите возраст или продолжительность, пересекающую эту дату, или если вы переместите серийные номера между Excel и другой системой, которая правильно определяет 1900 год, и в этом случае даты до марта 1900 года будут отставать на один день. Знание причины занимает десять секунд и экономит час неверия.

8. Настройка, сдвигающая каждую дату в файле на четыре года.

Существует вторая система дат, отсчитывающая с 1904 года вместо 1900 года, и это настройка для каждой книги, а не для каждой ячейки. Его переключение ничего не преобразует; это меняет то, что означают существующие числа. Запустите одну ячейку с серийным номером 46027:

1900 system      2026-01-05
1904 system      2030-01-06
serial 1, under the 1904 system     1904-01-02

Четыре года и день, в каждую дату в книге сразу, без подсказок и выделения. Вы почти никогда не включите это намеренно. Вы можете справиться с этим, копируя даты из книги, в которой они установлены (обычно это старый файл, который начал свою жизнь на Мак), в книгу, в которой этого нет.

Дело в том, что весь столбец устарел примерно на четыре года, и сдвиг одинаков в каждой строке. Если вы это видите, выберите «Файл», «Параметры», «Дополнительно» и найдите поле «Использовать систему дат 1904» в разделе книги, в которой вы находитесь.

Полное до и после

Те же шестнадцать приказов, тот же вопрос: что принес март?

До

OrderDate arrives as text, left aligned, reading 03/09/2026 and so on.

Pivot:      Group is greyed out
Sort:       10/01 lands before 2/01, because the sort is alphabetical
=N(A2):     0
=B17-B2:    #VALUE!

Четыре отдельных симптома, одна причина. На сортировке по алфавиту стоит остановиться, потому что она похожа на сортировку: при сравнении текста «01.10.2026» помещается перед «01.02.2026», что, как подтверждает Excel, является TRUE, поэтому столбец дат, отсортированный в уверенном порядке, может содержать октябрь или февраль.

после

# convert once, in a new column, declaring the order rather than guessing
Data, Text to Columns, step 3, Date: YMD

# then everything is arithmetic
=N(A2)                                46027
=B17-B2                                 140
=TEXT(A2,"yyyy-mm")                 2026-01
=SUMIFS(Revenue, Date,">="&DATE(2026,3,1), Date,"<="&DATE(2026,3,31))     2585
Pivot: Group by Month and Year now available

Претензия, и это повод бежать =N(A2) прежде всего: столбец текстовых дат одновременно теряет сортировку, фильтрацию, вычитание и сводную группировку, и единственным видимым признаком является то, что они располагаются слева от ячейки.

Крайние случаи, которые незаметно нарушают сроки

Шесть, прошедшие первый проход.

Скрытый компонент времени. Даты, полученные из системы, обычно содержат время, поэтому фильтр по одному конкретному дню ничего не возвращает. Тест с =A2-INT(A2); все, что выше нуля, — это время, которое вы не можете увидеть.

Половина колонны преобразована. После частичного импорта некоторые строки представляют собой реальные даты, а некоторые — текст, и каждый агрегат вычисляется только на основе реальных дат. Сравнивать =COUNT(range) с количеством строк, точно так же, как и для чисел, хранящихся в виде текста.

Дата, которая отклоняется на единицу. Один день в каждой строке обычно означает, что серийный номер пересекается между двумя системами с разными отправными точками или во время экспорта был применен часовой пояс. Прежде чем что-либо перестраивать, проверьте, является ли сдвиг постоянным.

Разворот, который сгруппировал январь дважды. Группировка по месяцам без отметки «Годы» объединяет один и тот же месяц из разных лет в одну строку. В многолетних данных отметьте оба варианта.

Финансовый год, который не начинается в январе. MONTH ничего не знает о вашем бухгалтерском календаре. Создайте небольшую календарную таблицу со столбцом периода и сравнивайте даты с ней, а не вставляйте IF, которые никто не сможет проверить.

Даты, которые исправляются автоматически. Excel преобразует данные, которые он считает датами при вводе, и преобразование преобразованного значения необратимо. Это не гипотетически и не редкость; Именно по этой причине часть опубликованных научных дополнительных файлов содержит даты, в которых должны быть названия генов. Объявите столбец как текстовый при импорте, если он содержит коды, которые могут использоваться для дат (то же правило, что и сохранение нулей в почтовом индексе.

Почему это работает

Все на этой странице вытекает из одного дизайнерского решения: Excel хранит дату в виде количества дней и сохраняет представление отдельно от значения. Именно это разделение делает даты арифметическими. Вычитание двух дат работает, потому что они целые числа; сортировка работает, потому что целые числа упорядочиваются; Сводная группировка работает, потому что месяц представляет собой диапазон целых чисел; и ничто из этого не может работать с текстом, потому что строка не имеет арифметики. Зная хранилище, вы можете предсказать каждый симптом на этой странице, а не запоминать его, поэтому первый раздел представляет собой число, а не список функций.

Цена того же разделения заключается в том, что дисплею нельзя доверять как доказательству ценности, и это является источником целого класса ошибок электронных таблиц. Полевые проверки неоднократно выявляли ошибки в подавляющем большинстве проверенных рабочих журналов, причем стойкими из них были те, которые создают правдоподобное представление, а не видимые нарушения (Пауэлл, Бейкер & Лоусон, 2008, Системы поддержки принятия решений, 46(1), 128–138). Текстовая и реальная дата выглядят одинаково; дата заказа в США и дата заказа в Великобритании выглядят одинаково; Контракт 1930 года и контракт 2030 года выглядят одинаково. В каждом случае дисплей делает именно то, для чего он предназначен, и ничего не сообщает вам о значении, отображаемом под ним.

Самый распространенный пример этого класса — привычка Excel преобразовывать записи, которые он распознает как даты. Последующее исследование опубликованных файлов геномики показало, что за годы после того, как о ней впервые было сообщено, проблема скорее выросла, чем уменьшилась: примерно треть изученных статей содержала по крайней мере один дополнительный файл, содержащий имя гена, которое электронная таблица превратила в дату (Абиссория, Сория, случай, & Циманн, 2021, PLOS Вычислительная биология, 17(7), e1008984). Рецензирование не уловило, потому что ловить нечего: преобразованная ячейка выглядит как совершенно обычная дата.

Одно замечание в шпаргалке ниже. Он предназначен для того, чтобы его просматривали и вспоминали, а не перечитывали, поскольку интервальный поиск является одним из немногих методов исследования, который последовательно выдерживает анализ доказательств, в то время как постоянное перечитывание и выделение не выдерживают (Данлоски, Роусон, Марш, Натан & Уиллингем, 2013, Психологическая наука в общественных интересах, 14(1), 4–58).

Использование этого в вашем собственном проекте

Проверка каждого столбца даты в унаследованной книге утомительна, и вы остановитесь на третьем листе. Вместо этого сделайте это по порядку.

  1. Бегать =N(A2) в первой ячейке каждого столбца даты. Сорок шесть тысяч означает настоящий, ноль — текстовый. Тридцать секунд на всю книгу.
  2. сравнивать =COUNT(range) с количеством строк чтобы поймать столбец, который наполовину преобразован.
  3. Преобразование текста в столбцы и объявление порядка, DMY, MDY или YMD, вместо того, чтобы позволить Excel сделать это вывод.
  4. Проверьте скрытое время с =A2-INT(A2) перед написанием любого фильтра, использующего знак равенства.
  5. Постройте границы дат с помощью DATE(y,m,d) в формулах, а не в виде напечатанного текста, поэтому файл ведет себя одинаково на всех машинах.
  6. Спросите у источника yyyy-mm-dd с четырехзначным годом, один раз, вежливо. Это единственное исправление, которое предотвращает повторение проблемы каждый месяц.

Если у вас под рукой есть бумага, один дополнительный эскиз стоит пяти минут. Нарисуйте числовую линию, отметьте на ней 46027 и напишите над отметкой все возможные способы отображения одной и той же точки: дату ISO, длинную дату, название дня, название месяца, номер недели. Затем нарисуйте отдельное поле от линии, неприкрепленное, и напишите в нем текстовую дату. Этот разрыв между линией и блоком составляет всю страницу.

Подробнее об этом и еще что-нибудь подобное. Все инструкции находятся в одном месте на индекс направляющих: Excel, SQL, Python и связанные с ними методы работы.

Все на одном экране

Это лист поиска. Закройте правую колонку, проработайте левую и произнесите каждый ответ вслух, прежде чем проверять его.

вещьЧто он делает
Что такое датаСчет дней. 05.01.2026 — 46027. День 1 — 01.01.1900.
Что такое форматКостюм по этому номеру. Это никогда не меняет значения.
Текстовый тест=N(A2). Число означает настоящее, 0 означает текст.
Другой скажиВыровнено по левому краю, а группа в центре выделена серым цветом.
Конвертировать, просто=DATEVALUE(A2) в новом столбце, а затем отформатируйте его.
Конвертировать, контролироватьДанные, Текст в столбцы, шаг 3, Дата, затем укажите ДМГ, МДГ или ГМД.
Конвертировать, пуленепробиваемый=DATE(year, month, day) из кусочков. Нечего интерпретировать.
05/01/2026Двусмысленный. Решается региональными настройками читалки, молча.
Двузначные годы29 и ниже – 2000-е. 30 и выше – это 1900-е годы.
ВремяФракция. 0,5 — полдень, 0,75 — 18:00.
Фильтр ничего не находитНа значении указано время. Использовать INTили отфильтровать диапазон.
Более 24 часовФорматировать как [h]:mm чтобы оно не перевернулось.
Первое число месяца=EOMONTH(A2,-1)+1. ФОМЕСЯЦА нет.
В тот же день в следующем месяце=EDATE(A2,1), что не то же самое, что прибавление 30.
Группировочный ключ=TEXT(A2,"yyyy-mm"). Сортируется правильно, с разницей по годам, это текст.
Диапазон дат в формулеПостройте границы с DATE(y,m,d), никогда не печатал текст.
1900-02-29Сериал 60, день, которого никогда не было. Сохранено для совместимости.
Система дат 1904 годаНастройка рабочей книги. Сдвигает каждую дату на четыре года и день.
Единственная привычка, которую следует сохранить. Бегать =N(A2) в столбце даты, прежде чем писать что-либо, что от этого зависит. Любая задача с датами стоит того, чтобы разделить ее на это одно число, а проверка стоит меньше, чем первое предположение. Если дата ведет себя не так, как описано на этой странице, существует общая шлейф диагностики на предмет застревания.

Еще одна мысль, и мне бы искренне хотелось услышать ответы других людей. Тот, который стоил мне дня, представлял собой ежемесячный отрывок, в котором день и месяц менялись местами для первых двенадцати дней каждого месяца и больше нигде, поэтому одиннадцать двенадцатых файла были в порядке, а итоговые суммы были лишь немного неправильными. Что свидание сделало с тобой и что в конце концов его выдало?

Ссылки

Даты сортируются в неправильном порядке, и фильтр предлагает текст вместо года.

Excel для аналитиков это 378 страниц, серийные номера, текст, похожий на дату, и функции, которые отличают их друг от друга, а также практические вопросы, которые печатают ответ и причину, по которой он правильный.

Excel для аналитиков, 19 долларов США →
Потренируйтесь на столбце дат, который сопротивляется.

тот Курс Excel дает вам повторы: столбцы, заполненные текстовыми датами, скрытым временем и смешанными региональными порядками, флэш-карточки с фактами о серийных номерах с этой страницы и пробный экзамен, на котором спрашивается, что возвратит фильтр, прежде чем вы его примените. Теперь вы владеете методом; комплект - это практика. Ничего устанавливать, учетная запись не требуется.

Откройте набор Excel →