Работа с текстом. Извлечение части текста.
Ralf
Дата: Пятница, 15.04.2016, 17:06 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация:
5
±
Замечаний:
0% ±
Салют! Понадобилось извлечь из выгруженной 1С-формы дату и № счёта, со счётом вроде проблем нет, а с датой посложнее - может меняться количество символов с конца (время 23:59:59 и 0:00:00, также и дата) Какие есть более изящные идеи для возврата даты и номера счёта (может быть, пользовательские функции?). Думаю надо как-то привязаться к "Реализация товаров и услуг " и " от ", поскольку эти фрагменты фразы неизменны.
Салют! Понадобилось извлечь из выгруженной 1С-формы дату и № счёта, со счётом вроде проблем нет, а с датой посложнее - может меняться количество символов с конца (время 23:59:59 и 0:00:00, также и дата) Какие есть более изящные идеи для возврата даты и номера счёта (может быть, пользовательские функции?). Думаю надо как-то привязаться к "Реализация товаров и услуг " и " от ", поскольку эти фрагменты фразы неизменны. Ralf
Ответить
Сообщение Салют! Понадобилось извлечь из выгруженной 1С-формы дату и № счёта, со счётом вроде проблем нет, а с датой посложнее - может меняться количество символов с конца (время 23:59:59 и 0:00:00, также и дата) Какие есть более изящные идеи для возврата даты и номера счёта (может быть, пользовательские функции?). Думаю надо как-то привязаться к "Реализация товаров и услуг " и " от ", поскольку эти фрагменты фразы неизменны. Автор - Ralf Дата добавления - 15.04.2016 в 17:06
pabchek
Дата: Пятница, 15.04.2016, 17:13 |
Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация:
218
±
Замечаний:
0% ±
Excel 2007
Так? Для датыКод
=--ПСТР(C1;ПОИСК("от";C1)+3;99)
ну и для номера накладной Код
=--ПСТР(C1;ПОИСК("услуг";C1)+6;11)
Так? Для датыКод
=--ПСТР(C1;ПОИСК("от";C1)+3;99)
ну и для номера накладной Код
=--ПСТР(C1;ПОИСК("услуг";C1)+6;11)
pabchek
"Учиться, учиться и еще раз учиться!" WM: R399923528092
Сообщение отредактировал pabchek - Пятница, 15.04.2016, 17:17
Ответить
Сообщение Так? Для датыКод
=--ПСТР(C1;ПОИСК("от";C1)+3;99)
ну и для номера накладной Код
=--ПСТР(C1;ПОИСК("услуг";C1)+6;11)
Автор - pabchek Дата добавления - 15.04.2016 в 17:13
Ralf
Дата: Пятница, 15.04.2016, 18:09 |
Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация:
5
±
Замечаний:
0% ±
pabchek , благодарю!
Ответить
Сообщение pabchek , благодарю!Автор - Ralf Дата добавления - 15.04.2016 в 18:09
_Boroda_
Дата: Пятница, 15.04.2016, 18:53 |
Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация:
6481
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Чисто дату уще так можноКод
=--ПСТР(C1;ПОИСК("??.";C1);10)
Со временемКод
=--ПСТР(C1;ПОИСК("??.";C1);99)
Если предварительный текст всегда одинаков и накладная из 11 символов, то номер можно так
Чисто дату уще так можноКод
=--ПСТР(C1;ПОИСК("??.";C1);10)
Со временемКод
=--ПСТР(C1;ПОИСК("??.";C1);99)
Если предварительный текст всегда одинаков и накладная из 11 символов, то номер можно так _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Чисто дату уще так можноКод
=--ПСТР(C1;ПОИСК("??.";C1);10)
Со временемКод
=--ПСТР(C1;ПОИСК("??.";C1);99)
Если предварительный текст всегда одинаков и накладная из 11 символов, то номер можно так Автор - _Boroda_ Дата добавления - 15.04.2016 в 18:53
sv2014
Дата: Пятница, 15.04.2016, 19:36 |
Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация:
61
±
Замечаний:
0% ±
Excel 2013
Ralf , вариант функций uuu1 номер в столбце D uuu2 дата в столбце F uuu3 время в столбце H [vba]Код
Function uuu1$(t$) With CreateObject("VBScript.RegExp"): .Pattern = " услуг (\d+)" uuu1 = .Execute(t)(0).Submatches(0) End With End Function
[/vba] [vba]Код
Function uuu2$(t$) With CreateObject("VBScript.RegExp"): .Pattern = " от (\d+\.\d+\.\d+)" uuu2 = .Execute(t)(0).Submatches(0) End With End Function
[/vba] [vba]Код
Function uuu3$(t$) With CreateObject("VBScript.RegExp"): .Pattern = " \d+:\d+:\d+" uuu3 = .Execute(t)(0) End With End Function
[/vba]
Ralf , вариант функций uuu1 номер в столбце D uuu2 дата в столбце F uuu3 время в столбце H [vba]Код
Function uuu1$(t$) With CreateObject("VBScript.RegExp"): .Pattern = " услуг (\d+)" uuu1 = .Execute(t)(0).Submatches(0) End With End Function
[/vba] [vba]Код
Function uuu2$(t$) With CreateObject("VBScript.RegExp"): .Pattern = " от (\d+\.\d+\.\d+)" uuu2 = .Execute(t)(0).Submatches(0) End With End Function
[/vba] [vba]Код
Function uuu3$(t$) With CreateObject("VBScript.RegExp"): .Pattern = " \d+:\d+:\d+" uuu3 = .Execute(t)(0) End With End Function
[/vba]sv2014
Сообщение отредактировал sv2014 - Пятница, 15.04.2016, 19:37
Ответить
Сообщение Ralf , вариант функций uuu1 номер в столбце D uuu2 дата в столбце F uuu3 время в столбце H [vba]Код
Function uuu1$(t$) With CreateObject("VBScript.RegExp"): .Pattern = " услуг (\d+)" uuu1 = .Execute(t)(0).Submatches(0) End With End Function
[/vba] [vba]Код
Function uuu2$(t$) With CreateObject("VBScript.RegExp"): .Pattern = " от (\d+\.\d+\.\d+)" uuu2 = .Execute(t)(0).Submatches(0) End With End Function
[/vba] [vba]Код
Function uuu3$(t$) With CreateObject("VBScript.RegExp"): .Pattern = " \d+:\d+:\d+" uuu3 = .Execute(t)(0) End With End Function
[/vba]Автор - sv2014 Дата добавления - 15.04.2016 в 19:36
Ralf
Дата: Пятница, 15.04.2016, 19:41 |
Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация:
5
±
Замечаний:
0% ±
_Boroda_ , В этой форме пока что так - 28 и 11. А "??." это любые 2 символа перед первой встретившейся точкой? sv2014 , и вам спасибо, добавил функции в копилку - пригодятся
_Boroda_ , В этой форме пока что так - 28 и 11. А "??." это любые 2 символа перед первой встретившейся точкой? sv2014 , и вам спасибо, добавил функции в копилку - пригодятсяRalf
Сообщение отредактировал Ralf - Пятница, 15.04.2016, 19:44
Ответить
Сообщение _Boroda_ , В этой форме пока что так - 28 и 11. А "??." это любые 2 символа перед первой встретившейся точкой? sv2014 , и вам спасибо, добавил функции в копилку - пригодятсяАвтор - Ralf Дата добавления - 15.04.2016 в 19:41
_Boroda_
Дата: Пятница, 15.04.2016, 19:48 |
Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация:
6481
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
А "??." это любые 2 символа перед первой встретившейся точкой?
Ага, они. А звездочка - любое количество символов. А если нужно найти ПОИСКом именно знаки ? или *, то перед ними ставят тильду ПОИСК("~*";...
А "??." это любые 2 символа перед первой встретившейся точкой?
Ага, они. А звездочка - любое количество символов. А если нужно найти ПОИСКом именно знаки ? или *, то перед ними ставят тильду ПОИСК("~*";..._Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение А "??." это любые 2 символа перед первой встретившейся точкой?
Ага, они. А звездочка - любое количество символов. А если нужно найти ПОИСКом именно знаки ? или *, то перед ними ставят тильду ПОИСК("~*";...Автор - _Boroda_ Дата добавления - 15.04.2016 в 19:48
pabchek
Дата: Пятница, 15.04.2016, 23:17 |
Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация:
218
±
Замечаний:
0% ±
Excel 2007
"Учиться, учиться и еще раз учиться!" WM: R399923528092
Ответить
Сообщение извращенец)))Автор - pabchek Дата добавления - 15.04.2016 в 23:17