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

Вход

Регистрация

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

 

= Мир MS Excel/Удаление слов, содержащих фрагменты. - Мир MS Excel

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

Excel 2007
Уважаемые, прошу вашей помощи!

есть ячейки в таблице с текстом такого формата:

[abc100de]aaaaaaacccccccddddddd xyzzzzzzzzzzzzz

rrrrrabc100deiiiiiiiiiiiii zyyyyxxxxxl

как удалить слова = непрерывный набор символов, где содержится фрагмент abc100de , чтобы получить ячейки вида

xyzzzzzzzzzzzzz

zyyyyxxxxxl

PS: удаляемое слово может быть в любом месте предложения
Заранее большая благодарность!
[moder]В файле покажите. И побольше различных вариантов расположения туда засуньте.


Сообщение отредактировал Jingo - Среда, 16.03.2016, 21:44
 
Ответить
СообщениеУважаемые, прошу вашей помощи!

есть ячейки в таблице с текстом такого формата:

[abc100de]aaaaaaacccccccddddddd xyzzzzzzzzzzzzz

rrrrrabc100deiiiiiiiiiiiii zyyyyxxxxxl

как удалить слова = непрерывный набор символов, где содержится фрагмент abc100de , чтобы получить ячейки вида

xyzzzzzzzzzzzzz

zyyyyxxxxxl

PS: удаляемое слово может быть в любом месте предложения
Заранее большая благодарность!
[moder]В файле покажите. И побольше различных вариантов расположения туда засуньте.

Автор - Jingo
Дата добавления - 16.03.2016 в 17:50
Jingo Дата: Среда, 16.03.2016, 18:03 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
2-ой столбец - это исходное значение
3 - что требуется получить

фрагмент: abc100de
К сообщению приложен файл: 9527030-1-.xlsx(11Kb)


Сообщение отредактировал Jingo - Среда, 16.03.2016, 21:47
 
Ответить
Сообщение2-ой столбец - это исходное значение
3 - что требуется получить

фрагмент: abc100de

Автор - Jingo
Дата добавления - 16.03.2016 в 18:03
Manyasha Дата: Среда, 16.03.2016, 18:07 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 661 ±
Замечаний: 0% ±

Excel 2007, 2010
Jingo, так?
Код
=ПСТР(B1;ПОИСК(" ";B1)+1;99)
К сообщению приложен файл: 9527030-1.xlsx(11Kb)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеJingo, так?
Код
=ПСТР(B1;ПОИСК(" ";B1)+1;99)

Автор - Manyasha
Дата добавления - 16.03.2016 в 18:07
_Boroda_ Дата: Среда, 16.03.2016, 18:14 | Сообщение № 4
Группа: Модераторы
Ранг: Экселист
Сообщений: 9348
Репутация: 3922 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Еще
Код
=ЗАМЕНИТЬ(B1;1;ПОИСК(" ";B1);)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕще
Код
=ЗАМЕНИТЬ(B1;1;ПОИСК(" ";B1);)

Автор - _Boroda_
Дата добавления - 16.03.2016 в 18:14
abtextime Дата: Среда, 16.03.2016, 18:28 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 427
Репутация: 60 ±
Замечаний: 0% ±

Excel 2010
Manyasha, _Boroda_,
Я правильно понимаю, что это только для случая, когда фрагмент в первом "слове"?

Jingo, так и надо? Или надо все "слова" с фрагментами удалять?
 
Ответить
СообщениеManyasha, _Boroda_,
Я правильно понимаю, что это только для случая, когда фрагмент в первом "слове"?

Jingo, так и надо? Или надо все "слова" с фрагментами удалять?

Автор - abtextime
Дата добавления - 16.03.2016 в 18:28
Manyasha Дата: Среда, 16.03.2016, 18:43 | Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 661 ±
Замечаний: 0% ±

Excel 2007, 2010
abtextime,
для случая, когда фрагмент в первом "слове"?
да, какой пример, такой ответ :)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеabtextime,
для случая, когда фрагмент в первом "слове"?
да, какой пример, такой ответ :)

Автор - Manyasha
Дата добавления - 16.03.2016 в 18:43
abtextime Дата: Среда, 16.03.2016, 19:29 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 427
Репутация: 60 ±
Замечаний: 0% ±

Excel 2010
Для произвольного расположения

[vba]
Код
Public Function DelWords(TText As String, DelString As String) As String

Dim Q As String

Q = Trim(TText)
DelWords = ""

Do

    N = InStr(Q, " ")
    If N = 0 Then N = Len(Q) + 1
    S = Mid(Q, 1, N - 1)
    If Replace(S, DelString, "") = S Then
        DelWords = DelWords & S
    End If
    Q = Trim(Replace(Q, S, ""))
      
Loop Until Q = ""

End Function
[/vba]
К сообщению приложен файл: _9527030-1.xlsm(17Kb)
 
Ответить
СообщениеДля произвольного расположения

[vba]
Код
Public Function DelWords(TText As String, DelString As String) As String

Dim Q As String

Q = Trim(TText)
DelWords = ""

Do

    N = InStr(Q, " ")
    If N = 0 Then N = Len(Q) + 1
    S = Mid(Q, 1, N - 1)
    If Replace(S, DelString, "") = S Then
        DelWords = DelWords & S
    End If
    Q = Trim(Replace(Q, S, ""))
      
Loop Until Q = ""

End Function
[/vba]

Автор - abtextime
Дата добавления - 16.03.2016 в 19:29
abtextime Дата: Среда, 16.03.2016, 19:35 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 427
Репутация: 60 ±
Замечаний: 0% ±

Excel 2010
Только сейчас вижу, что пробел теряется в строке DelWords = DelWords & S

Но пора домой :)
 
Ответить
СообщениеТолько сейчас вижу, что пробел теряется в строке DelWords = DelWords & S

Но пора домой :)

Автор - abtextime
Дата добавления - 16.03.2016 в 19:35
Jingo Дата: Среда, 16.03.2016, 21:32 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Только сейчас вижу, что пробел теряется в строке DelWords = DelWords & S

Но пора домой


уважаемые, да - для произвольного расположения (удаляемое слово может быть как первым так и вторым, третьим и так далее)
[moder]Уважаемый, а я для кого написал в своем первом комментарии
И побольше различных вариантов расположения туда засуньте.
?


Сообщение отредактировал _Boroda_ - Среда, 16.03.2016, 21:34
 
Ответить
Сообщение
Только сейчас вижу, что пробел теряется в строке DelWords = DelWords & S

Но пора домой


уважаемые, да - для произвольного расположения (удаляемое слово может быть как первым так и вторым, третьим и так далее)
[moder]Уважаемый, а я для кого написал в своем первом комментарии
И побольше различных вариантов расположения туда засуньте.
?

Автор - Jingo
Дата добавления - 16.03.2016 в 21:32
Jingo Дата: Среда, 16.03.2016, 21:39 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Осталось с пробелами разобраться.
 
Ответить
СообщениеОсталось с пробелами разобраться.

Автор - Jingo
Дата добавления - 16.03.2016 в 21:39
Jingo Дата: Среда, 16.03.2016, 21:41 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Модератор:
Уважаемый, а я для кого написал в своем первом комментарии


Простите меня, человека невнимательного.
[moder]И что нужно сделать, как Вы думаете?


Сообщение отредактировал _Boroda_ - Среда, 16.03.2016, 21:42
 
Ответить
Сообщение
Модератор:
Уважаемый, а я для кого написал в своем первом комментарии


Простите меня, человека невнимательного.
[moder]И что нужно сделать, как Вы думаете?

Автор - Jingo
Дата добавления - 16.03.2016 в 21:41
Jingo Дата: Среда, 16.03.2016, 21:48 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
пример изменил
 
Ответить
Сообщениепример изменил

Автор - Jingo
Дата добавления - 16.03.2016 в 21:48
Manyasha Дата: Среда, 16.03.2016, 22:00 | Сообщение № 13
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 661 ±
Замечаний: 0% ±

Excel 2007, 2010
пробел теряется
так наверное
[vba]
Код
Public Function DelWords(TText As String, DelString As String) As String
    Dim Q As String
    Q = Trim(TText)
    DelWords = ""
    Do
        N = InStr(Q, " ")
        If N = 0 Then N = Len(Q) + 1
        S = Mid(Q, 1, N - 1)
        If Replace(S, DelString, "") = S Then
            'Вот тут поправила
            DelWords = WorksheetFunction.Trim(DelWords & " " & S)
        End If
        Q = Trim(Replace(Q, S, ""))
    Loop Until Q = ""
End Function
[/vba]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение
пробел теряется
так наверное
[vba]
Код
Public Function DelWords(TText As String, DelString As String) As String
    Dim Q As String
    Q = Trim(TText)
    DelWords = ""
    Do
        N = InStr(Q, " ")
        If N = 0 Then N = Len(Q) + 1
        S = Mid(Q, 1, N - 1)
        If Replace(S, DelString, "") = S Then
            'Вот тут поправила
            DelWords = WorksheetFunction.Trim(DelWords & " " & S)
        End If
        Q = Trim(Replace(Q, S, ""))
    Loop Until Q = ""
End Function
[/vba]

Автор - Manyasha
Дата добавления - 16.03.2016 в 22:00
МВТ Дата: Среда, 16.03.2016, 22:17 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 475
Репутация: 135 ±
Замечаний: 0% ±

Excel 2007
Или так [vba]
Код
Function tt(Text As String, IgnoreText As String)
    Dim obj As Object
    With CreateObject("VBScript.RegExp")
        .ignorecase = True
        .Pattern = "(.+)?(?:(?:^| )(?:.+)?)" & IgnoreText & ".+?(?: |$)(.+)?"
        Set obj = .Execute(Text)
        If obj.Count > 0 Then tt = obj(0).Submatches(0) & " " & obj(0).Submatches(1)
    End With
End Function
[/vba]
 
Ответить
СообщениеИли так [vba]
Код
Function tt(Text As String, IgnoreText As String)
    Dim obj As Object
    With CreateObject("VBScript.RegExp")
        .ignorecase = True
        .Pattern = "(.+)?(?:(?:^| )(?:.+)?)" & IgnoreText & ".+?(?: |$)(.+)?"
        Set obj = .Execute(Text)
        If obj.Count > 0 Then tt = obj(0).Submatches(0) & " " & obj(0).Submatches(1)
    End With
End Function
[/vba]

Автор - МВТ
Дата добавления - 16.03.2016 в 22:17
МВТ Дата: Среда, 16.03.2016, 22:34 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 475
Репутация: 135 ±
Замечаний: 0% ±

Excel 2007
Manyasha, мне кажется, тогда проще так
[vba]
Код
Public Function DelWords1(TText As String, DelString As String) As String
     Dim Q, I As Long
     Q = Split(WorksheetFunction.Trim(TText))
     For I = 0 To UBound(Q)
        If InStr(Q(I), DelString) <> 0 Then Q(I) = ""
     Next
     DelWords1 = Join(Q)
End Function
[/vba]
Если предполагается, что удаляемое слово только одно, можно добавить в цикл Exit For
 
Ответить
СообщениеManyasha, мне кажется, тогда проще так
[vba]
Код
Public Function DelWords1(TText As String, DelString As String) As String
     Dim Q, I As Long
     Q = Split(WorksheetFunction.Trim(TText))
     For I = 0 To UBound(Q)
        If InStr(Q(I), DelString) <> 0 Then Q(I) = ""
     Next
     DelWords1 = Join(Q)
End Function
[/vba]
Если предполагается, что удаляемое слово только одно, можно добавить в цикл Exit For

Автор - МВТ
Дата добавления - 16.03.2016 в 22:34
Jingo Дата: Среда, 16.03.2016, 22:41 | Сообщение № 16
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо боги excel'я!))
 
Ответить
СообщениеСпасибо боги excel'я!))

Автор - Jingo
Дата добавления - 16.03.2016 в 22:41
Manyasha Дата: Среда, 16.03.2016, 22:41 | Сообщение № 17
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 661 ±
Замечаний: 0% ±

Excel 2007, 2010
Михаил, не спорю ) Я просто поправила строчку в коде abtextime, особо не вникала.
Так что, Jingo, не забудьте и abtextime поблагодарить. ;)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеМихаил, не спорю ) Я просто поправила строчку в коде abtextime, особо не вникала.
Так что, Jingo, не забудьте и abtextime поблагодарить. ;)

Автор - Manyasha
Дата добавления - 16.03.2016 в 22:41
МВТ Дата: Среда, 16.03.2016, 22:45 | Сообщение № 18
Группа: Проверенные
Ранг: Обитатель
Сообщений: 475
Репутация: 135 ±
Замечаний: 0% ±

Excel 2007
Manyasha, сорри, не заметил. Постараюсь быть внимательнее :)
 
Ответить
СообщениеManyasha, сорри, не заметил. Постараюсь быть внимательнее :)

Автор - МВТ
Дата добавления - 16.03.2016 в 22:45
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Удаление слов, содержащих фрагменты. (Формулы/Formulas)
Страница 1 из 11
Поиск:

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