Преобразовать текст с английской датой в обычную дату
Pirojok
Дата: Пятница, 19.08.2016, 09:29 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Добрый день. Есть файл в нем написано значение даты на английском в формате 16-AUG-16. В данном случае в ячейке это форматом даты не является который мог эксель читать. Попробовал хотя бы в число перевести сначала, постоянно возвращает #ЗНАЧ Надо перевести в нормальный формат даты. В идеале 16.08.2016 Подскажите пожалуйста, можно что-нибудь придумать?
Добрый день. Есть файл в нем написано значение даты на английском в формате 16-AUG-16. В данном случае в ячейке это форматом даты не является который мог эксель читать. Попробовал хотя бы в число перевести сначала, постоянно возвращает #ЗНАЧ Надо перевести в нормальный формат даты. В идеале 16.08.2016 Подскажите пожалуйста, можно что-нибудь придумать? Pirojok
Ответить
Сообщение Добрый день. Есть файл в нем написано значение даты на английском в формате 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]
Вручную автозаменой или примерно вот такой макрос: допиши и подредактируй чуток [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
Сообщение отредактировал 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]
Добрый день. Выделяете ячейки и запускаете макрос [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
Яндекс: 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)
можно формулой Код
=--ЗАМЕНИТЬ(A2;4;3;(ПОИСК(ПСТР(A2;5;2);"anebarprayunulugenktovec")+1)/2)
так чуть элегантнее: Код
=--ЗАМЕНИТЬ(A2;4;3;ПОИСК(ПСТР(A2;5;2);"_anebarprayunulugenktovec")/2)
buchlotnik
Сообщение отредактировал 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
Много чего не знаю!!!!
Ответить
Сообщение Добавлю своё в виде 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
Ответить
Сообщение Спасибо огромное. Работает отлично и элегантно) Автор - 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
Ответить
Сообщение не отрабатывает в случае попадания сентября 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)
HORiSi , там в формуле одна буковка перепутана Код
=--ЗАМЕНИТЬ(F7;4;3;ПОИСК(ПСТР(F7;5;2);"_anebarprayunulugepktovec")/2)
krosav4ig
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
Буквочка неправильнаяКод
=--ЗАМЕНИТЬ(A7;4;3;ПОИСК(ПСТР(A7;5;2);"_anebarprayunulugepktovec")/2)
Буквочка неправильнаяКод
=--ЗАМЕНИТЬ(A7;4;3;ПОИСК(ПСТР(A7;5;2);"_anebarprayunulugepktovec")/2)
vikttur
Ответить
Сообщение Буквочка неправильнаяКод
=--ЗАМЕНИТЬ(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
Ответить
Сообщение 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
_anebarprayunulugepc tovec Была не одна буквочка перепутана :-)
_anebarprayunulugepc tovec Была не одна буквочка перепутана :-) bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Воскресенье, 17.02.2019, 20:46
Ответить
Сообщение _anebarprayunulugepc tovec Была не одна буквочка перепутана :-) Автор - bmv98rus Дата добавления - 17.02.2019 в 20:44
Nic70y
Дата: Воскресенье, 17.02.2019, 21:32 |
Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 8709
Репутация:
2260
±
Замечаний:
0% ±
Excel 2010
кстати (а может и нет) как-то файл нарисовал на эту тему, мож надо кому..
кстати (а может и нет) как-то файл нарисовал на эту тему, мож надо кому.. Nic70y
Ю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 правил форума. просьба самостоятельно отредактировать своё соот. сообщение, либо мне придётся обратиться к администрации с просьбой как-то решить данный вопрос другими методами, зарание спасибо за понимание.
HORiSi, сообщение №10 нарушает 5.l правил форума. просьба самостоятельно отредактировать своё соот. сообщение, либо мне придётся обратиться к администрации с просьбой как-то решить данный вопрос другими методами, зарание спасибо за понимание. Nic70y
Ю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
Ответить
Сообщение _anebarprayunulugepctovec
итак, правильная формула выглядит такКод
=--ЗАМЕНИТЬ(A2;4;3;ПОИСК(ПСТР(A2;5;2);"_anebarprayunulugepctovec")/2)
Автор - HORiSi Дата добавления - 20.12.2019 в 10:07