Excel переводит форматы в дату

Excel для Microsoft 365 Excel для Интернета Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Еще…Меньше

Microsoft Excel предварительно программируется, чтобы упростить ввод дат. Например, 12/2 изменяется на 2-дек. Это очень неприятно, если вы вводите что-то, что не хотите менять на дату. К сожалению, отключить эту возможность не получится. Однако существует несколько способов обойти это.

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

Если нужно ввести всего несколько чисел, можно сделать так, чтобы Excel не превнося их в даты, введите:

  • Пробел перед вводом числа. После нажатия ввод пробел останется в ячейке. (См. заметки)

  • Апостроф (‘) перед вводом числа, например ’11-53 или ‘1/47. Апостроф не отображается в ячейке после нажатия ввода.

  • Нуль и пробел перед вводом дроби, например 1/2 или 3/4, чтобы они не менялись, например, на 2-янв или 4-мар. Введите 0 0 1/2 или 0 3/4. Ноль не остается в ячейке после нажатия ввод, и ячейка становится типом дробного числа.

  1. Выйдите из ячеек, в которые нужно ввести числа.

  2. Нажмите клавиши CTRL+1 (1 в строке чисел над клавишами QWERTY), чтобы открыть формат ячеек.

  3. Выберите тексти нажмите кнопку ОК.

  1. Выберите ячейки, в которые необходимо ввести числа.

  2. Щелкните Главная > Числовой формат > Текст.

Примечания: 

  • Рекомендуется использовать апостроф вместо пробела для ввода данных, если вы планируете использовать функции подменю для данных. Такие функции, как ПОИСКПОЗ и ВПР, не учитывают апострофы при вычислении результатов.

  • Если число в ячейке выровнено по левому краю, обычно это означает, что оно не отформатировано как число.

  • При введении в ячейку числа с буквой «е», например 1e9, оно автоматически преобразуется в научное число: 1,00E+09. Чтобы избежать этого, введите перед числом апостроф: ‘1e9

  • В зависимости от введенного числа в левом верхнем углу ячейки может появиться маленький зеленый треугольник, указывающий на то, что число хранится как текст ,что для Excel является ошибкой. Не обращайте внимание на треугольник или щелкните его. Слева появится поле. Щелкните поле, а затем выберитеигнорировать ошибку , из-за чего треугольник будет отопуститься.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Нужна дополнительная помощь?

Исправление чисел, превратившихся в даты

При импорте в Excel данных из внешних программ, иногда возникает весьма неприятная проблема — дробные числа превращаются в даты:

Испорченные данные

Так обычно происходит, если региональные настройки внешней программы не совпадают с региональными настройками Windows и Excel. Например, вы загружаете данные с американского сайта или европейской учётной системы (где между целой и дробной частью — точка), а в Excel у вас российские настройки (где между целой и дробной частью — запятая, а точка используется как разделитель в дате).

При импорте Excel, как положено, пытается распознать тип входных данных и следует простой логике — если что-то содержит точку (т.е. российский разделитель дат) и похоже на дату — оно будет конвертировано в дату. Всё, что на дату не похоже — останется текстом.

Давайте рассмотрим все возможные сценарии на примере испорченных данных на картинке выше:

  • В ячейке A1 исходное число 153.4182 осталось текстом, т.к. на дату совсем не похоже (не бывает 153-го месяца)
  • В ячейке A2 число 5.1067 тоже осталось текстом, т.к. в Excel не может быть даты мая 1067 года — самая ранняя дата, с которой может работать Excel — 1 января 1900 г.
  • А вот в ячейке А3 изначально было число 5.1987, которое на дату как раз очень похоже, поэтому Excel превратил его в 1 мая 1987, услужливо добавив единичку в качестве дня:

    Неправильная дата

  • То же самое случилось и в ячейке А4, где изначально было число 12.6923. Причем 6923-й год Excel тут нисколько не смутил — для него главное, чтобы дата была не раньше 1900 года. Так что добро пожаловать в далекое будущее:

    Еще одна неправильная дата

  • Единственное, что распознаётся корректно — это числа без дробной части (число 1000 в ячейке А6). И на том спасибо :)

Вот такие варианты. И если текстовые числа ещё можно вылечить банальной заменой точки на запятую, то с числами превратившимися в даты такой номер уже не пройдет. А попытка поменять их формат на числовой выведет нам уже не исходные значения, а внутренние коды дат Excel — количество дней от 01.01.1900 до текущей даты:

Неправильное число после изменения формата

Лечится вся эта история тремя принципиально разными способами.

Способ 1. Заранее в настройках

Если данные ещё не загружены, то можно заранее установить точку в качестве разделителя целой и дробной части через Файл — Параметры — Дополнительно (File — Options — Advanced):

Настройка разделителей в окне параметров Excel

Снимаем флажок Использовать системные разделители (Use system separators) и вводим точку в поле Разделитель целой и дробной части (Decimal separator).

После этого можно смело импортировать данные — проблем не будет.

Способ 2. Формулой

Если данные уже загружены, то для получения исходных чисел из поврежденной дата-тексто-числовой каши можно использовать простую формулу:

Формула исправления чисел из дат

=—ЕСЛИ(ЯЧЕЙКА(«формат»;A1)=»G»; ПОДСТАВИТЬ(A1;».»;»,»); ТЕКСТ(A1;»М,ГГГГ»))

В английской версии это будет:

=—IF(CELL(«format«;A1)=»G»; SUBSTITUTE(A1;».»;»,»); TEXT(A1;»M,YYYY«))

Логика здесь простая:

  • Функция ЯЧЕЙКА (CELL) определяет числовой формат исходной ячейки и выдаёт в качестве результата «G» для текста/чисел или «D3» для дат.
  • Если в исходной ячейке текст, то выполняем замену точки на запятую с помощью функции ПОДСТАВИТЬ (SUBSTITUTE).
  • Если в исходной ячейке дата, то выводим её в формате «номер месяца — запятая — номер года» с помощью функции ТЕКСТ (TEXT).
  • Чтобы преобразовать получившееся текстовое значение в полноценное число — выполняем бессмысленную математическую операцию — добавляем два знака минус перед формулой, имитируя двойное умножение на -1.

Способ 3. Макросом

Если подобную процедуру лечения испорченных чисел приходится выполнять часто, то имеет смысл автоматизировать процесс макросом. Для этого жмём сочетание клавиш Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer), вставляем в нашу книгу новый пустой модуль через меню Insert — Module и копируем туда такой код:

Sub Fix_Numbers_From_Dates()
    Dim num As Double, cell As Range

    For Each cell In Selection
        If Not IsEmpty(cell) Then
            If cell.NumberFormat = "General" Then
                num = CDbl(Replace(cell, ".", ","))
            Else
                num = CDbl(Format(cell, "m,yyyy"))
            End If
            cell.Clear
            cell.Value = num
        End If
    Next cell
End Sub

Останется выделить проблемные ячейки и запустить созданный макрос сочетанием клавиш Alt+F8 или через команду Макросы на вкладке Разработчик (Developer — Macros). Все испорченные числа будут немедленно исправлены.

Ссылки по теме

  • Как Excel на самом деле работает с датами и временем
  • Замена текста функцией ПОДСТАВИТЬ
  • Функция ВПР и числа-как-текст

Содержание

  • Решение проблемы отображения числа как даты
    • Способ 1: контекстное меню
    • Способ 2: изменение форматирования на ленте
  • Вопросы и ответы

Число отображается как дата в Microsoft Excel

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

Решение проблемы отображения числа как даты

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

Способ 1: контекстное меню

Большинство пользователей для решения данной задачи используют контекстное меню.

  1. Кликаем правой кнопкой мыши по диапазону, в котором нужно сменить формат. В контекстном меню, которое появится после этих действий, выбираем пункт «Формат ячеек…».
  2. Переход в формат ячеек в Microsoft Excel

  3. Открывается окно форматирования. Переходим во вкладку «Число», если оно вдруг было открыто в другой вкладке. Нам нужно переключить параметр «Числовые форматы» со значения «Дата» на нужное пользователю. Чаще всего это значения «Общий», «Числовой», «Денежный», «Текстовый», но могут быть и другие. Тут все зависит от конкретной ситуации и предназначения вводимых данных. После того, как переключение параметра выполнено жмем на кнопку «OK».

Изменение формата ячеек в Microsoft Excel

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

Способ 2: изменение форматирования на ленте

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

  1. Выделяем ячейку или диапазон с форматом даты.
  2. Выделение диапазона в Microsoft Excel

  3. Находясь во вкладке «Главная» в блоке инструментов «Число» открываем специальное поле форматирования. В нём представлены самые популярные форматы. Выбираем тот, который наиболее подходит для конкретных данных.
  4. Смена формата в Microsoft Excel

  5. Если среди представленного перечня нужный вариант не был найден, то жмите на пункт «Другие числовые форматы…» в этом же списке.
  6. Переход к другим форматам в Microsoft Excel

  7. Открывается точно такое же окно настроек форматирования, как и в предыдущем способе. В нём расположен более широкий перечень возможного изменения данных в ячейке. Соответственно, и дальнейшие действия тоже будут точно такими же, как и при первом варианте решения проблемы. Выбираем нужный пункт и жмем на кнопку «OK».

Окно формата ячеек в Microsoft Excel

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

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

Lumpics.ru

Еще статьи по данной теме:

Помогла ли Вам статья?

Skip to content

Как преобразовать текст в дату в Excel или извлечь ее из сложной фразы?

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

Поскольку Excel — не единственное приложение, которое вы используете, иногда вы работаете с данными, импортированными из файла .csv или другого внешнего источника (1С, например). Когда это произойдет, скорее всего, даты будут вставлены в вашу таблицу в виде текстовых записей. Хотя они внешне выглядят как даты, Excel не распознает их как таковые.

И вот о чём мы поговорим:

  • Как отличить обычные даты Excel от «текстовых дат»
  • Форматирование в дату
  • Функция ДАТАЗНАЧ
  • Функция ЗНАЧЕН
  • Как математические операции преобразуют текст в дату
  • Как обойти нестандартные разделители
  • Как можно использовать мастер преобразования текста в столбцы
  • Как преобразовать текст в дату при помощи формул
  • Быстрая конвертация при помощи Специальной вставки
  • Исправление записей с двузначными годами
  • Как преобразовать 8-значное число в дату
  • Простой способ преобразования текста в дату без формул

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

Как отличить обычные даты Excel от «текстовых дат»

Импортированные данные (или данные, введенные неправильно) могут выглядеть как обычные даты Excel, но они не ведут себя так, как выглядят. Microsoft Excel обрабатывает такие записи как текст. Поэтому вы не сможете правильно отсортировать таблицу в хронологическом порядке, а также использовать эти «неправильные даты» в формулах, сводных таблицах, диаграммах или любом другом инструменте Excel, который работает с временем.

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

Даты Текстовые значения

• По умолчанию выравнивание по правому краю.
• Можно выбрать различные форматы даты и изменить вид.
• Если выбрано несколько дат, в строке состояния отображается «Среднее», «Количество» и «Сумма».

· • По умолчанию выравнивание по левому краю.
• По умолчанию установлен формат «Общий». При изменении формата вид не меняется.
• Если выбраны несколько ячеек, строка состояния показывает только «Количество».
• В строке формул может быть виден начальный апостроф.

Их можно легко распознать, немного расширив столбцы, выделив один из них, вы­брав команду Формат ► Ячейки ► Выравнивание (Format ► Cells ► Alignment) и для па­раметра По горизонтали (Horizontal) выбрав значение Общий (General) (это вид ячеек по умолчанию). Щелкните кнопку ОК и внимательно просмотрите на таблицу.

Если какие-либо значения не выровнены по правому краю, значит Excel не считает их датами.

Как можно использовать форматирование.

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

Как вы, наверное, знаете, Excel хранит дату и время как порядковые номера дней, и только форматирование ячейки заставляет число отображаться в виде день-месяц-год. Например, 1 января 1900 года сохраняется как номер 1, 2 января 1900 года сохраняется как 2, а 1 января 2015 года сохраняется как 42005. Дополнительные сведения о том, как Excel сохраняет дату и время, см. в статье Форматирование дат.

При вычислении дат в Excel результатом, возвращаемым различными функциями, часто является число, обозначающее дату. Например, если  СЕГОДНЯ()+10 возвращает вместо дня, который наступает через 10 после сегодняшнего,  число вроде 44294, это не означает, что формула неверна. Просто формат ячейки установлен на Общий или Текст, тогда как это должно быть Дата.

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

Чтобы применить нестандартный формат, отличный от формата по умолчанию, выберите ячейки с такими числами и нажмите комбинацию клавиш Ctrl + 1, чтобы открыть диалоговое окно «Формат ячеек». На вкладке «Число» выберите «Дата», укажите нужный формат даты в разделе «Тип» и нажмите «ОК».

Если вам нужно что-то более сложное, чем стандартные форматы даты, ознакомьтесь с информацией о том, как создать собственный формат даты в Excel.

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

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

Функция Excel ДАТАЗНАЧ — изменить текст на дату

Функция ДАТАЗНАЧ (DATEVALUE в английской версии) переделает «дату-как текст» в порядковый номер дня, который Excel распознает как дату.

Синтаксис ДАТАЗНАЧ очень прост:

=ДАТАЗНАЧ(дата_как_текст)

Самое простое применение этой функции  =ДАТАЗНАЧ(A1), где A1 — это ячейка с датой, хранящейся в виде символьной строки.

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

На скриншоте представлено несколько формул ДАТАЗНАЧ в действии:

использование ДАТАЗНАЧ

На первый взгляд, результат работы может выглядеть для вас довольно неожиданным. Вы его видите на скриншоте в колонке С. Но пусть это вас не смущает: нужно просто применить нужное форматирование. Как видите, результат работы формулы – это порядковый номер дня начиная с 1900 года (столбец С). И если мы к нему применим правильный формат, то есть укажем программе, что это на самом деле не число, а день, то сразу же получим приемлемый результат (колонка D).

Итак, в столбце D показан результат из С, только уже как дата.

Как вы, наверное, знаете, Excel хранит датировки и время как порядковые номера, и только форматирование ячейки заставляет число отображаться в виде даты. В частности, 1 января 1900 года хранится как число 1, а 2 января 1900 года хранится как 2. Соответственно, 8 марта 2020 года хранится как 43898. Чтобы превратить такой серийный номер в дату, все, что вам нужно сделать — это изменить формат ячейки.

Для этого выберите клетку или диапазон ячеек с числами, которые вы хотите представить как даты, и нажмите комбинацию клавиш Ctrl + 1, чтобы открыть диалоговое окно «Формат ячеек». На вкладке «Числовые форматы» в пункте «Дата», выберите подходящий для вас внешний вид в разделе «Тип» и нажмите кнопку «ОК».

как установить нужный формат в ячейке

Обратите также внимание, что не с любым текстом можно провести подобную операцию. Если Эксель не может с ним справиться, то возвращает ошибку #ЗНАЧ! (см. метку 3 на рисунке выше)

Кроме того, если по какой-то причине у вас вместо точек использованы запятые, то при помощи функции ПОДСТАВИТЬ сразу замените их на точки – и всё будет в порядке.

Функция ДАТАЗНАЧ — что нужно запомнить?

При конвертации текстовой строки в дату имейте в виду, что:

  • Информация о времени в текстовых значениях игнорируется, как вы можете видеть в строках 2 и 6 на рисунке выше (1). Чтобы превратить такие значения, содержащие даты и время, используйте функцию ЗНАЧЕН.
  • Если в «текстовой дате» пропущен год, ДАТАЗНАЧ подставит текущий год из системного времени вашего компьютера, как показано в строке 3 выше (2).
  • Поскольку Microsoft Excel начинает свой отсчет времени только с 1 января 1900 года, использование ДАТАЗНАЧ с более ранним возрастом приведет к ошибке #ЗНАЧ!.
  • Любое значение, связанное со временем, хранится в Excel как число. Но ДАТАЗНАЧ не может превратить числовое значение в показатель времени и не может обработать текст, который выглядит как число. Для этого вам нужно будет использовать функцию ЗНАЧЕН. И это именно то, что мы собираемся обсудить далее.

Функция ЗНАЧЕН – как конвертировать текст в дату.

По сравнению с ДАТАЗНАЧ, функция ЗНАЧЕН более универсальна. Она может конвертировать любую строку, которая выглядит как дата или число, в настоящее число, которое затем вы можете легко вывести как дату.

Синтаксис здесь следующий:

=ЗНАЧЕН(текст)

Где текст – это строка или ссылка на ячейку, содержащую символы, которые вы хотите превратить в число.

Функция ЗНАЧЕН() может обрабатывать как дату, так и время. Последнее преобразуется в десятичную часть числа, как вы можете видеть в строке 11 на следующем скриншоте:

Как видите, результаты те же, что и в примере выше. Только ещё и время определено и обработано правильно.

Однако, к сожалению, такие данные, пригодные для обработки функцией ЗНАЧЕН(), встречаются на практике не слишком часто. Разработчики различного программного обеспечения стремятся проявить фантазию, записывая в свои отчеты дату и время операции. И когда эти отчеты мы хотим обработать в Excel, возникает множество проблем.

Остановимся на наиболее типичных из них и попробуем показать пути решения.

Математические операции для преобразования текста в дату

Помимо использования функций Excel, о которых мы говорили чуть выше, вы можете выполнить простую математическую операцию, чтобы заставить программу выполнить реорганизацию строки в дату. Обязательное условие: операция не должна изменять ее значение (порядковый номер дня). Звучит немного сложно? Следующие примеры помогут разобраться!

Предполагая, что ваши данные находятся в ячейке A1, вы можете использовать любую из следующих формул, а затем применить формат даты к ячейке:

  • Сложение: =A1 + 0
  • Умножение: =A1 * 1
  • Деление: =A1 / 1
  • Двойное отрицание: =—A1

Как вы можете убедиться, математические операции могут помочь с датами (строки 3,4.,5,7), временем (строки 2 и 6), а также числами, отформатированными как текст (строка 8). 

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

Как обойти нестандартные разделители

Если запись содержит какой-либо разделитель, отличный от косой черты (/) или тире (-), функции Excel не смогут распознать их как даты и вернут ошибку #ЗНАЧ!. Чаще всего такие «неправильные» разделители – это пробел и запятая.

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

  • Выберите все ячейки, которые вы хотите превратить в даты.
  • Нажмите Ctrl + H, чтобы открыть диалоговое окно «Найти и заменить».
  • Введите свой пользовательский разделитель (запятую, к примеру) в поле Найти и косую черту в Заменить.
  • Нажмите Заменить все.

поиск и замена

Теперь у ДАТАЗНАЧ или ЗНАЧЕН должно быть проблем с конвертацией текстовых строк в даты. Таким же образом вы можете исправить записи, содержащие любой другой разделитель, например, пробел или обратную косую черту.

Если вы предпочитаете решение на основе формул, вы можете использовать функцию ПОДСТАВИТЬ  (SUBSTITUTE в английской версии), как это мы делали на одном из скриншотов ранее:  

=ДАТАЗНАЧ(ПОДСТАВИТЬ(A6;»,»;».»))

И текстовые строки преобразуются в даты, все при помощи одной формулы.

Как видите, функции ДАТАЗНАЧ или ЗНАЧЕН довольно мощные, но они, к сожалению, имеют свои ограничения. Например, если вы пытаетесь работать со сложными конструкциями, такими как четверг, 01 января 2021 г., ни одна из них не сможет помочь. 

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

Мастер преобразования текста в столбцы — не требующий формул способ преобразования текста в дату.

Вам пригодится достаточно древний инструмент Excel под названием «Текст в столбцы». Он умеет работать как с простыми текстовыми датами, так и с текстовыми строками из нескольких частей.

Пример 1. Преобразование простых текстовых строк в даты.

В этом примере мы будем превращать текстовые строки, например 01 01 2015 (день, месяц и год разделены пробелами), в даты.

  1. На рабочем листе выберите столбец, содержимое которого вы хотите конвертировать.
  2. Перейдите на вкладку «Данные», и нажмите «Текст по столбцам».

инструмент "текст по столбцам"

  1. На шаге 1 мастера преобразования текста в столбцы выберите «С разделителями» и нажмите «Далее».
  2. На шаге 2 мастера снимите флажки со всех разделителей и нажмите Далее.
  3. На последнем шаге выберите «Дата» в разделе «Формат данных столбца», укажите в выпадающем списке видсоответствующий вашим данным.  Нажмите «Готово».

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

Вы можете изменить представление результата обычным способом через диалог Формат ячеек.

Заметка. Для правильной работы мастера «Текст по столбцам» все записи должны быть единообразными. Например, если некоторые из них выглядят как день / месяц / год , а другие — месяц / день / год , вы получите неверные результаты.

Пример 2. Преобразование сложных текстовых строк в даты.

Если ваши записи представлены более сложной фразой из нескольких частей, к примеру:

  • 8 март 2020 г., воскресенье
  • 8 март 2020 г. 15:00

Вам нужно будет приложить немного больше усилий и использовать рассматриваемый нами инструмент в комбинации с функцией ДАТА.

Важно! Название месяца при использовании этого метода должно быть в именительном падеже!

  1. Выберите нужную область данных.
  2. Вызовите мастер преобразования.
  3. На шаге 1 укажите «С разделителями» и нажмите « Далее» .
  4. На шаге 2 мастера выберите разделители, которые у вас используются.

Например, если вы преобразуете строки, разделенные запятыми и пробелами, например «8 март 2020г., воскресенье», то вам следует выбрать оба разделителя — запятую и пробел.

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

Я немного усложнил наш пример, добавив после порядкового номера года еще букву «г» с точкой. Поэтому эта буква и добавлена в список разделителей.

И, наконец, взгляните на окно Образец разбора данных и проверьте, правильно ли поделены ваши слова на столбцы. Затем нажмите «Далее».

  1. На шаге 3 мастера убедитесь, что все колонки в разделе предварительного просмотра данных имеют формат «Общий». Если это не так, щелкните столбец и выберите Общий в разделе Формат данных.

Заметка. Не выбирайте формат «Дата», поскольку каждый столбец содержит только ее часть. Поэтому Excel не сможет понять, что вы на самом деле хотите сделать.

Если вам не нужен какой-то из столбцов, щелкните по нему и выберите «Пропустить».

мастер распределения по столбцам

Как видите, я буду использовать только три первых столбца, а два последних не нужны.

Если вы не хотите перезаписывать исходные данные, укажите, где именно должны быть вставлены результаты — введите адрес верхней левой ячейки в поле «Поместить в…». Выбираем ячейку B2.

Когда закончите, нажмите кнопку Готово.
Как вы видите на скриншоте выше, мы пропускаем четвертую и пятую колонки с точкой и днями недели, разделяем остальные данные на 3 столбца (в общем формате) и вставляем их, начиная с ячейки В2.

На следующем рисунке показан результат с исходными данными в A и разделенными на части данными в В, C и D.

  1. Наконец, вы должны объединить эти кусочки вместе, используя функцию ДАТА (DATE). Синтаксис её не требует особых пояснений:

=ДАТА(год, месяц, день)

В нашем случае год записан в колонке D и день — в В, с этим проблем нет.

Но не так просто с месяцем, потому что это слово, а нужен его номер. К счастью, Microsoft Excel предоставляет специальную функцию МЕСЯЦ (MONTH), которая может изменить название месяца на его порядковый номер:

=МЕСЯЦ(порядковый_номер)

Чтобы функция МЕСЯЦ понимала, что она имеет дело с датой, мы выражаем это так:

=МЕСЯЦ(1&C2)

Здесь C2 содержит название месяца, март в нашем случае. «1 &» добавляется для получения даты (1 март), чтобы формула могла превратить ее в соответствующий номер месяца. Повторюсь еще раз, что месяц должен быть здесь в именительном падеже, что не всегда удобно.

А теперь давайте встроим это выражение в качестве второго аргумента:

=ДАТА(D2;МЕСЯЦ(1&C2);B2)

И вуаля, наши сложные комбинации слов и цифр успешно становятся датами:

Как преобразовать текст в дату при помощи формул.

Разберем еще один способ как превратить сложную формулировку в дату. В колонке А записаны датировки как текстовые выражения вида «08 марта 2020г.». Сразу отметим, что записи должны быть единообразны, то есть все числа сохранены в двузначном виде: 01, 07, 08, 10, 12 и т.д.

Используем формулы работы с символьными значениями — ЛЕВСИМВ, ПРАВСИМВ, ПСТР. Они позволяют извлечь определенное количество символов  с начала текстовой строки, с конца или с середины.

Наша задача – разобрать текст на части, из которых затем «склеить» дату.

Используем формулу:

=ДАТАЗНАЧ(ЛЕВСИМВ(A2;2)&»-«&ПСТР(ЛЕВСИМВ(A2;6);4;3)&»-«&ПСТР(ПРАВСИМВ(A2;6);1;4))

Давайте разбираться, как это работает.

ЛЕВСИМВ(A2;2) — извлекаем 2 первых символа, то есть число.

ПСТР(ЛЕВСИМВ(A2;6);4;3) — получаем 3 первых буквы названия месяца.

ПСТР(ПРАВСИМВ(A2;6);1;4) — выводим 4 цифры года.

И объединяем все это при помощи оператора &, вставляя между этими частями тире.

Можно записать и чуть иначе:

=ДАТАЗНАЧ(ЛЕВСИМВ(A2;2)&»-«&ПСТР(A2;4;3)&»-«&ЛЕВСИМВ(ПРАВСИМВ(A2;6;4))

В английской версии:

=DATEVALUE(LEFT(A2,2)&»-«&MID(A2,4,3)&»-«&LEFT(RIGHT(A2,6),4))

Как извлечь дату из сложного текста при помощи формул?

При переносе в Excel различных бухгалтерских данных мы постоянно убеждаемся в том, что фантазия наших бухгалтеров поистине безгранична. В том числе это касается и написания датировок в пояснениях к бухгалтерским проводкам.

Вот несколько готовых решений, которые вам, возможно, пригодятся.

Давайте попробуем вытащить дату из пояснения к бухгалтерским проводкам. Как видите, варианты написания могут быть самые разнообразные. Единственное условие – день должен быть записан в виде двузначного числа: 07 в нашем случае.

Формула, при помощи которой можно извлечь дату из текста, выглядит так:

  • если у вас двумя цифрами обозначены день и месяц, и четырьмя – год:

=ПСТР(A2;ПОИСК(«??.??.????»;A2);10)

  • а вот если год – либо последние две, либо все четыре цифры, тогда есть более универсальный вариант:

=—ПСТР(A2;ПОИСК(«??.??.»;A2);8+2*ЕЧИСЛО(-ПСТР(A2;ПОИСК(«.??.»;A2)+6;1)))

Как должен выглядеть результат в ячейке — определите самостоятельно. Как именно – мы уже несколько раз разбирали. Смотрите чуть выше.

А если сделать так, чтобы и внешний вид извлеченной даты также устанавливался не вручную, а при помощи формулы? Здесь нам поможет функция ТЕКСТ.

определяем формат вывода даты при помощи функции ТЕКСТ

Самый базовый вариант представления выглядит так:

=ТЕКСТ(ПСТР(A1;ПОИСК(«??.??.»;A1);8)&ТЕКСТ(ПСТР(A1;ПОИСК(«.??.»;A1)+6;2);»0;;;»);»DD MMMM YYYY»)

Как видите, вся хитрость заключается в правильном описании формата во втором аргументе. «DD MMMM YYYY» означает число, месяц в именительном падеже и год из четырёх цифр. А вот «[$-FC19]DD MMMM YYYY» сделает то же самое, но месяц будет в родительном падеже (7 ноября). Остальные варианты вы видите на рисунке выше. Можете сами выбрать тот, который больше подходит для ваших задач.

Ну а если день у вас может быть записан и одной цифрой, и двузначным числом? И здесь есть универсальный вариант. Правда, более сложный.

Здесь применяем формулу массива.

{=ЕСЛИОШИБКА(—ЛЕВСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(A2;МИН(ЕСЛИОШИБКА(НАЙТИ(ТЕКСТ(СТРОКА($A$2:$A$363);{«dd.mm.»;»d.mm.»;»dd/mm/»;»d/mm/»});A2);9^9));10);» «;»    «);»г»;»   «);10);»»)}

Естественно, скобки вводить не нужно: они появятся автоматически после того, как вы в конце ввода формулы нажмете комбинацию клавиш CRTR+SHIFT+ENTER.

Как видите, здесь мы постарались охватить практически все возможные варианты написания. Внешний вид ячеек с результатом вам нужно вновь установить вручную. Ну а если необходимо это сделать автоматически, то вновь используйте функцию ТЕКСТ, как это сделано чуть выше.

К примеру, чтобы сразу получить «07 ноября 2019 г.», можно изменить наше выражение следующим образом:

{=ТЕКСТ(ЕСЛИОШИБКА(—ЛЕВСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(A2;МИН(ЕСЛИОШИБКА(НАЙТИ(ТЕКСТ(СТРОКА($A$2:$A$363);{«dd.mm.»;»d.mm.»;»dd/mm/»;»d/mm/»});A2);9^9));10);» «;»    «);»г»;»   «);10);»»);»[$-FC19]dd mmmm yyyy г.;@»)}

И не забывайте про формулу массива!

Быстрая конвертация при помощи Специальной вставки.

Чтобы быстро переделать диапазон простых текстовых строк в даты, вы можете использовать следующую хитрость.

  • Скопируйте любую пустую ячейку (выделите ее и нажмите Ctrl + C).
  • Выберите диапазон с текстовыми значениями, которые вы хотите превратить в даты.
  • Щелкните правой кнопкой мыши выделенную область, выберите «Специальная вставка» и выберите «Сложить» в диалоговом окне:

  • Нажмите кнопку ОК, чтобы завершить работу и закрыть диалоговое окно.

Что вы только что сделали, это попросили Эксель добавить ноль (пустую ячейку) к вашим текстовым датам. Чтобы выполнить это, программа конвертирует текст в число, и, поскольку добавление нуля не приводит к изменению значения, вы получаете именно то, что хотели — порядковый номер дня. 

Как и обычно, далее вы устанавливаете для этих ячеек нужный вид с помощью диалогового окна «Формат ячеек».

Исправление записей с двузначными годами.

Современные версии Microsoft Excel достаточно умны, чтобы обнаружить некоторые очевидные ошибки в ваших данных, или, точнее, сказать, что Эксель считает ошибкой. Когда это произойдет, вы увидите индикатор ошибки (маленький зеленый треугольник) в верхнем левом углу клетки, и, когда вы выделите её, появится восклицательный знак.
При нажатии на восклицательный знак отобразятся несколько параметров, относящихся к вашим данным. В случае двухзначного года программа спросит, хотите ли вы преобразовать его в 19XX или 20XX.

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

Как преобразовать 8-значное число в дату в Excel

Это очень распространенная ситуация, когда дата вводится как 8-значное число, например 10032021. Вам необходимо преобразовать ее в такой вид, который может распознать Excel (то есть, 20.03.2021). В этом случае простое изменение формата ячейки на «Дата» не пройдёт – в результате вы получите ##########.

Чтобы преобразовать это в дату, вам нужно будет использовать функцию ДАТА() в сочетании с функциями ПРАВСИМВ(), ЛЕВСИМВ() и ПСТР(). К сожалению, невозможно составить универсальную формулу, которая будет работать во всех сценариях, потому что исходное значение может быть введено самыми разными способами. Например:

Число Формат Дата
20032021 ддммгггг 20-мар-2021
20210320 ггггммдд
20212003 ггггддмм

Я постараюсь объяснить общий подход к преобразованию таких чисел в даты и приведу несколько примеров формул.

Для начала запомните порядок аргументов функции ДАТА():

=ДАТА(год; месяц; день)

Итак, что вам нужно сделать, так это извлечь год, месяц и день из исходного числа и передать их в качестве соответствующих аргументов функции ДАТА().

Например, давайте посмотрим, как преобразовать число 20032021 (хранящееся в ячейке A2) в 20.03.2021.

  • Извлекаем год. Это последние 4 цифры, поэтому мы используем функцию ПРАВСИМВ, чтобы выбрать последние 4 символа: ПРАВСИМВ(A2; 4).
  • Месяц. Это третья и четвёртая цифры, поэтому мы используем функцию ПСТР, чтобы получить их: ПСТР(A2;3;2). Здесь цифра 3 (второй аргумент) – это начальная позиция, а 2 – это количество символов, которые нужно извлечь.
  • День. Это первые две цифры, поэтому у нас есть функция ЛЕВСИМВ, которая возвращает их: ЛЕВСИМВ(A2;2).

Наконец, вставьте указанные выше элементы в функцию ДАТА(), и вы получите формулу для преобразования числа в дату в Excel:

=ДАТА(ПРАВСИМВ(A2;4);ПСТР(A2;3;2);ЛЕВСИМВ(A2;2))

Следующий скриншот демонстрирует это и еще пару выражений в действии:

Обратите внимание на строку 5 на скриншоте выше:

=ДАТА(«20″&ЛЕВСИМВ(A5;2);ПРАВСИМВ(A5;2);ПСТР(A5;3;2))

 Исходное число (212003) содержит только два символа, обозначающих год (21). Итак, чтобы получить 2021 год, мы объединяем 20 и 21, используя следующую формулу:

«20»&ЛЕВСИМВ(A5;2)

Если вы не сделаете этого, функция ДАТА() возвратит 1921 год, что немного странно, как будто Microsoft все еще живет в 20-м веке :)

В том случае, если число представляет собой последовательность ДДММГГГ или ГГГММДД, то для конвертации в дату можно использовать функцию ТЕКСТ().

К примеру, число 20210320 можно преобразовать при помощи формулы

=—ТЕКСТ(A3;»0000/00/00″)

Сначала в нужных местах мы вставляем разделители — наклонную черту. Получаем текст 2021/03/20. А затем производим с ним математическую операцию: дважды умножаем на минус 1. Видя операцию умножения, Excel пытается превратить содержимое ячейки в число. И ему это успешно удается: получаем 44275. Осталось применить подходящий формат даты.

Примечание. Формулы, показанные в этом примере, работают правильно, если все числа, которые вы хотите преобразовать в даты, подчиняются одному и тому же определённому шаблону.

Простой способ преобразования текста в дату без формул.

Как видите, преобразование текста в дату в Excel — далеко не тривиальная операция, выполняемая одним щелчком мыши. Если вас смущают достаточно сложные формулы, позвольте мне показать вам быстрый и простой способ.

Установите надстройку Ultimate Suite (бесплатную пробную версию можно скачать здесь), переключитесь на вкладку AblebitsTools (в ваш Excel будут добавлены 2 новые вкладки, содержащие более 60 очень полезных инструментов) и активируйте инструмент Text to Datе.

Чтобы преобразовать «дату-как-текст» в обычную дату, выполните следующие действия:

  1. Выделите ячейки с текстовыми данными и нажмите Text to Date .
  2. Укажите порядок дат (дни, месяцы и годы) в выбранных ячейках.
  3. Выберите, нужно ли включать время в преобразованные даты.
  4. Щелкните Преобразовать (Convert).

Вот и все! Результаты конвертации появятся в соседнем столбце, ваши исходные данные сохранятся. Если что-то пойдет не так, вы можете просто удалить их и повторить попытку с другим порядком дат.

А вот пример конвертации текста в дату и время:

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

Подсказка. Если вы выбрали преобразование даты и времени, но единицы времени отсутствуют в результатах, обязательно примените в ячейке формат, в котором отображаются как значения даты, так и времени. Дополнительные сведения см. в статье «Как создавать собственные форматы даты и времени» .

Если вам интересно узнать больше об этом замечательном инструменте, посетите его домашнюю страницу.

Итак, мы с вами рассмотрели как в Excel можно различными способами преобразовать текст в дату. Надеюсь, вам удалось найти метод по своему вкусу.

 Я благодарю вас за чтение и надеюсь вновь увидеть вас на нашем сайте.

Также рекомендуем:

Как перевести время в число В статье рассмотрены различные способы преобразования времени в десятичное число в Excel. Вы найдете множество формул для преобразования времени в часы, минуты или секунды. Поскольку Microsoft Excel использует числовую систему для работы с временем, вы можете…
Формат времени в Excel Вы узнаете об особенностях формата времени Excel, как записать его в часах, минутах или секундах, как перевести в число или текст, а также о том, как добавить время с помощью…
Как быстро посчитать количество слов в Excel В статье объясняется, как подсчитывать слова в Excel с помощью функции ДЛСТР в сочетании с другими функциями Excel, а также приводятся формулы для подсчета общего количества или конкретных слов в…
Как быстро извлечь число из текста в Excel В этом кратком руководстве показано, как можно быстро извлекать число из различных текстовых выражений в Excel с помощью формул или специального инструмента «Извлечь». Проблема выделения числа из текста возникает достаточно…
Как вывести месяц из даты На примерах мы покажем, как получить месяц из даты в таблицах Excel, преобразовать число в его название и наоборот, а также многое другое. Думаю, вы уже знаете, что дата в…
Функция ПРАВСИМВ в Excel — примеры и советы. В последних нескольких статьях мы обсуждали различные текстовые функции. Сегодня наше внимание сосредоточено на ПРАВСИМВ (RIGHT в английской версии), которая предназначена для возврата указанного количества символов из крайней правой части…
Функция ЛЕВСИМВ в Excel. Примеры использования и советы. В руководстве показано, как использовать функцию ЛЕВСИМВ (LEFT) в Excel, чтобы получить подстроку из начала текстовой строки, извлечь текст перед определенным символом, заставить формулу возвращать число и многое другое. Среди…

На чтение 6 мин. Просмотров 2.1k. Опубликовано 11.08.2021

Как-то попалась на глаза новость: Учёные переименовали 27 человеческих генов из-за Excel. Программа принимала их названия за даты. Кто в танке не в курсе, то при написании похожих на даты в разной записи чисел или текста, Excel в одностороннем порядке пытается превратить их в дату. Одна из самых известных и за столько лет непоправленных недоразумений в Excel. Недавно я опубликовал свой скрипт Excel-CSVD для решения этой проблемы, но хотелось бы собрать в одном месте все известные мне способы для отмены автоматической конвертации чисел в даты.

excel_is_this_a_date_funny_pic
Перевод: Любой вид данных в Excel: Это дата?

Все способы можно поделить на 3 типа:

  • правка непосредственно в открытой программе Excel
  • чтение файлов csv или txt без возможности записи значений в файл
  • чтение файлов csv или txt при возможности записи значений в файл

Почему мы рассматриваем только формата csv/txt, ведь большинство работают в xls/xlsx форматах? В родных форматах Excel сохраняются свойства ячеек, столбцов, строк. Поэтому единожды задав правильно тип ячейки, можно уже не беспокоится, что при открытии неправильно что-то отобразится.

Содержание

  1. При работе в открытом Excel
  2. Изменение формата ячейки
  3. Вставка символа апострофа перед любым текстом
  4. Вставка формулы с текстом
  5. Чтение файлов csv или txt без возможности записи значений в файл
  6. Использование скрипта Excel-CSVD
  7. Использование импорта данных на вкладке Данные
  8. Чтение файлов csv или txt при возможности записи значений в файл
  9. Использование формул при записи csv/txt файла
  10. Использование скрытых символов при записи csv/txt файла

При работе в открытом Excel

Если в любой ячейке написать, например, 1/4, то это превратится в 04-янв. Для изменения поведения Excel есть такие способы

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

Изменение формата ячейки

Так как у ячейки по умолчанию всегда стоит формат Глобальный, то Excel пробует угадать за пользователя, что он хочет вбить: текст, число, формулу или дату. Ну не всегда это у него получается. Для того, чтобы отключить эту автоматическую конвертацию, нужно сделать ячейку/столбец/строку текстом. Более подробно на видео (ссылка).

Вставка символа апострофа перед любым текстом

Если в ячейке в режиме редактирования сначала написать символ апострофа, а потом любой текст — то он автоматом станет текстом, а сам символ апострофа не будет виден в ячейке. При редактировании символ отображается.

set text with apostrophe in excel

Вставка формулы с текстом

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

set text with formula in excel

Чтение файлов csv или txt без возможности записи значений в файл

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

Использование скрипта Excel-CSVD

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

К плюсам данного способа можно смело отнести отсутствие правки самого файла csv. При сохранении значения запишутся правильно обратно в файл.

Минус данного способа состоит в том, что при открытии файла все данные (числа или даты) будут текстовые. Это даст неправильную сортировку чисел и дат. При вставке в ячейку формулы, она станет текстом. Для того, чтобы формула заработала в такой ячейке, надо изменить формат на Общий или Формула в свойствах ячейки.

Использование импорта данных на вкладке Данные

Любой файл csv/txt можно импортировать на текущий лист с помощью кнопки на вкладке Данные — Импорт из текста. При импорте пользователь сам выбирает, как разделять данные (по разделителю или по количеству символов фиксировано). Дальше пользователю надо каждую колонку, где Excel может изменить данные на дату, сделать в формате Текст. По ссылке более подробно рассказано про импорт.

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

Минус только в том, что для пользователя операции импорта с последующим выбором колонок — это куча щелчков мышью. Если операцию нужно проводить постоянно, то этот способ очень муторный.

panel with import csv in excel

Чтение файлов csv или txt при возможности записи значений в файл

Если возможно влиять на запись значений в файле csv или txt, то можно использовать следующие способы.

Использование формул при записи csv/txt файла

Определенные данные, которые могут вызвать проблемы с отображением, можно записать виде формулы

При открытии такого файла во втором столбце Excel правильно отобразит значение. А в третьем столбце по умолчанию превратит в дату.

save as formula in csv

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

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

Использование скрытых символов при записи csv/txt файла

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

set text with hide symbols in csv

Почему табуляцию лучше использовать вместо пробела? Все из-за Excel, который практически игнорирует табуляцию. Для пользователя не будет видно, что есть такой символ. А пробел Excel отобразит и текст немного сместиться на символ вправо.

how excel shows hide symbols

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

К минусам данного способа относится тот факт, что пользователь не сможет проверять текст на равенства или использовать нормально формулы, так как символ будет в тексте, и с ним надо что-то делать. Например, пробелы спереди можно убирать функцией СЖПРОБЕЛЫ, а табуляцию с помощью ПЕЧСИМВ.

Я рассмотрел несколько способов, как можно открывать файлы и отключить конвертацию значений в даты. В большинстве случаев они базируются на превращении данных в текст. На мой взгляд, без лишней скромности, самый простой способ это юзать мой бесплатный скрипт Excel-CSVD. Все остальные способы требуют от пользователя каких-то лишних действий. Скрипт Excel-CSVD можно привязать к исполнению файлов csv, и открывать из меню Открыть с помощью. Но тут у каждого свой подход и свои заморочки.

Всем удачной работы в Excel…

Понравилась статья? Поделить с друзьями:
  • Excel перевод ячейки в текст
  • Excel перевод числового формата в текстовый
  • Excel перевод числа в шестнадцатеричное число
  • Excel перевод числа в число прописью
  • Excel перевод числа в градусы