Обработка "кривых" дат
Leprotto
Дата: Понедельник, 14.08.2017, 13:30 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация:
2
±
Замечаний:
0% ±
Excel 2016
Всем привет! Решал задачку переноса таблицы, заполненной в ворде, в эксель. Талантов криво написать дату оказалось много Поэтому решил поделиться формульным решением, надеюсь кому-нибудь пригодится
Всем привет! Решал задачку переноса таблицы, заполненной в ворде, в эксель. Талантов криво написать дату оказалось много Поэтому решил поделиться формульным решением, надеюсь кому-нибудь пригодится Leprotto
Сообщение отредактировал Leprotto - Понедельник, 14.08.2017, 13:33
Ответить
Сообщение Всем привет! Решал задачку переноса таблицы, заполненной в ворде, в эксель. Талантов криво написать дату оказалось много Поэтому решил поделиться формульным решением, надеюсь кому-нибудь пригодится Автор - Leprotto Дата добавления - 14.08.2017 в 13:30
buchlotnik
Дата: Понедельник, 14.08.2017, 15:59 |
Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация:
929
±
Замечаний:
20% ±
2010, 2013, 2016 RUS / ENG
Вариант на регулярках - "до кучи" [vba]Код
Function gooddate(t$) Application.Volatile With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\D+" gooddate = .Replace(t, "") If Len(gooddate) < 6 Or Len(gooddate) > 8 Then gooddate = "дата не найдена": Exit Function .Pattern = "(\d{2})(\d{2})(19|20|\d{0})(\d{2})" gooddate = CDate(.Replace(gooddate, "$1.$2.$4")) End With End Function
[/vba]
Вариант на регулярках - "до кучи" [vba]Код
Function gooddate(t$) Application.Volatile With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\D+" gooddate = .Replace(t, "") If Len(gooddate) < 6 Or Len(gooddate) > 8 Then gooddate = "дата не найдена": Exit Function .Pattern = "(\d{2})(\d{2})(19|20|\d{0})(\d{2})" gooddate = CDate(.Replace(gooddate, "$1.$2.$4")) End With End Function
[/vba] buchlotnik
Ответить
Сообщение Вариант на регулярках - "до кучи" [vba]Код
Function gooddate(t$) Application.Volatile With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\D+" gooddate = .Replace(t, "") If Len(gooddate) < 6 Or Len(gooddate) > 8 Then gooddate = "дата не найдена": Exit Function .Pattern = "(\d{2})(\d{2})(19|20|\d{0})(\d{2})" gooddate = CDate(.Replace(gooddate, "$1.$2.$4")) End With End Function
[/vba] Автор - buchlotnik Дата добавления - 14.08.2017 в 15:59
alexa1965
Дата: Четверг, 17.08.2017, 09:41 |
Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 376
Репутация:
61
±
Замечаний:
0% ±
2003> 2019 >2016
Талантов криво написать дату оказалось много
Согласен полностью! Спасибо! Обязательно воспользуюсь Вашим решением
Талантов криво написать дату оказалось много
Согласен полностью! Спасибо! Обязательно воспользуюсь Вашим решениемalexa1965
Главное не быть балабастиком
Ответить
Сообщение Талантов криво написать дату оказалось много
Согласен полностью! Спасибо! Обязательно воспользуюсь Вашим решениемАвтор - alexa1965 Дата добавления - 17.08.2017 в 09:41
vitos88
Дата: Среда, 27.09.2017, 15:45 |
Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация:
5
±
Замечаний:
0% ±
А что если усложнить задачу, пусть исправляет дату "налету". Т.е. в той же ячейке, где ввели кривую дату. Интересно, так можно сделать?
А что если усложнить задачу, пусть исправляет дату "налету". Т.е. в той же ячейке, где ввели кривую дату. Интересно, так можно сделать? vitos88
Ответить
Сообщение А что если усложнить задачу, пусть исправляет дату "налету". Т.е. в той же ячейке, где ввели кривую дату. Интересно, так можно сделать? Автор - vitos88 Дата добавления - 27.09.2017 в 15:45
Leprotto
Дата: Среда, 27.09.2017, 15:58 |
Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация:
2
±
Замечаний:
0% ±
Excel 2016
Цитата
Интересно, так можно сделать?
Если только макросом, думаю формульно не получится
Цитата
Интересно, так можно сделать?
Если только макросом, думаю формульно не получитсяLeprotto
Ответить
Сообщение Цитата
Интересно, так можно сделать?
Если только макросом, думаю формульно не получитсяАвтор - Leprotto Дата добавления - 27.09.2017 в 15:58
vitos88
Дата: Среда, 27.09.2017, 16:05 |
Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация:
5
±
Замечаний:
0% ±
Ну да, макросом. И прошлое решение тоже было макросом.
Ну да, макросом. И прошлое решение тоже было макросом. vitos88
Ответить
Сообщение Ну да, макросом. И прошлое решение тоже было макросом. Автор - vitos88 Дата добавления - 27.09.2017 в 16:05
buchlotnik
Дата: Четверг, 28.09.2017, 07:53 |
Сообщение № 7
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация:
929
±
Замечаний:
20% ±
2010, 2013, 2016 RUS / ENG
Цитата
исправляет дату "налету". Т.е. в той же ячейке
угу и сколько таких ячеек? или "все"? и как интеллектуально распознать, что именно дату пытались ввести? мне кажется вопрос не для готовых решений
Цитата
исправляет дату "налету". Т.е. в той же ячейке
угу и сколько таких ячеек? или "все"? и как интеллектуально распознать, что именно дату пытались ввести? мне кажется вопрос не для готовых решенийbuchlotnik
Ответить
Сообщение Цитата
исправляет дату "налету". Т.е. в той же ячейке
угу и сколько таких ячеек? или "все"? и как интеллектуально распознать, что именно дату пытались ввести? мне кажется вопрос не для готовых решенийАвтор - buchlotnik Дата добавления - 28.09.2017 в 07:53
vitos88
Дата: Четверг, 28.09.2017, 10:04 |
Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация:
5
±
Замечаний:
0% ±
buchlotnik , допустим, в определённом столбце под названием дата :). А "кривые" даты распознавать по тем же шаблонам, что и в готовом решении.
buchlotnik , допустим, в определённом столбце под названием дата :). А "кривые" даты распознавать по тем же шаблонам, что и в готовом решении.vitos88
Ответить
Сообщение buchlotnik , допустим, в определённом столбце под названием дата :). А "кривые" даты распознавать по тем же шаблонам, что и в готовом решении.Автор - vitos88 Дата добавления - 28.09.2017 в 10:04
_Boroda_
Дата: Четверг, 28.09.2017, 10:09 |
Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация:
6503
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
мне кажется вопрос не для готовых решений
Поддерживаю. Если кому нужно - можно создать отдельную тему с этим вопросом
мне кажется вопрос не для готовых решений
Поддерживаю. Если кому нужно - можно создать отдельную тему с этим вопросом_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение мне кажется вопрос не для готовых решений
Поддерживаю. Если кому нужно - можно создать отдельную тему с этим вопросомАвтор - _Boroda_ Дата добавления - 28.09.2017 в 10:09
vitos88
Дата: Четверг, 28.09.2017, 10:33 |
Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация:
5
±
Замечаний:
0% ±
_Boroda_ , не особо нужно, но иногда задумываюсь об этом, когда ввожу кривую дату. На счёт отдельной темы - я за! Мало ли кому в будущем понадобится. Где лучше её создать?
_Boroda_ , не особо нужно, но иногда задумываюсь об этом, когда ввожу кривую дату. На счёт отдельной темы - я за! Мало ли кому в будущем понадобится. Где лучше её создать?vitos88
Ответить
Сообщение _Boroda_ , не особо нужно, но иногда задумываюсь об этом, когда ввожу кривую дату. На счёт отдельной темы - я за! Мало ли кому в будущем понадобится. Где лучше её создать?Автор - vitos88 Дата добавления - 28.09.2017 в 10:33
Leprotto
Дата: Четверг, 28.09.2017, 10:41 |
Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация:
2
±
Замечаний:
0% ±
Excel 2016
Цитата
когда ввожу кривую дату
для этого есть стандартная проверка данных vitos88 , прочитайте первое сообщение...Цитата
Решал задачку переноса таблицы, заполненной в ворде , в эксель.
Я предложил чисто формульное решение, buchlotnik , дополнил его красивой Function. В пределах темы, думаю, этого достаточно!
Цитата
когда ввожу кривую дату
для этого есть стандартная проверка данных vitos88 , прочитайте первое сообщение...Цитата
Решал задачку переноса таблицы, заполненной в ворде , в эксель.
Я предложил чисто формульное решение, buchlotnik , дополнил его красивой Function. В пределах темы, думаю, этого достаточно!Leprotto
Ответить
Сообщение Цитата
когда ввожу кривую дату
для этого есть стандартная проверка данных vitos88 , прочитайте первое сообщение...Цитата
Решал задачку переноса таблицы, заполненной в ворде , в эксель.
Я предложил чисто формульное решение, buchlotnik , дополнил его красивой Function. В пределах темы, думаю, этого достаточно!Автор - Leprotto Дата добавления - 28.09.2017 в 10:41