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

Вход

Регистрация

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

 

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

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

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


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

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

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

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


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
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
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 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]
К сообщению приложен файл: example_15_04_2.xls (34.0 Kb)


Сообщение отредактировал 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
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 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
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация: 218 ±
Замечаний: 0% ±

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

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


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

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

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

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