У меня постоянно возникают проблемы с датами в Excel, я, должно быть, что-то делаю не так, но я не понимаю, что именно.
У меня есть таблица, экспортированная с нашего сервера обмена, которая содержит столбец с датами. Они вышли в американском формате, хотя я в Великобритании.
Рассматриваемая колонка выглядит следующим образом
04/08/2012
04/09/2009
04/01/2010
04/21/2011
04/05/2012
08/30/2009
08/29/2010
08/28/2011
В Excel я выделил столбец и выбрал Format Cells...
. В этом диалоговом окне я выбрал Date
, выбрал English (United States)
в качестве локали и выбрал подходящий формат даты из списка. Я нажимаю ОК и пытаюсь отсортировать данные по этому столбцу.
В диалоговом окне сортировки я выбираю этот столбец, выбираю сортировку по значениям, но порядок дает мне только варианты от А до Я, а не от старейшего к новейшему, как я ожидал.
Это в свою очередь сортирует данные даты по первым двум цифрам.
Я знаю, что могу переформатировать эти данные в ISO, и тогда будет работать сортировка от А до Я, но я не должен был это делать, я явно что-то упускаю. Что это такое?
РЕДАКТИРОВАТЬ: Я испортил награду, но это должно было пойти на ответ @ r0berts , его первое предложение текста в столбцы без разделителя и выбрал «MDY» в качестве типа данных работает. Кроме того, если у вас есть время (то есть 04/21/2015 18:34:22
), вам нужно сначала избавиться от данных времени. Однако после этого метод, предложенный @ r0berts, работает нормально.
Ответы:
Проблема: Excel не хочет распознавать даты как даты, хотя через «Формат ячеек - Число - Пользовательский» вы явно пытаетесь сказать, что это даты через «
mm/dd/yyyy
». Как Вам известно; Когда Excel распознает что-то как дату, оно сохраняет ее как число - например, "41004
", но отображает как дату в соответствии с указанным форматом. Чтобы добавить к путанице, Excel может конвертировать только часть ваших дат, таких как 08/04/2009, но оставить другие, например, 28/07/2009 без преобразования.Решение: шаги 1, а затем 2
1) Выберите столбец даты. Под данными выберите кнопку Text to Columns. На первом экране оставьте переключатель на «с разделителями » и нажмите « Далее» . Снимите флажки с любого разделителя ( пустые поля ; флажки не установлены) и нажмите « Далее» . Под форматом данных столбца выберите « Дата», выберите « MDY» в соседнем поле со списком и нажмите « Готово» . Теперь вы получили значения даты (т. Е. Excel распознал ваши значения как
Date
тип данных), но форматирование, скорее всего, по-прежнему соответствует дате локали, а не той, которуюmm/dd/yyyy
вы хотите.2) Чтобы правильно отобразить желаемый формат даты в США, сначала нужно выбрать столбец (если он не выбран), затем в поле «Формат ячейки - число» выбрать « Дата» и «Язык: английский (США)» . Это даст вам формат как "
m/d/yy
". Затем вы можете выбрать Custom и там вы можете либо набрать "mm/dd/yyyy
", либо выбрать его из списка пользовательских строк.Альтернатива : используйте LibreOffice Calc. После вставки данных из записи Патрика выберите «Специальная вставка» (
Ctrl+Shift+V
) и выберите «Неформатированный текст». Откроется диалоговое окно «Импорт текста». Набор символов остается Unicode, но для языка выберите английский (США); Вам также следует установить флажок «Определять специальные номера». Ваши даты сразу появляются в формате США по умолчанию и сортируются по дате. Если вы хотите использовать специальный формат США MM / DD / YYYY, вам нужно указать это один раз через «формат ячеек» - до или после вставки.Можно сказать, что Excel должен был распознать даты, как только я сказал это через «Формат ячейки», и я не мог согласиться с этим . К сожалению, только через шаг 1 сверху я смог заставить Excel распознавать эти текстовые строки как даты. Очевидно, что если вы делаете это много, это боль в шее, и вы можете составить визуальную основную процедуру, которая сделает это за вас одним нажатием кнопки.
Данные | Текст в столбцы
Обновление ведущего апострофа после вставки: в строке формул видно, что в ячейке, где дата не распознана, есть главный апостроф. Это означает, что в ячейке, отформатированной как число (или дата), есть текстовая строка. Можно сказать, что ведущий апостроф мешает электронной таблице распознать число. Вы должны знать, чтобы искать это в строке формул - потому что электронная таблица просто отображает то, что выглядит как выравнивание по левому краю. Для решения этой проблемы выберите столбец, который вы хотите исправить, выберите в меню
Data | Text to Columns
и нажмите ОК. Иногда вы сможете указать тип данных, но если вы ранее установили формат столбца в соответствии с вашим конкретным типом данных - он вам не понадобится. Команда на самом деле предназначена для разделения текстового столбца на два или более с использованием разделителя, но она также работает как обаяние для этой проблемы. Я протестировал его в Libreoffice , но в Excel тоже есть такой же пункт меню .источник
Выделите все столбцы и перейдите в Locate and Replace и просто замените
"/"
на/
.источник
У меня была точно такая же проблема с датами в Excel. Формат соответствует требованиям для даты в Excel, но без редактирования каждой ячейки он не распознает дату, а когда вы работаете с тысячами строк, редактировать каждую ячейку вручную нецелесообразно. Решение состоит в том, чтобы найти и заменить строку дат, где я заменил дефис дефисом. Excel проходит через столбец, заменяя «like» на «like», но в результате получается, что теперь он пересчитывает даты! ИСПРАВЛЕНО!
источник
Я имел дело с аналогичной проблемой, связанной с тысячами строк, извлеченных из базы данных SAP, и, необъяснимым образом, двумя разными форматами даты в одном и том же столбце даты (большинство из них - наш стандартный «ГГГГ-ММ-ДД», но около 10% - «ММ DD-YYY "). Редактировать 650 строк один раз в месяц вручную было невозможно.
Ни один (ноль ... 0 ... ноль) из указанных выше вариантов не сработал. Да, я попробовал их все. Копирование в текстовый файл или явный экспорт в txt все же каким-то образом никак не повлияло на формат (или его отсутствие) 10-процентных дат, которые просто сидели в своем углу, отказываясь вести себя.
Единственный способ исправить это - вставить пустой столбец справа от неправильного столбца даты и использовать следующую, довольно упрощенную формулу:
(при условии, что ваши данные плохо себя ведут
Column D
)=IF(MID(D2,3,1)="-",DATEVALUE(TEXT(CONCATENATE(RIGHT(D2,4),"-",LEFT(D2,5)),"YYYY-MM-DD")),DATEVALUE(TEXT(D2,"YYYY-MM-DD")))
Затем я мог бы скопировать результаты в моем новом вычисляемом столбце поверх дат неправильного поведения, вставив только «Значения», после чего я мог удалить вычисленный столбец.
источник
Это может не относиться к первоначальному спрашивающему, но может помочь кому-то еще, кто не может отсортировать столбец дат.
Я обнаружил, что Excel не будет распознавать столбец дат, которые были все до 1900 года, настаивая на том, что они были столбцом текста (поскольку 01.01.1900 имеет числовой эквивалент 1, а отрицательные числа, по-видимому, недопустимы). Поэтому я сделал общую замену всех моих дат (которые были в 1800-х годах), чтобы поместить их в 1900-е годы, например 180 -> 190, 181 -> 191 и т. Д. Процесс сортировки тогда работал нормально. Наконец я сделал замену другим способом, например 190 -> 180.
Надеюсь, это поможет другому историку.
источник
Похоже, что Excel не распознает ваши даты как даты, он распознает их текст, поэтому вы можете выбрать параметры сортировки от А до Я. Если вы сделаете это правильно, вы должны получить что-то вроде этого:
Следовательно, важно убедиться, что Excel распознает дату. Самый простой способ сделать это - использовать ярлык CTRL+SHIFT+3.
Вот что я сделал с твоими данными. Я просто скопировал его из вашего поста выше и вставил в Excel. Затем я применил ярлык выше, и я получил необходимую опцию сортировки. Проверьте изображение.
источник
04/08/2012
,04/09/2009
и04/01/2010
в 4-августа-2012 , 4 сентября 2009 года и 4 января 2010 года, соответственно, и рассматривается04/21/2011
как текстовая строка (потому что нет 21-го месяца). Поскольку некоторые из значений являются текстовыми (а некоторые из значений, предположительно, фактически были неправильно истолкованы), форматирование (например, с помощью сочетания клавиш Ctrl + Shift + 3) не принесет никакой пользы.Я подозреваю, что проблема в том, что Excel не может понять формат ... Хотя вы выбираете формат даты, он остается в виде текста.
Вы можете легко проверить это: когда вы пытаетесь обновить формат дат, выберите столбец, щелкните по нему правой кнопкой мыши и выберите формат ячеек (как вы уже это сделали), но выберите опцию 2001-03-14 (в нижней части списка). Затем просмотрите формат ваших ячеек.
Я буду подозревать, что только некоторые из форматов даты обновляются правильно, что указывает на то, что Excel по-прежнему воспринимает это как строку, а не как дату (обратите внимание на различные форматы на снимке экрана ниже)!
Для этого есть обходные пути, но ни один из них не будет автоматизирован просто потому, что вы экспортируете каждый раз. Я бы предложил использовать VBa, где вы можете просто запустить макрос, который конвертирует из формата даты США в Великобританию, но это будет означать копирование и вставку VBa в ваш лист каждый раз.
Кроме того, вы создаете Excel, который читает вновь созданные экспортированные листы Excel (из обмена), а затем выполняете VBa, чтобы обновить формат даты для вас. Я предполагаю, что файл Exported Exchange Excel всегда будет иметь одинаковое имя файла / каталог и приведу рабочий пример:
Итак, создайте новый лист Excel с именем ImportedData.xlsm (Excel включен). Это файл, в который мы будем импортировать экспортированный файл Exchange Excel!
Добавьте этот VBa в файл ImportedData.xlsm
Я также обновил формат даты до yyyy-mm-dd, потому что таким образом, даже если Excel дает вам фильтр сортировки AZ вместо новейших значений, он все равно работает!
Я уверен, что в приведенном выше коде есть ошибки, но я, очевидно, понятия не имею, какой тип данных у вас есть, но я протестировал его с одним столбцом дат (как у вас), и он отлично работает для меня!
Как добавить VBA в MS Office?
источник
https://support.office.com/en-us/article/Convert-dates-stored-as-text-to-dates-8df7663e-98e6-4295-96e4-32a67ec0a680
Простое решение здесь - создайте новый столбец use = datevalue (ячейка), а затем скопируйте формулу в другие строки - несколько секунд, чтобы исправить
источник
Я понял!
В начале и в конце даты есть пробел.
источник
Если Excel упрямо отказывается признать вашу колонку датой, замените ее другой:
Format
date
Paste Special
и вставьте толькоvalues
источник
Я просто скопировал число 1 (один) и умножил его на столбец даты (данные), используя функцию PASTE SPECIAL. Затем он изменяется на Общее форматирование, т. Е. 42102. Затем примените дату к форматированию, и теперь он распознает его как дату.
Надеюсь это поможет
источник
Все вышеперечисленные решения, включая r0berts, оказались безуспешными, но нашли это причудливое решение, которое оказалось самым быстрым решением.
Я пытался отсортировать «даты» в загруженной таблице транзакций по счетам.
Это было загружено через браузер CHROME. Никакое количество манипуляций с «датами» не сделало бы их признанными сортируемыми от старого к новому.
Но затем я загрузил через браузер INTERNET EXPLORER - удивительно - я мог сортировать мгновенно, не касаясь колонки.
Я не могу объяснить, почему разные браузеры влияют на форматирование данных, за исключением того, что это явно было и было очень быстрым решением.
источник
Мое решение в Великобритании - у меня были мои даты с точками в них как это:
Я решил это с помощью следующего:
14-03-12
(важно, чтобы у меня была средняя черта)При сортировке столбца сортируются все даты за год.
источник
Я попробовал различные предложения, но нашел, что самое простое решение для меня было следующим ...
См. Рисунки 1 и 2 для примера ... (обратите внимание - некоторые поля были скрыты намеренно, поскольку они не влияют на пример). Надеюсь, это поможет...
Поле C - смешанный формат, который сводил меня с ума абсолютно. Так данные поступали напрямую из базы данных и не имели лишних пробелов или сумасшедших символов. Например, при отображении его в виде текста 01.01.2016 отображалось значение типа «42504», смешанное с 15.04.2006, которое показывалось как есть.
Поле F - где я получил длину поля C (формула LEN будет длиной 5 из 10 в зависимости от формата даты). Поле общего формата для простоты.
Поле G - получение компонента месяца смешанной даты - на основе результата длины в поле F (5 или 10) я либо получаю месяц из значения даты в поле C, либо получаю символы месяца в строке.
Поле H - получение компонента дня смешанной даты - на основе результата длины в поле F (5 или 10) я либо получаю день из значения даты в поле C, либо получаю символы дня в строке.
Я могу сделать это в течение года, а затем создать дату из трех компонентов, которая является последовательной. В противном случае я могу использовать отдельные значения дня, месяца и года в своем анализе.
Рисунок 1: основная электронная таблица со значениями и именами полей
Изображение 2: электронная таблица, показывающая формулы, соответствующие приведенному выше объяснению
Надеюсь, это поможет.
источник
04/08
являются неоднозначными.04/08
будет интерпретироваться как 8 апреля в некоторых регионах (например, в США) и 4 августа в других (например, в Англии). Но они неоднозначны именно потому, что номер месяца и день месяца разные. … (Продолжение)01/01
в ответе? (3) На самом деле, я не уверен, что вы понимаете проблему или что ваш ответ действительно работает, поскольку на вашем листе есть строки, где номер месяца равен 15; это кажется очевидной ошибкой. И, учитывая, что04/15
это однозначно - это должно означать 15 апреля - не имеет смысла, что ваш метод анализируется01/11
как 1-й день 11-го месяца. … (Продолжение)5/8
,5/08
,5/28
,05/8
и11/8
. Кроме того - забавный факт - ваш ответ потерпит неудачу в даты ≤ 17 мая 1927 года и ≥ 17 октября 2173 года. Не берите в голову проблему Y10K; у нас могут начаться проблемы уже через 154 года! (5) Вы говорите: «Я могу сделать это и в течение года, а затем создать дату из трех последовательных компонентов». Так почему бы и нет, и показать это? … (Продолжение)01/11/2016
или нет11/01/2016
?) И, если вы собираетесь использовать свои собственные данные, было бы неплохо, если бы вы включили даты того же месяца, которые демонстрируют (например), как1/11
и1/21
обрабатываются по-другому. И зачем дублировать данные? Вы потратили 19 строк, используя одни и те же четыре значения несколько раз, распределенные по 23 строкам.Совместное использование небольшого, но гораздо более простого решения на тему ..... Нет необходимости запускать макросы или что-то увлекательное .... простые формулы MS Excel и редактирование.
смешанный снимок Excel Excel:
#VALUE
результатом. - Наконец, из строки, которую мы создали - мы преобразовали их в даты по формуле DATE.#VALUE
были выбраны как IFERROR добавлен в формулу DATE и столбец был отформатирован как требуется (здесь, дд / ммм / гг)* ОБРАТИТЕСЬ К ОБЗОРУ ЛИСТА EXCEL ВЫШЕ (= смешанный снимок Excel Excel) *
источник
V
,W
иX
когда они должны иметь в виду КолонныйB
,C
иD
. … (Продолжение)5/8/2014
или5/08/2014
). И, если вы собираетесь использовать свои собственные данные, было бы неплохо, если бы вы включили даты того же месяца, чтобы продемонстрировать (например), как5/8
и5/28
как обрабатываются по-разному. И зачем дублировать данные? Вы потратили шесть строк, используя одни и те же значения более одного раза.Это происходит постоянно при обмене данными о дате между локалями в Excel. Если у вас есть контроль над программой VBA, которая экспортирует данные, я предлагаю экспортировать число, представляющее дату, а не саму дату. Число однозначно соотносится с одной датой, независимо от форматирования и локали. Например, вместо файла CSV, отображающего 24/09/2010, будет отображаться 40445.
В цикле экспорта, когда вы удерживаете каждую ячейку, если это дата, конвертируйте ее в число с помощью CLng (myDateValue). Это пример того, как мой цикл проходит по всем строкам таблицы и экспортируется в CSV (обратите внимание, я также заменяю запятые в строках тегом, который я удаляю при импорте, но вам это может не понадобиться):
источник
Мне не повезло со всеми вышеперечисленными предложениями - я пришел к очень простому решению, которое работает как шарм. Вставьте данные в Google Sheets, выделите столбец даты, нажмите на формат, затем число и номер еще раз, чтобы изменить их на числовой формат. Затем я копирую и вставляю данные в электронную таблицу Excel, нажимаю на даты и форматирую ячейки до даты. Очень быстрый. Надеюсь это поможет.
источник
Эта проблема сводила меня с ума, и я наткнулся на простое решение. По крайней мере, это сработало для моих данных. Это легко сделать и запомнить. Но я не знаю, почему это работает, но изменение типов, как указано выше, не работает. 1. Выберите столбцы с датами. 2. Найдите год в датах, например, 2015. Выберите Заменить все на тот же год, 2015. 3. Повторите эти действия для каждого года. Это изменяет типы на фактические даты, год за годом.
Это все еще громоздко, если в ваших данных много лет. Быстрее найти и заменить 201 на 201 (заменить 2010 на 2019); заменить 200 на 200 (заменить 2000 на 2009 год); и так далее.
источник
Выберите даты и запустите этот код над ним ..
источник
Я использую Mac.
Перейдите в настройки Excel> Изменить> Параметры даты> Автоматически конвертировать систему дат
Также,
Перейдите в Таблицы и фильтры> Группировать даты при фильтрации.
Проблема, вероятно, началась, когда вы получили файл с другой системой дат, и это испортило вашу функцию даты Excel
источник
Я обычно просто создаю дополнительный столбец для сортировки или суммирования, поэтому используйте
year(a1)&if len(month(a1))=1,),"")&month(a1)&day(a1)
.Это даст
yyyymmdd
результат, который можно отсортировать. Использованиеlen(a1)
Just позволяет добавить дополнительный ноль в течение месяцев 1-9.источник