Преобразование текста в дату в Excel

Преобразование текста в дату в Excel

Мне нужна ваша помощь в конвертации текста - «Цена НА ПЕРИОД С 08/01/21 ПО 15/01/21» на дату 15/01/2021.

Я использую формулу =DATE(RIGHT(TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100))&"20",4),MID(TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100))&"20",4,2),LEFT(TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100))&"20",2)), но получаю на выходе 15/01/2120 вместо 15/01/2021.

Может ли кто-нибудь помочь по вышеизложенному?

решение1

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

=LEFT(RIGHT(TRIM(Edited!A2),8),6) & RIGHT(RIGHT(TRIM(Edited!A2),8),2)+2000

введите описание изображения здесь

Примечание:

Это изолирует дату и преобразует 2-значный год в 4-значный год.
Это можно сделать короче, если вы используетеЭксель 365.
Результатом является строка, а не настоящая дата Excel.

ПРАВКА №1:

Если поставить месяц первым:

=MID(RIGHT(TRIM(Edited!A2),8),4,3) & LEFT(RIGHT(TRIM(Edited!A2),8),3) & RIGHT(RIGHT(TRIM(Edited!A2),8),2)+2000

ПРАВКА №2:

Если вы используетеЭксель 365, то вы создаете настоящую дату Excel с помощью:

=LET(d,RIGHT(TRIM(Edited!A2),8)    ,DATE(RIGHT(d,2)+2000,MID(d,4,2),LEFT(d,2)))

введите описание изображения здесь

решение2

Подходит ли вам этот простой способ?

=DATEVALUE(TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100)))

Как вы сказали,
=TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100))получает последнюю строку в предложении,
а затем =DATEVALUE()преобразует строку в данные datetime, и результат зависит от настроек локали вашего компьютера.
Кроме того, вы должны установить форматирование столбца как datetime и легко настроить его ( mm/dd/yyyyили dd/mm/yyyyт. д.).

Если вы знаете длину строки даты в конце и она фиксированная, то все будет проще: =DATEVALUE(RIGHT(TRIM(Edited!A2),8))

Связанный контент