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

Вход

Регистрация

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

 

= Мир MS Excel/Работа с текстом. Извлечение части текста. - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Работа с текстом. Извлечение части текста. (Формулы/Formulas)
Работа с текстом. Извлечение части текста.
Ralf Дата: Пятница, 15.04.2016, 17:06 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 71
Репутация: 5 ±
Замечаний: 0% ±

Салют!
Понадобилось извлечь из выгруженной 1С-формы дату и № счёта, со счётом вроде проблем нет, а с датой посложнее - может меняться количество символов с конца (время 23:59:59 и 0:00:00, также и дата)
Какие есть более изящные идеи для возврата даты и номера счёта (может быть, пользовательские функции?). Думаю надо как-то привязаться к "Реализация товаров и услуг " и " от ", поскольку эти фрагменты фразы неизменны.
К сообщению приложен файл: 4692676.xlsx(10Kb)
 
Ответить
СообщениеСалют!
Понадобилось извлечь из выгруженной 1С-формы дату и № счёта, со счётом вроде проблем нет, а с датой посложнее - может меняться количество символов с конца (время 23:59:59 и 0:00:00, также и дата)
Какие есть более изящные идеи для возврата даты и номера счёта (может быть, пользовательские функции?). Думаю надо как-то привязаться к "Реализация товаров и услуг " и " от ", поскольку эти фрагменты фразы неизменны.

Автор - Ralf
Дата добавления - 15.04.2016 в 17:06
pabchek Дата: Пятница, 15.04.2016, 17:13 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 664
Репутация: 147 ±
Замечаний: 0% ±

Excel 2007
Так? Для даты
Код
=--ПСТР(C1;ПОИСК("от";C1)+3;99)

ну и для номера накладной
Код
=--ПСТР(C1;ПОИСК("услуг";C1)+6;11)


"Учиться, учиться и еще раз учиться!"
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
Группа: Модераторы
Ранг: Экселист
Сообщений: 9783
Репутация: 4134 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Чисто дату уще так можно
Код
=--ПСТР(C1;ПОИСК("??.";C1);10)

Со временем
Код
=--ПСТР(C1;ПОИСК("??.";C1);99)

Если предварительный текст всегда одинаков и накладная из 11 символов, то номер можно так
Код
=--ПСТР(C1;28;11)
К сообщению приложен файл: 4692676_1.xlsx(10Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЧисто дату уще так можно
Код
=--ПСТР(C1;ПОИСК("??.";C1);10)

Со временем
Код
=--ПСТР(C1;ПОИСК("??.";C1);99)

Если предварительный текст всегда одинаков и накладная из 11 символов, то номер можно так
Код
=--ПСТР(C1;28;11)

Автор - _Boroda_
Дата добавления - 15.04.2016 в 18:53
sv2014 Дата: Пятница, 15.04.2016, 19:36 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 37 ±
Замечаний: 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]
К сообщению приложен файл: example_15_04_2.xls(34Kb)


Сообщение отредактировал 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, и вам спасибо, добавил функции в копилку - пригодятся


Сообщение отредактировал Ralf - Пятница, 15.04.2016, 19:44
 
Ответить
Сообщение_Boroda_,
В этой форме пока что так - 28 и 11. А "??." это любые 2 символа перед первой встретившейся точкой?

sv2014, и вам спасибо, добавил функции в копилку - пригодятся

Автор - Ralf
Дата добавления - 15.04.2016 в 19:41
_Boroda_ Дата: Пятница, 15.04.2016, 19:48 | Сообщение № 7
Группа: Модераторы
Ранг: Экселист
Сообщений: 9783
Репутация: 4134 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А "??." это любые 2 символа перед первой встретившейся точкой?

Ага, они.
А звездочка - любое количество символов.
А если нужно найти ПОИСКом именно знаки ? или *, то перед ними ставят тильду ПОИСК("~*";...


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
А "??." это любые 2 символа перед первой встретившейся точкой?

Ага, они.
А звездочка - любое количество символов.
А если нужно найти ПОИСКом именно знаки ? или *, то перед ними ставят тильду ПОИСК("~*";...

Автор - _Boroda_
Дата добавления - 15.04.2016 в 19:48
pabchek Дата: Пятница, 15.04.2016, 23:17 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 664
Репутация: 147 ±
Замечаний: 0% ±

Excel 2007
=--ПСТР(C1;28;11)

извращенец)))


"Учиться, учиться и еще раз учиться!"
WM: R399923528092
 
Ответить
Сообщение
=--ПСТР(C1;28;11)

извращенец)))

Автор - pabchek
Дата добавления - 15.04.2016 в 23:17
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Работа с текстом. Извлечение части текста. (Формулы/Formulas)
Страница 1 из 11
Поиск:

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