Страницы: 1
RSS
Преобразование словестной даты в циферное выражение
 
Здравствуйте. Инфа преобразована из пдф в иксель и дата получилась 12 Mar, 2023. Мне нужно 12.03.2023. Изменение формата на ДАТА не дает никаких результатов. Сам иксель на русском. Может кто то сталкивался. Помогите пожалуйста.  
 
Power Query
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type date}})
in
    #"Changed Type"
 
Цитата
дата получилась 12 Mar, 2023. Мне нужно 12.03.2023.
UDF
Код
Function iDate(cell As String) As Date
Dim temp As String
Dim iMonth As String
Dim n As Integer
  n = Len(Split(cell, " ")(0))
    temp = Replace(cell, ",", "")
     iMonth = Split(Split(cell, ", ")(0), " ")(1)
    Select Case iMonth
     Case "Jan": Mid(temp, n + 2, 3) = "янв"
     Case "Feb": Mid(temp, n + 2, 3) = "фев"
     Case "Mar": Mid(temp, n + 2, 3) = "мар"
     Case "Apr": Mid(temp, n + 2, 3) = "апр"
     Case "May": Mid(temp, n + 2, 3) = "май"
     Case "Jun": Mid(temp, n + 2, 3) = "июн"
     Case "Jul": Mid(temp, n + 2, 3) = "июл"
     Case "Aug": Mid(temp, n + 2, 3) = "авг"
     Case "Sep": Mid(temp, n + 2, 3) = "сен"
     Case "Oct": Mid(temp, n + 2, 3) = "окт"
     Case "Nov": Mid(temp, n + 2, 3) = "ноя"
     Case "Dec": Mid(temp, n + 2, 3) = "дек"
    End Select
  iDate = CDate(temp)
End Function
 
Kuzmich, а если появятся месяцы ещё и на французском и немецком языках )
 
=DATE(LEFT(RIGHT(A2;5);4);FIND(MID(A2;FIND(" ";A2)+2;2);" anebarpraiunulugepktovec")/2;LEFT(A2;2))

Что касаемо языка, то без понимания, что это за язык будет очень сложно, уж слишком много вариантов.
Русский , Англ. Нем. Фр. Ит. Исп.

Код
=DATE(LEFT(RIGHT(A2;5);4);MAX((COUNTIF(A2;"*"&SUBSTITUTE(TEXT(DATE(;{1;2;3;4;5;6;7;8;9;10;11;12};1);"[$-"&{407\409\"40C"\410\419\"C0A"}&"]МММ");".";)&"*")*{1;2;3;4;5;6;7;8;9;10;11;12}));LEFT(A2;2))

Без оптимизации и без учета регионалок ибо МММ - в данном случае RUS
По вопросам из тем форума, личку не читаю.
 
Было любопытно, можно ли сделать что-то универсальное. В открытых источниках, не копая сильно, таблица языков из 226 элементов 94 из них можно легко свести к 64 из за полного совпадения, остальные  могут содержать приколы в расхождении в одном или в двух месяцах. таким образом  можно сделать конечно таблицу чуть меньше чем 226x12 построенную автоматом, но даже массив из 226 нужно практически руками вписать для генерации. Максимальное количество уникальных получилось в Июне -  97.для разных языков. то есть чисто гипотетически можно заложить в таблицу 1098 названий и исходя из совпадения определить месяц.
 
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх