Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Преобразовать текст с английской датой в обычную дату - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Преобразовать текст с английской датой в обычную дату (Формулы/Formulas)
Преобразовать текст с английской датой в обычную дату
Pirojok Дата: Пятница, 19.08.2016, 09:29 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день.
Есть файл в нем написано значение даты на английском в формате 16-AUG-16. В данном случае в ячейке это форматом даты не является который мог эксель читать.
Попробовал хотя бы в число перевести сначала, постоянно возвращает #ЗНАЧ
Надо перевести в нормальный формат даты. В идеале 16.08.2016
Подскажите пожалуйста, можно что-нибудь придумать?
К сообщению приложен файл: __test.xlsx (7.9 Kb)
 
Ответить
СообщениеДобрый день.
Есть файл в нем написано значение даты на английском в формате 16-AUG-16. В данном случае в ячейке это форматом даты не является который мог эксель читать.
Попробовал хотя бы в число перевести сначала, постоянно возвращает #ЗНАЧ
Надо перевести в нормальный формат даты. В идеале 16.08.2016
Подскажите пожалуйста, можно что-нибудь придумать?

Автор - Pirojok
Дата добавления - 19.08.2016 в 09:29
Dudeeldude Дата: Пятница, 19.08.2016, 10:26 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 1 ±
Замечаний: 20% ±

Excel 2016
Вручную автозаменой или примерно вот такой макрос:
допиши и подредактируй чуток
[vba]
Код
Sub Replace1()

' Replace1

Cells.Replace What:="-JUN-", Replacement:=".01.", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Replace What:="-AUG-", Replacement:=".08.", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Replace What:="-DEC-", Replacement:=".12.", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Columns("A:A").ColumnWidth = 12.57
End Sub
[/vba]


Сообщение отредактировал Manyasha - Пятница, 19.08.2016, 10:43
 
Ответить
СообщениеВручную автозаменой или примерно вот такой макрос:
допиши и подредактируй чуток
[vba]
Код
Sub Replace1()

' Replace1

Cells.Replace What:="-JUN-", Replacement:=".01.", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Replace What:="-AUG-", Replacement:=".08.", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Replace What:="-DEC-", Replacement:=".12.", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Columns("A:A").ColumnWidth = 12.57
End Sub
[/vba]

Автор - Dudeeldude
Дата добавления - 19.08.2016 в 10:26
sboy Дата: Пятница, 19.08.2016, 10:26 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Выделяете ячейки и запускаете макрос
[vba]
Код
Sub DateENG()

en = Array("JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC")

rus = Array("янв", "фев", "март", "апр", "май", "июнь", "июль", "авг", "сен", "окт", "ноя", "дек")

            For Each cell In Selection
            With cell
                txt = Mid(.Value, 4, 3)
                For x = 0 To UBound(en)
                    If en(x) = txt Then
                    .Replace What:=txt, Replacement:=rus(x), LookAt:=xlPart, _
                        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                        ReplaceFormat:=False
                    .Value = CDate(.Value)
                    .NumberFormat = "dd.mmm.yy"
                    Exit For
                    End If
                Next x
               End With
            Next cell
End Sub
End Sub
[/vba]


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Выделяете ячейки и запускаете макрос
[vba]
Код
Sub DateENG()

en = Array("JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC")

rus = Array("янв", "фев", "март", "апр", "май", "июнь", "июль", "авг", "сен", "окт", "ноя", "дек")

            For Each cell In Selection
            With cell
                txt = Mid(.Value, 4, 3)
                For x = 0 To UBound(en)
                    If en(x) = txt Then
                    .Replace What:=txt, Replacement:=rus(x), LookAt:=xlPart, _
                        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                        ReplaceFormat:=False
                    .Value = CDate(.Value)
                    .NumberFormat = "dd.mmm.yy"
                    Exit For
                    End If
                Next x
               End With
            Next cell
End Sub
End Sub
[/vba]

Автор - sboy
Дата добавления - 19.08.2016 в 10:26
buchlotnik Дата: Пятница, 19.08.2016, 10:42 | Сообщение № 4
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
можно формулой
Код
=--ЗАМЕНИТЬ(A2;4;3;(ПОИСК(ПСТР(A2;5;2);"anebarprayunulugenktovec")+1)/2)

так чуть элегантнее:
Код
=--ЗАМЕНИТЬ(A2;4;3;ПОИСК(ПСТР(A2;5;2);"_anebarprayunulugenktovec")/2)
К сообщению приложен файл: _test_.xlsx (8.5 Kb)


Сообщение отредактировал buchlotnik - Пятница, 19.08.2016, 11:18
 
Ответить
Сообщениеможно формулой
Код
=--ЗАМЕНИТЬ(A2;4;3;(ПОИСК(ПСТР(A2;5;2);"anebarprayunulugenktovec")+1)/2)

так чуть элегантнее:
Код
=--ЗАМЕНИТЬ(A2;4;3;ПОИСК(ПСТР(A2;5;2);"_anebarprayunulugenktovec")/2)

Автор - buchlotnik
Дата добавления - 19.08.2016 в 10:42
Roman777 Дата: Пятница, 19.08.2016, 10:52 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Добавлю своё в виде UDF:
[vba]
Код
Function EngDat(r As Range)
Dim o As Object
Set o = CreateObject("Scripting.Dictionary")
Set objRegExp = CreateObject("VBScript.RegExp")
objRegExp.Global = True
objRegExp.Pattern = "(\-\d{2}|\d{2}\-)"
Temp$ = objRegExp.Replace(r, "")
o.Add "JAN", "01"
o.Add "FEB", "02"
o.Add "MAR", "03"
o.Add "APR", "04"
o.Add "MAY", "05"
o.Add "JUN", "06"
o.Add "JUL", "07"
o.Add "AUG", "08"
o.Add "SEP", "09"
o.Add "OCT", "10"
o.Add "NOV", "11"
o.Add "DEC", "12"
objRegExp.Pattern = "\D{5}"
EngDat = objRegExp.Replace(r, "." & o(Temp) & ".")
End Function
[/vba]


Много чего не знаю!!!!
 
Ответить
СообщениеДобавлю своё в виде UDF:
[vba]
Код
Function EngDat(r As Range)
Dim o As Object
Set o = CreateObject("Scripting.Dictionary")
Set objRegExp = CreateObject("VBScript.RegExp")
objRegExp.Global = True
objRegExp.Pattern = "(\-\d{2}|\d{2}\-)"
Temp$ = objRegExp.Replace(r, "")
o.Add "JAN", "01"
o.Add "FEB", "02"
o.Add "MAR", "03"
o.Add "APR", "04"
o.Add "MAY", "05"
o.Add "JUN", "06"
o.Add "JUL", "07"
o.Add "AUG", "08"
o.Add "SEP", "09"
o.Add "OCT", "10"
o.Add "NOV", "11"
o.Add "DEC", "12"
objRegExp.Pattern = "\D{5}"
EngDat = objRegExp.Replace(r, "." & o(Temp) & ".")
End Function
[/vba]

Автор - Roman777
Дата добавления - 19.08.2016 в 10:52
Pirojok Дата: Вторник, 30.08.2016, 11:09 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Спасибо огромное. Работает отлично и элегантно)
 
Ответить
СообщениеСпасибо огромное. Работает отлично и элегантно)

Автор - Pirojok
Дата добавления - 30.08.2016 в 11:09
HORiSi Дата: Воскресенье, 17.02.2019, 16:37 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
так чуть элегантнее:


не отрабатывает в случае попадания сентября
01-Sep-15
дает
#ЗНАЧ!
 
Ответить
Сообщение
так чуть элегантнее:


не отрабатывает в случае попадания сентября
01-Sep-15
дает
#ЗНАЧ!

Автор - HORiSi
Дата добавления - 17.02.2019 в 16:37
krosav4ig Дата: Воскресенье, 17.02.2019, 16:50 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
HORiSi, там в формуле одна буковка перепутана
Код
=--ЗАМЕНИТЬ(F7;4;3;ПОИСК(ПСТР(F7;5;2);"_anebarprayunulugepktovec")/2)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеHORiSi, там в формуле одна буковка перепутана
Код
=--ЗАМЕНИТЬ(F7;4;3;ПОИСК(ПСТР(F7;5;2);"_anebarprayunulugepktovec")/2)

Автор - krosav4ig
Дата добавления - 17.02.2019 в 16:50
vikttur Дата: Воскресенье, 17.02.2019, 16:54 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Буквочка неправильная
Код
=--ЗАМЕНИТЬ(A7;4;3;ПОИСК(ПСТР(A7;5;2);"_anebarprayunulugepktovec")/2)
 
Ответить
СообщениеБуквочка неправильная
Код
=--ЗАМЕНИТЬ(A7;4;3;ПОИСК(ПСТР(A7;5;2);"_anebarprayunulugepktovec")/2)

Автор - vikttur
Дата добавления - 17.02.2019 в 16:54
HORiSi Дата: Воскресенье, 17.02.2019, 20:40 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
krosav4ig, vikttur,
Теперь на октябре ломается :)
21-Oct-13
#ЗНАЧ!

Если кому интересно, то нашел для записи формата 01-Sep-15 такой вариант
Код
=--(ЛЕВБ(A1;2)&-ПОИСК(ПСТР(A1;4;3);"  JanFebMarAprMayJunJulAugSepOctNovDec")/3&-ПРАВБ(A1;2))
 
Ответить
Сообщениеkrosav4ig, vikttur,
Теперь на октябре ломается :)
21-Oct-13
#ЗНАЧ!

Если кому интересно, то нашел для записи формата 01-Sep-15 такой вариант
Код
=--(ЛЕВБ(A1;2)&-ПОИСК(ПСТР(A1;4;3);"  JanFebMarAprMayJunJulAugSepOctNovDec")/3&-ПРАВБ(A1;2))

Автор - HORiSi
Дата добавления - 17.02.2019 в 20:40
bmv98rus Дата: Воскресенье, 17.02.2019, 20:44 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
_anebarprayunulugepctovec
Была не одна буквочка перепутана :-)


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Воскресенье, 17.02.2019, 20:46
 
Ответить
Сообщение_anebarprayunulugepctovec
Была не одна буквочка перепутана :-)

Автор - bmv98rus
Дата добавления - 17.02.2019 в 20:44
Nic70y Дата: Воскресенье, 17.02.2019, 21:32 | Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 8709
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
кстати (а может и нет) как-то файл нарисовал на эту тему,
мож надо кому..
К сообщению приложен файл: 005__.xlsx (13.9 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Воскресенье, 17.02.2019, 21:32
 
Ответить
Сообщениекстати (а может и нет) как-то файл нарисовал на эту тему,
мож надо кому..

Автор - Nic70y
Дата добавления - 17.02.2019 в 21:32
Nic70y Дата: Воскресенье, 17.02.2019, 22:02 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 8709
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
HORiSi, сообщение №10 нарушает 5.l правил форума.
просьба самостоятельно отредактировать своё соот. сообщение,
либо мне придётся обратиться к администрации с просьбой как-то решить данный вопрос другими методами,
зарание спасибо за понимание.


ЮMoney 41001841029809
 
Ответить
СообщениеHORiSi, сообщение №10 нарушает 5.l правил форума.
просьба самостоятельно отредактировать своё соот. сообщение,
либо мне придётся обратиться к администрации с просьбой как-то решить данный вопрос другими методами,
зарание спасибо за понимание.

Автор - Nic70y
Дата добавления - 17.02.2019 в 22:02
HORiSi Дата: Пятница, 20.12.2019, 10:07 | Сообщение № 14
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_anebarprayunulugepctovec


итак, правильная формула выглядит так
Код
=--ЗАМЕНИТЬ(A2;4;3;ПОИСК(ПСТР(A2;5;2);"_anebarprayunulugepctovec")/2)
 
Ответить
Сообщение
_anebarprayunulugepctovec


итак, правильная формула выглядит так
Код
=--ЗАМЕНИТЬ(A2;4;3;ПОИСК(ПСТР(A2;5;2);"_anebarprayunulugepctovec")/2)

Автор - HORiSi
Дата добавления - 20.12.2019 в 10:07
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Преобразовать текст с английской датой в обычную дату (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!