Страницы: 1
RSS
изменение формата даты и времени из американского на русский
 
Добрый вечер, сообщество!

Традиционно взываю к коллективному разуму за помощью.
В выгрузке данных получаю дату и время в одной ячейке в формате "ММ/ДД/ГГ чч:мм:сс АМ/РМ", т.е. в "том самом" US формате.
Задача - изменить формат формулами в понятный для соотечественников "ДД/ММ/ГГГГ чч:мм:сс"

В целом, с задачей справился. Но! Смущают пара деталей.
1. Если месяц, минуты и секунды до 10, то отображается один символ без 0 в начале.
2. Длина формулы. Уверен, что ее можно укоротить, но пока не понимаю как. Но это вторично, для саморазвития.

Файл с примером приложил.
Заранее благодарю всех отозвавшихся.
если вас незаслуженно обидели, вернитесь и заслужите
 
Вот тут:http://forum.ixbt.com/topic.cgi?id=23:1283 человек задал похожий вопрос (только наоборот английские даты нужны были)... ответ пришел через 17 лет) Надеюсь Вам повезёт и здесь помогут быстрее)
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
вариант
Код
=ДАТА(2000+ПСТР(A2;7;2);--ЛЕВСИМВ(A2;2);--ПСТР(A2;4;2))+(СЖПРОБЕЛЫ(ПСТР(A2;ПОИСК(" ";A2)+1;8))+ЕСЛИ(ЕЧИСЛО(ПОИСК("PM";A2));"12:00:00";0))
Лень двигатель прогресса, доказано!!!
 
еще вариант:
Код
=ДАТА("20"&ПСТР(A2;7;2);ПСТР(A2;1;2);ПСТР(A2;4;2))+ВРЕМЗНАЧ(ПСТР(A2;10;ДЛСТР(A2)-12))+ЕСЛИ(ПРАВСИМВ(A2;2)="PM";0,5;0)
Изменено: webley - 23.11.2017 16:57:35
 
Код
=TEXT(DATEVALUE(MID(A2;4;2)&"."&LEFT(A2;2)&"."&MID(A2;7;2))+TIMEVALUE(TRIM(MID(A2;9;12)));"ДД.ММ.ГГГГ чч:мм:сс")
Изменено: БМВ - 23.11.2017 17:05:35
По вопросам из тем форума, личку не читаю.
 
подсократил свое
Код
=--(ПСТР(A2;4;2)&"."&ЗАМЕНИТЬ(ЛЕВСИМВ(A2;8);3;4;"."))+ПСТР(A2;10;8)+ЕСЛИ(ЕЧИСЛО(ПОИСК("PM";A2));"12:00:00";0)
Лень двигатель прогресса, доказано!!!
 
Благодарю всех за решение вопроса, в результате которого увидел, что шел я кругами вокруг очевидного.

Сейчас попросил оператора, присылающего эту выгрузку сделать выгрузку из января. Оказалось, что месяца до октября (10 месяц) могут выгружаться без впередистоящего 0. Т.е, май - 5, январь - 1.
Если брать это новое условие, то ни одна из предложенных формул, включая мою, не работает. :(
если вас незаслуженно обидели, вернитесь и заслужите
 
Сергей, что означает конструкция из двух минусов после равно?
если вас незаслуженно обидели, вернитесь и заслужите
 
Перед тем, как спросить - набрать в поиске по форуму никак?
 
Цитата
teofast написал:
то ни одна из предложенных формул
ну тогда проще udf:
Код
Public Function RuDate(dt As String)
    Dim arr() As String
    arr = Split(Left(dt, InStr(1, dt, " ") - 1), "/")
    RuDate = DateSerial(arr(2) + 2000, Int(arr(0)), Int(arr(1))) + TimeValue(Right(dt, Len(dt) - InStr(1, dt, " ")))
End Function
Страницы: 1
Читают тему
Наверх