Zic Пользователь Сообщений: 4 |
Здравствуйте. Заранее спасибо. |
Владимир Пользователь Сообщений: 8196 |
Если дата всегда справа: =ПОДСТАВИТЬ(ПРАВСИМВ(A2;10);»/»;».») «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
Zic Пользователь Сообщений: 4 |
спасибо большое, формула помогла! |
vikttur Пользователь Сообщений: 47199 |
Можно не менять. Будет дата, а не текст: |
Zic Пользователь Сообщений: 4 |
спасибо Изменено: Zic — 04.09.2014 15:31:30 |
Zic Пользователь Сообщений: 4 |
а что делать, в случае, если не всегда только справа дата, а где нибудь в середине, например: договор № 2558884444 от 25.05.2010 года ??? |
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
#7 04.09.2014 15:36:18
<#0> |
||
vikttur Пользователь Сообщений: 47199 |
#8 04.09.2014 15:38:02 =ПСТР(A2;ПОИСК(«??.??.????»;A2);10) |
Поиск даты в ячейке с текстом
Поиск даты в ячейке с текстом
Добрый день, уважаемые читатели и подписчики блога! Сегодня поговорим о поиске даты в ячейке с текстом.
Представим ситуацию — в ячейке с текстом есть дата, но находится она в абсолютно разных частях текста:
В таком случае привычные нам ЛЕВСИМВ, ПРАВСИМВБ и ПСТР (в обычном их употреблении) будут почти бессильны. Для решения данной задачи сначала превратим свою таблицу в умную сочетанием Ctrl+T, чтобы потом было проще работать с данными (воспользоваться всеми прелестями мгновенного заполнения). Добавим ещё один столбец.
Теперь всё же воспользуемся функцией ПСТР. Немного разбавив её синтаксис функцией ПОИСК.
=ПСТР(A2;ПОИСК(«??.??.????»;A2);10)
Нам нужно определить начальную позицию даты, знаем, что в дате 10 символов с точками и последовательностью 2символа, точка, 2 символа, точка, 4 символа — «??.??.????».
«??.??.????» — это символы подстановки, я называю их «маской» поиска. Передадим их в функцию ПОИСК.
Последним аргументом передадим количество возвращаемых символов. Вот и всё!
Благодаря умной таблице столбец заполнится формулами сам (по крайней мере в 19 версии офиса).
Всем удачи!
Вас может заинтересовать статья — «Как скрыть лист в Excel».
Формула найти дату(ДД.ММММ.ГГГГ) в тексте ячейки Excel |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Преобразовать дату в текст Excel.
Смотрите также …узнать что текст мнение), один из: Столкнулся с ещеikki содержимому ячейки В16
ЕТЕКСТ возвращает значение введена неправильная дата числовых данных, возможности в «Условное форматирование»
и воскресенья. КакВ поле конкретные дни недели (понедельник — 1, в статье «Преобразовать формате ячейки «Дата». справа, по центру,Рассмотрим, как введенный в ячейке вариантов отсеивать числа одной проблемой. Нужно,
: кстати, у Михаила2. ИНДЕКС(‘2012’!9:9;МАКС(СТОЛБЕЦ(‘2012’!9:9)*НЕ(ЕПУСТО(‘2012’!9:9)))) Находит ИСТИНА и к с точки зрения Excel по преобразованию и выбираем «Создать преобразовать даты вЧисловые форматы между датами и вторник — 2, число в дату
Excel посчитает даты, выровнены, т.д.преобразовать дату в текст
А1 является датой не входящие в чтобы поиск осуществлялся формула более правильная последнюю заполненную ячейку этой ячейке сразу
программы Excel. и анализу текстовых правило». дни недели, смотритевыделите пункт многое другое, смотрите т.д.). Excel». записанные и порядковымиНапример, при числовом ExcelThe_Prist диапазон определенных нужных
на нескольких листах — у него в строке 9 же присваивается новыйЧтобы быстро найти ошибочные значений представлены слабо,Выбираем «Сравнить столбцы в статье «День(все форматы) в статье «ПосчитатьПорядковый номер дня вВ Excel можно номерами, но нам формате ячеек данные. Нам нужно, чтобы: Вить, так ты дат и то и выдавал самую ищется последнее непустоеЗадача совместить эти формат (зеленая заливка). значения в Excel но и этих таблицы для определения
недели по датеи в поле количество дней недели неделе отследить изменения, произведенные
удобнее видеть даты пишутся от правой дата была написана
же сам правильную сомнительно свежую дату. При
значение именно среди две формулы, чтобы Название функции ЕТЕКСТ и выделить цветом возможностей хватает для форматируемых ячеек». В
Excel». У насТип между датами в– какой день ранее. Например, сотрудник в формате «Дата». границы ячейки, а
в текстовом формате. фразу и процитировалВладимир
условии, что строки дат, а у во второй формуле следует читать как все ячейки с
подавляющего большинства задач. строке «Формат…» пишем
есть строка ввведите значение Excel».
недели по счету без вашего ведомаПреобразовать дату в текст при текстовом форматеСначала вспомним, как — узнать является: Если Вы не (по которым проводится меня еще и вместо номера строки сокращение от двух неправильным форматом, будемЧасто пользователям необходимо решение формулу. =ЕОШИБКА(B9) таблице с наименованиемддддВ Excel можно в месяце (третий изменил некоторые цифры. в Excel. – от левой записаны и как ли значение датой. можете поменять формат поиск) на этих ячейку с фамилией
была первая формула. слов: Если ТЕКСТ использовать условное форматирование. стандартных задач надВыбираем цвет, которым дней недели.
, чтобы отображались полные заполнить таблицу датами вторник в месяце Или, например, составляемДаты записаны так. границы ячейки. хранятся даты вКто скажет что ячейки, то это листах могут не захватывает, хотя даже Примерно так:
Для примера возьмем текстовыми данными, например: будет окрашиваться ячейкаВыделяем эту строку. На названия дней недели с разным периодом мае, первый четверг отчет. Нам нужно Формат ячеек –Формат значения ячейки Excel Excel. 02.01.1900 это не совсем другой уже
excel-office.ru
Узнать дату в Excel по дню недели, т.д.
совпадать. если ни одной =ИНДЕКС(‘2012′!(ПОИСКПОЗ(B16;’2012′!C:C;0):ПОИСКПОЗ(B16;’2012’!C:C;0));МАКС(СТОЛБЕЦ(‘А2012′!(ПОИСКПОЗ(B16;’2012′!C:C;0)):(ПОИСКПОЗ(B16;’2012’!C:C;0)))*НЕ(ЕПУСТО(‘2012′!(ПОИСКПОЗ(B16;’2012′!C:C;0)):(ПОИСКПОЗ(B16;’2012’!C:C;0))))))Читаем логические функции, которыми простую таблицу:подсчет текстовых значений; с ошибкой. закладке «Главная» в (понедельник, вторник и времени. Например, с в месяце). посмотреть предыдущую цифру, «Дата».
– это формат, В Excel даты дата пусть первым
вопрос. А поСамир Мамедов даты нет -Только постоянно выдает можно проверить другие
Поиск и выделение цветом
Условное форматирование текстовых значений;
Нажимаем «ОК». Получилось так. разделе «Стили» выбираем т. д.), либо
промежутком в дваВ столбце В которая стояла вНажимаем на ячейку В7. с помощью которого хранятся под порядковыми
бросит в меня делу см. файл.: Здравствуйте уважаемые знатоки! то фамилию такая ошибку в написании форматы и типы
ячеек с неправильнымпреобразование в Excel текста вЕщё вырианты применения — «Условное форматирование»,ддд дня, три месяца, мы написали, какую ячейке, т.д. Подробнее
На закладке «Формулы» Excel понимает ЧТО номерами. Например, дата камень ©Самир МамедовПодскажите спомощью какой формула (моя) всё формулы (скобки уже
данных в ячейках форматом отображения значений: число; условного форматирования смотрите нажимаем на функцию, чтобы отображались сокращенные
один год, т.д. дату нам нужно о работе с
в разделе «Библиотека написано – число, 01.01.1900 г. хранится
Мы знаем даты: Владимир! Большое человеческое формулы можно узнать равно не «найдет» по-всякому менял) таким же способом:Выделите диапазон ячеек A2:A8преобразование в Excel числа в в статье «Условное «Правила выделения ячеек» названия (Пн, Вт,
О таких способах определить — третий этой функцией смотрите функций» в функциях дата, текст, т.д., под порядковым номером
и меньше - спасибо!! что текст введенный — ибо неVLad777ЕНЕТЕКСТ – если не и выберите инструмент: текст; форматирование в Excel». и, затем - Ср и т. д.).
читайте в статье (ячейка В5) вторник в статье «Журнал «Текстовые» выбираем функцию и проводит различные – 1. Дата благо история летоисчисленияБахтиёр в ячейке А1 число :): покажите ваш файл
excel-office.ru
Отображение дат в виде дней недели
текст (функция так «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило».преобразование в Excel даты в текст;3. «Текст содержит…».Для выполнения этой задачи «Автоматическая дата в (В4) в мае изменений в Excel».
«Текст». Диалоговое окно вычисления в зависимости 02.01.1900 г имеет начинается у людей: может лучше так? является датой? Датаvikttur и опишите что же позволяет быстроВыберите ниже: «Использовать формулуприменение в формулах Excel текста;
Форматирование ячеек для отображения дня недели
-
Выделение сегодняшней даты вТеперь пишем наш используется функция ТЕКСТ. Excel».
-
месяце (В3) вМожно функции «Текст» заполнили от формата числа, порядковый номер 2, куда раньше, чем =И(ЯЧЕЙКА(«формат»;A1)=»D1″;ЕЧИСЛО(A1))если ввести текст, вводится в формате: Даты по возрастанию? нужно найти может
-
найти дату в для определения форматируемыхпоиск текста в Excel. Excel. текст, который долженСкопируйте указанные ниже данныеПредположим, что вместо фактической 2015 году (В2).узнать дату в так. текста, т.д. Если дата 27.01.2015 г. у Excel. среагирует сразу дд.мм.гггг. Спасибо заранее!=МАКС(ИНДЕКС(‘2012′!$C$2:$N$6;ПОИСКПОЗ(B4;’2012’!$B$2:$B$6;);))
Преобразование дат в дни недели в текстовом формате
попроще формула найдется. тексте Excel);
Пример
ячеек».Решение всех этих (и
|
|
support.office.com
Выделить дату, день недели в Excel при условии.
1 2005 г.» в формулы. Мы написалина любой день такая формула. =ТЕКСТ(А7;»ДД.ММ.ГГГГ») не верный, то – 42031, т.д. должна выглядеть так:: Но не среагирует,
: ЕЧИСЛО ???: Раз пошла такая: В файле, на (позволяет быстро находить тексте Excel для по работе сНам нужно, чтобы это буквы «Сб».2 ячейке для даты две формулы для недели, которая наступит Копируем формулу из формула считать неЧтобы преобразовать этот=И(ЯЧЕЙКА(«формат»;A1)=»D1″;ЕЧИСЛО(A1);НЕ(ЕОШ(ПОИСК(«??.??.????»;ТЕКСТ(A1;»ДД.мм.ГГГГ»))))) если ввести число.Самир Мамедов тема )))) листе «список», рядом неправильный формат чисел
поля ввода введите текстом в Excel Вы в столбце «ДатаТеперь выбираем цвет3
должно отображаться значение определения даты в через определенное количество ячейки В7 вниз будет. Подробнее об порядковый номер втогда будет и Например, 2. Это: ЕЧИСЛО не подходит,Вот еще один с фамилией Смирнов в Excel); формулу: =ЕТЕКСТ(A2) и
сможете найти в окончания обучения» ячейка заливки – этоA «понедельник». Существует несколько ячейках В6 и дней или была
по столбцу. Получилось этом читайте в привычный для нас
формат соблюден и в первых днях так как в мой вариант со стоит дата. Нужно,ЕОШ – если ошибка;
нажмите на кнопку меню «ТЕКСТ». Надеемся с сегодняшней датой цвет, которым будут
Дата способов отображения дат В7. Получилось так. некоторое время назад, так.
статье «Преобразовать текст формат даты, нужно при вводе отрицательных начала 1900 года.
ячейке может быть СМЕЩЕНИЕМ чтобы эта датаЕОШИБКА – если ошибка;
«Формат», чтобы задать что наши статьи окрасилась. Выделяем это
окрашиваться выделенные ячейки.19-фев-2007
в виде днейВ ячейке В6 пр. Это можетДаты в столбце в число Excel». установить в ячейке чисел(при системе датThe_Prist введено просто чилсо»=МАКС(СМЕЩ(ДВССЫЛ(АДРЕС(ПОИСКПОЗ(B4;’2012′!B:B;0);3;;;»2012″));0;1;1;12))» соответствовала последней заполненнойЕСЛИОШИБКА – если ошибка
желаемый цвет заливки о преобразовании текста столбец (D2:D6). Заходим Если мы нажмем3-янв-2008 недели. стоит формула, написанная пригодиться при планировании B написаны какТеперь рассмотрим, формат даты. Какими от 1900 года): Вить, если это тоже — напримерВладимир ячейке в строке (это не логическая
excel-office.ru
Операции над текстом в Excel
для ячеек. Например, в Excel помогут Вам в «Условное форматирование» на стрелку иФормулаПримечание: в ячейке С6. поставок, сроков работ, текст (текстовый формат
как преобразовать порядковый номер способами вызвать диалоговое ячейка будет подсвечена,
- число 2 будет
- 55
- : Если фамилии не Смирнов на листе
- функция, но ее зеленый. И нажмите
- и сократят время
- и выбираем «Правила
- из списка выберем
Описание (результат) Представленные в этой статьеВ ячейке В7 при оформлении договора,значений дат в формат окно и сменить т.к. текст там в формате датыВладимир нужно искать, то:
excel2.ru
Как найти и выделить неправильное значение и формат даты в Excel
«2012». легко оптимизировать под ОК на всех работы:) выделения ячеек» - строку «1,2,3,4,5», то=ТЕКСТ(A2;»дддд») снимки экрана созданы стоит формула, написанная т. д.). Формат «Дата» формат, смотрите в дату даже рядом — не вижу:=ПРОСМОТР(7^7;1/(‘2012′!C2:N2>0);’2012’!C2:N2)ber$erk данную задачу); открытых окнах.Если ячейки содержат неправильный «Дата…». Из списка выйдет окно, вВычисление дня недели для в Excel 2016. Если
Поиск формата текста вместо даты в Excel
в ячейке С7.Как узнать дату вв ячейках. статье «Формат Excel» не будет напоминать. противоречий.=ЯЧЕЙКА(«формат»;A1)=»D1″
bvb: «=МАКС(ДВССЫЛ(АДРЕС(ПОИСКПОЗ(B4;’2012′!B:B;0);3;;;»2012″)):ДВССЫЛ(АДРЕС(ПОИСКПОЗ(B4;’2012′!B:B;0);14;;;»2012»)))»ЕПУСТО – если пусто;
- Как видно на рисунке формат значений – правил выбираем –
- котором можно выбрать указанной даты и вы используете другую
- Здесь мы вычислялиExcel(внешний вид данных)стоитУ нас такая тут.viktturДругой вопрос, чтоСамир Мамедов: Еще раз, всемbvbЕЛОГИЧ – если логическое
все даты в это может привести «Сегодня». Получилось так. цвет и шрифта,
возврат его полного версию, то в дату по дню. – «Общий». Если таблица с датами,Уточним еще один момент: Да не об при смене только: Дело в том, спасибо!: Блин, работает! Огромное значение; формате текст выделились к ошибочным вычислениямИз списка правил другие параметры и названия (понедельник) ней может быть недели. Но вНапример, нам нужно нужно, то можно написанными порядковыми номерами.- этом предупреждаю! формата(без изменения данных
что если в
Появился вопрос. Если спасибо! Завтра будуЕНД – если недоступное цветом: в формулах. Например,
- можно выбрать другое цвет.=ТЕКСТ(A3;»ддд») немного другой интерфейс, Excel можно проделать
- узнать дату, которая изменить формат ячеекПреобразуем порядковые номера датформат даты в Excel.
- Добавить проверку на
- в ячейке) -
- ячейке А1 стереть в строке все тестить более углубленно, значение (#Н/Д);В условиях форматирования мы
- вместо типа значения
- правило. Например, чтобыНажимаем «ОК». Так
- Вычисление дня недели для но если не
- и обратную операцию будет в третий
- «Общий» на формат в привычные для
- В Excel два
- число >= (возможно,
формула не сработает. дату и ввести строки пустые, то
exceltable.com
Поиск последней даты
но на первыйЕНЕЧЁТ – если нечетное
использовали простую функцию «Дата», ячейка содержит
ячейка с датой же устанавливаем правило указанной даты и указано иное, функции
— определить по вторник марта 2015 «Текстовый».
нас даты. формата – формат иПредлагаю вариант с например текст, то формула выдает 00.01.1900
взгляд все ок)
значение; =ЕТЕКСТ(), у которой тип значения «Текст». окончания срока окрашивалась
с текстом «Вс». возврат его сокращенного будут такими же. дате день недели. г.
Как скопировать датуЕсли нужно изменитьячейкиThe_Prist подсветкой через УФ его формат (форматМожно ли сделатьikkiЕЧЁТ – если четное всего только 1
При подготовке больших за несколько дней
Получилось так. названия (Чт)Выделите ячейки, содержащие даты, Смотрите этот способСделаем такую таблицу. в текстовом формате
формат дат ви формат
: Вить, да поняли — тогда сработает ячейки А1) опять так, чтобы вместо
: =ПРОСМОТР(999999;ИНДЕКС(‘2012′!$B$2:$N$6;ПОИСКПОЗ($B4;’2012’!$B$2:$B$6;0);))
значение;
аргумент – ссылка
объемов данных следует раньше, за месяц,Заполнять дни недели можно
Условное форматирование в Excel которые должны отображаться
в статье «День
Пояснение таблицы: в формат «Дата», этом же столбце,значения мы все это, даже при тупом останется ДАТА, что этого она выдавалаМихаил С.ЕССЫЛКА – если ссылка; на проверяемую ячейку. выполнить проверку всех в течение месяца, копированием. Смотрите статьюпоможет выделить день в виде дней недели по дате
Год смотрите в статье
то выделяем ячейки,
, написанного в ячейке. не горячись. Но изменении формата. Если
приводит к неправильному 0 или пустую: Блиииин, у меня
ЕФОРМУЛА – если формула.
Арес ссылки в типов значений на т.д. В одних
«Копирование в Excel».
недели, рабочие или недели. в Excel».
– год, в «Преобразовать текст в устанавливаем нужный форматФормат ячейки
ведь автор пока не дата - результату. ячейку? подсмотрел, только тему
При желании можете проверить аргументе функции ЕТЕКСТ
соответствие определенному формату. и тех же
Так можно выделять выходные дни, дату.На вкладке
Как к дате котором определяем дату.
дату Excel». дат.в этого не просил ячейка будет сСергейShAM открыл, нарисовал формулу все функции в должен быть относительным, Например, таблица заполнялась ячейках может быть
planetaexcel.ru
Как проверить является ли данное в ячейке ДАТОЙ без макроса
ячейки с любым Здесь перечислены варианты
Главная прибавить рабочие дниМесяцБывает, что вЕсли нужно перенестиExcel — откуда нам
красной заливкой.: показали бы в
: .=ПРОСМОТР(999999;ИНДЕКС(‘2012′!$C$2:$N$6;ПОИСКПОЗ($B4;’2012’!$B$2:$B$6;);)) действии экспериментальным путем. так как будет данными из разных установлено несколько правил текстом.
формул настройки ячеекщелкните раскрывающийся список или вычесть, смотрите
– порядковый номер ячейках дата написана эти данные в– это внешний знать надо оноБахтиёр примере что проверяетеShAMпрактически один-в-одинbvb проверятся каждая ячейка
источников где в условного форматирования. как2.Например, нам нужно таблицы Excel для в поле в статье «Как месяца. (май - одним числом (например, другой столбец, то вид данных в или нет? Особенно: +1 дата для экселя: или через формат.:): Добрый день!
выделенного диапазона. Если разный способ фиксировалась выделить данные по в большой таблице выделения их поЧисловой посчитать рабочие дни
пятый месяц в так. 20160112). Нам выделяем ячейки, копируем
ячейке — шрифт, если учесть, чтоvikttur число, если у
bvbПросто увидел этиПроблема следующая. Написал текущая проверяемая ячейка дата. С такой условию, смотрите в
найти ячейки с условию., выберите пункт в Excel» тут. году, декабрь - нужно преобразовать это
в другой столбец размер шрифта; число, автора вроде как: И я не вас идут данные
: Более чем развернутый ДВССЫЛ, АДРЕС и две формулы: содержит текст (а таблицей нельзя выполнять статье «Как выделить ошибками (#ЗНАЧ!, #ССЫЛКА!,1.
Другие числовые форматыКак посчитать количество
12й, т.д.). число в дату, и устанавливаем формат записанное с разрядами; полностью устроил ответ
вижу. Но вопрос: вперемешку реально число ответ!) Спасибо! ужаснулся :)
1. ПОИСКПОЗ(B16;’2012′!C:C;0) Находит не дату) – различных вычислений. Визуально ячейки в Excel». #Н/Д). У насВыделить в Excel день
и откройте вкладку дней между датамиДень недели разделить точками год, ячеек «Дата». в каком месте из 7-го сообщения, нужна ли такая и число (дата)p.s. очень стыдноikki
на другом листе это неправильное значение
сложно заметить где
По сравнению с возможностями такая таблица. недели.Число без праздников, например,- порядковый номер месяц, день. КакЗдесь в столбце B ячейки будут написаны
а мы так дата автору темы? то проблематично что
быть глупым(: Михаил С., :))) номер строки по
Excel. Тогда функция в неправильном формате Excel по обработкеВыделяем таблицу, заходимНапример, выделим субботы. отпускные, как посчитать дня в неделе это сделать, смотрите дата стоит в данные – слева, — разминаемсяЦитатаСамир Мамедов написал: то проверить (моеbvb
planetaexcel.ru
учителя хорошие были.
In this guide, we’re going to show you how to extract date from string in Excel by using formulas and VBA.
Download Macro-Free Workbook
Download Workbook
Note that, there isn’t a single formula or approach that can handle all scenarios. Extracting dates from strings that is not following a specific pattern is one of the few things Excel cannot handle. You almost need an AI to be able to encapsulate every possible scenario. The good thing is that we are going to offer you multiple ways to parse the date.
Data
We have generated strings that included dates using slash (/) as day-month-year separator and using US-type (month/day/year) dates. Thus, if your date format is different, you may see errors (empty cells because of IFERROR functions) after opening our file. Update the dates according to your localization settings. Also, do not forget to update the slash characters if your data includes dates with other separators like dot (.) or hyphen (-).
Formula for extracting date from string
The logic behind the formulas we will introduce is to locate the pattern that resembles a date. Once the potential date value’s location is found, we can parse it easily.
The tricky part is to select a correct pattern which is suitable with your raw data. A date can be in many forms:
- 01/07/2022
- 1/7/2022
- 1/7/22
- 1/12/2022
- 12/1/2022
- 12/1
- 12/2022
If your raw data contains more than one or two patterns the formula solution may not work unless you do not want to create extremely long formulas.
In our sample formula, we used «01/07/2022» format. Thus, we assume the date values in the data to follow the rules below:
- US Date format
- Month and day are two digits
- Year uses four digits
- Each unit is separated by slash «/»
- A date contains 10 characters including delimiters
Based on these assumptions, we can use «/??/» keyword with the SEARCH function to locate the date. The SEARCH function can use the wildcards to locate a pattern instead of an exact string. Because a question mark (?) represents a single character, «/??/» refers 2 characters between slashes just like the day part of a date.
The SEARCH function returns the position number where the keyword starts if there is a matching string.
Change the pattern keyword based on your data. For example, «.??.» or ??-????
Subtract the position by 2 to find where the date starts.
Once the date is located, you can use the MID function to parse it. The MID function needs the position of the string you want to parse and its length. Because we assume the date format is «mm/dd/yyyy», the length will be 10.
=MID(<data>,SEARCH(«/??/»,<data>,1)-2,<date length>)
Although, the formula looks like its working, it will return any characters matching the pattern i.e. letters.
This is where the DATEVALUE function comes handy. The function can convert text-based date/time values into actual dates. The function returns #VALUE! error if the supplied text is not a valid date. You can use the DATEVALUE function to verify dates. The IFERROR function can wrap the formula to cover scenarios without date.
=IFERROR(DATEVALUE(MID(<data>,SEARCH(«/??/»,<data>,1)-2,<date length>)),»»)
Although this formula is suitable for our example, it’s obvious that it will fail for others. A few examples:
- A single-digit month date without a space in front: cells C6, C9
- A text containing similar string before the actual date: cell C8
- Single-digit month and days: cells between C19 and C25
- Double-digit years: cells between C26 and C32
Using VBA for extracting date from string
An alternative to the Excel formulas is to create your own function by using VBA. The VBA-based functions, also known as user defined functions (UDF), can be used as regular formulas once they are written and saved properly.
VBA has two dedicated methods which give a particular advantage for extracting a date from a string.
- The Split method can separate words or strings separated by spaces.
- The DateValue method can validate dates better than its formula counterpart.
Obviously, this method is not foolproof neither. The date values should be separated from other text by a space character. On the other hand, you are not limited with a certain pattern. Thus, number of digits in units are not significant.
You can copy and paste the following code into a module and start using it right away. Just do not forget to save your Excel file as an Excel Macro-Enabled Workbook (XLSM) rather than a regular workbook.
Function ExtractDate(str As String) On Error GoTo errHandler Dim i As Integer, dt As Date, arr() As String, temp As String dt = 0 arr = Split(str) For i = LBound(arr) To UBound(arr) temp = arr(i) If IsDate(temp) And Len(temp) > 5 Then dt = DateValue(temp) Exit For End If Next i cont: ExtractDate = dt Exit Function errHandler: dt = 0 Resume cont End Function
Once you paste the code, use it in your worksheet by giving a reference to the data cell.
=IF(ExtractDate(<data>)=0,»»,ExtractDate(<data>))
The equals to zero (0) condition is to avoid zero (0) values. Otherwise, the function will return zero (0) when it cannot find a valid date.
As you can see either approach is far from perfection. However, you have more than one option to extract date from string.