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

Вход

Регистрация

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

 

= Мир MS Excel/Разделение текста. - Мир MS Excel

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

Excel 2010
День добрый.
Возможно ли разделить текст? (см приложенный файл)
формула или макрос не важно.
Поиском по форуму нашёл похожие темы , но там тексты с разными разделительными символами.
у меня же нет таких символов, единственно есть нумерация римскими цифрами и арабскими.
но как это прикрутить для разделения не знаю.
К сообщению приложен файл: 4245794.xlsm (13.1 Kb)
 
Ответить
СообщениеДень добрый.
Возможно ли разделить текст? (см приложенный файл)
формула или макрос не важно.
Поиском по форуму нашёл похожие темы , но там тексты с разными разделительными символами.
у меня же нет таких символов, единственно есть нумерация римскими цифрами и арабскими.
но как это прикрутить для разделения не знаю.

Автор - ilikeread
Дата добавления - 06.10.2016 в 10:36
buchlotnik Дата: Четверг, 06.10.2016, 11:42 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Вариант на регулярках: [vba]
Код
Function rep(t$, i <img rel="usm" src="/sml2/wacko.gif" border="0" align="absmiddle" alt="%)" />
    Dim s$
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "\s([0-9IVX]+\.)"
        s = .Replace(t, "@$1")
        s = "@" & s
        .Pattern = "@[^@]+"
        s = .Execute(s)(i)
        s = Replace(s, "@", "")
        rep = s
    End With
End Function
[/vba]
К сообщению приложен файл: 4743301.xlsm (27.7 Kb)


Сообщение отредактировал buchlotnik - Четверг, 06.10.2016, 11:57
 
Ответить
СообщениеВариант на регулярках: [vba]
Код
Function rep(t$, i <img rel="usm" src="/sml2/wacko.gif" border="0" align="absmiddle" alt="%)" />
    Dim s$
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "\s([0-9IVX]+\.)"
        s = .Replace(t, "@$1")
        s = "@" & s
        .Pattern = "@[^@]+"
        s = .Execute(s)(i)
        s = Replace(s, "@", "")
        rep = s
    End With
End Function
[/vba]

Автор - buchlotnik
Дата добавления - 06.10.2016 в 11:42
Pelena Дата: Четверг, 06.10.2016, 12:01 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19182
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
А я перекинула в Word, там сделала несколько замен с помощью подстановочных знаков, а потом обратно в Excel
К сообщению приложен файл: 4685994.xlsm (22.2 Kb) · 1259680.docx (21.4 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеА я перекинула в Word, там сделала несколько замен с помощью подстановочных знаков, а потом обратно в Excel

Автор - Pelena
Дата добавления - 06.10.2016 в 12:01
buchlotnik Дата: Четверг, 06.10.2016, 12:12 | Сообщение № 4
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Цитата
А я перекинула в Word
прикол - я поступил также, собственно, паттерн для функции изначально в Word-е и написал
UPD
вот так поточнее будет: [vba]
Код
Function rep(t$, i%)
    Dim s$
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "\.(\d+)"
        s = .Replace(t, ",$1")
        .Pattern = "\s(([0-9]+|[IVX]+)\.)"
        s = .Replace(s, "@$1")
        s = "@" & s
        .Pattern = "@[^@]+"
        s = .Execute(s)(i)
        s = Replace(s, "@", "")
        rep = s
    End With
End Function
[/vba]
К сообщению приложен файл: 6297050.docx (20.5 Kb) · 7655013.xlsm (27.6 Kb)


Сообщение отредактировал buchlotnik - Четверг, 06.10.2016, 13:21
 
Ответить
Сообщение
Цитата
А я перекинула в Word
прикол - я поступил также, собственно, паттерн для функции изначально в Word-е и написал
UPD
вот так поточнее будет: [vba]
Код
Function rep(t$, i%)
    Dim s$
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "\.(\d+)"
        s = .Replace(t, ",$1")
        .Pattern = "\s(([0-9]+|[IVX]+)\.)"
        s = .Replace(s, "@$1")
        s = "@" & s
        .Pattern = "@[^@]+"
        s = .Execute(s)(i)
        s = Replace(s, "@", "")
        rep = s
    End With
End Function
[/vba]

Автор - buchlotnik
Дата добавления - 06.10.2016 в 12:12
ilikeread Дата: Четверг, 06.10.2016, 13:29 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
buchlotnik, Pelena, спасибо большое

Pelena, а можно поподробнее про Word (...там сделала несколько замен с помощью подстановочных знаков...)

buchlotnik, ...Вариант на регулярках:... не всё корректно разделил, но 99,9% работы выполнил

Что – ^0032([0-9IVX]@.)
На что - ^p\1
Это в найти-заменить нужно вставлять? попробовал не получилось.

UPD второй вариант отработал 100%
теперь задача понять и осознать как это работает


Сообщение отредактировал ilikeread - Четверг, 06.10.2016, 13:31
 
Ответить
Сообщениеbuchlotnik, Pelena, спасибо большое

Pelena, а можно поподробнее про Word (...там сделала несколько замен с помощью подстановочных знаков...)

buchlotnik, ...Вариант на регулярках:... не всё корректно разделил, но 99,9% работы выполнил

Что – ^0032([0-9IVX]@.)
На что - ^p\1
Это в найти-заменить нужно вставлять? попробовал не получилось.

UPD второй вариант отработал 100%
теперь задача понять и осознать как это работает

Автор - ilikeread
Дата добавления - 06.10.2016 в 13:29
buchlotnik Дата: Четверг, 06.10.2016, 13:43 | Сообщение № 6
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Цитата
попробовал не получилось
нужно включить подстановочные знаки (wildcards)

К сообщению приложен файл: 2477079.jpg (48.8 Kb)


Сообщение отредактировал buchlotnik - Четверг, 06.10.2016, 13:45
 
Ответить
Сообщение
Цитата
попробовал не получилось
нужно включить подстановочные знаки (wildcards)


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

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