Как удалить второе слово в ячейке excel

  • Удалить последнее слово из ячейки: формула
  • Удаление с помощью регулярного выражения
  • Удалить последнее слово/N последних слов во всем столбце
  • Заключение

Удалить последнее слово в Excel

Иногда при работе с Excel возникает необходимость удалить последнее слово или несколько слов в конце фраз в ячейках.

Для решения задачи можно объединить несколько функций программы, чтобы осуществить поиск справа налево в ячейке, но есть помимо обычных формул и другие способы. Расскажу обо всем по порядку.

Удалить последнее слово из ячейки: формула

В отличие от процедуры удаления первого слова из ячейки, где формула довольно простая в силу того, что функция ПОИСК ищет слева направо, формула для удаления последнего слова существенно сложнее.

К сожалению, эквивалента ПОИСК, которая искала бы символ в строке не слева направо, а наоборот, справа, нет. Ниже пошаговое описание формулы, которая позволит, тем не менее, сочетанием функций найти его. После этого удалить последнее слово будет уже несложно.

1. Измеряем длину строки.
В этом поможет функция ДЛСТР.

2. Заменяем пробелы в строке на пустоту.
Здесь поможет функция ПОДСТАВИТЬ.

3. Замеряем длину строки без пробелов.
Формула получается заменой A1 на полное выражение без знака равенства во втором шаге.

=ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))

4. Вычитаем из первой длины вторую, чтобы вычислить таким образом количество пробелов в исходной строке.

=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))

5. Создаём символ, которого в нашем массиве гарантированно нет.
Если вы точно уверены, можно использовать конкретный символ, например, “”.
Можно повысить уверенность с помощью функции ЮНИСИМВ – она позволяет вставлять на лист какие угодно символы из UNICODE-таблицы.
Например:

Возвращает: 宠
Полагаю, это китайский или японский.

6. Заменяем последний пробел на этот символ.
У функции ПОДСТАВИТЬ есть необязательный четвертый аргумент, обозначающий позицию символа, который нужно заменить. На втором шаге мы его не использовали, чтобы он удалил все пробелы. На этом шаге вставляем в него формулу из четвертого шага.
Третьим аргументом будет формула из пятого шага.

=ПОДСТАВИТЬ(A1;" ";ЮНИСИМВ(23456);ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";"")))

7. Находим позицию этого символа.
На этот раз функция ПОИСК замечательно справится. Поскольку символ в строке гарантированно в единственном экземпляре, его можно искать и слева направо.

=ПОИСК(ЮНИСИМВ(23456);A1;ПОДСТАВИТЬ(A1;" ";ЮНИСИМВ(23456);ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))))

8. Вычитаем из результата единицу, чтобы узнать позицию символа перед ним.

=ПОИСК(ЮНИСИМВ(23456);A1;ПОДСТАВИТЬ(A1;" ";ЮНИСИМВ(23456);ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))))-1

9. Извлекаем из исходной ячейки текст до этой позиции.

=ЛЕВСИМВ(A1;ПОИСК(ЮНИСИМВ(23456);A1;ПОДСТАВИТЬ(A1;" ";ЮНИСИМВ(23456);ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))))-1)

10. Во всей формуле меняем A1 на ” “&A1

=ЛЕВСИМВ(" "&A1;ПОИСК(ЮНИСИМВ(23456);ПОДСТАВИТЬ(" "&A1;" ";ЮНИСИМВ(23456);ДЛСТР(" "&A1)-ДЛСТР(ПОДСТАВИТЬ(" "&A1;" ";""))))-1)

11. «Оборачиваем» результат функцией СЖПРОБЕЛЫ.
Предыдущий шаг добавит обезопасит от ошибок, но добавит лишний пробел слева. Функция удалит его и любые другие лишние пробелы между слов или в конце строки.

Итак, формула удаления последнего слова из ячейки:

=СЖПРОБЕЛЫ(ЛЕВСИМВ(" "&A1;ПОИСК(ЮНИСИМВ(23456);ПОДСТАВИТЬ(" "&A1;" ";ЮНИСИМВ(23456);ДЛСТР(" "&A1)-ДЛСТР(ПОДСТАВИТЬ(" "&A1;" ";""))))-1))

Удаление с помощью регулярного выражения

Регулярные выражения в Excel наделяют специалиста, знакомого с их синтаксисом, практически неограниченными возможностями по поиску, извлечению, замене и удалению текстовых данных без использования монструозных мегаформул, описанных выше.

Пользователям надстройки !SEMTools формулы регулярных выражений доступны сразу же после подключения надстройки к Excel. Вот так изящно будет выглядеть формула удаления последнего слова с помощью функции REGEXREPLACE:

=REGEXREPLACE(A1;"sS+$";"")

Функциями листа можно пользоваться абсолютно бесплатно, а подробно об этом синтаксисе можно почитать в моей статье: «Регулярные выражения в Excel».

Что делать, если не хочется создавать дополнительный столбец и изменить данные прямо на месте? Здесь вам на помощь придет !SEMTools. Ниже показаны примеры удаления последнего слова или двух/трех/N слов в ячейках, прямо на месте с помощью соответствующего меню “Удалить слова” в группе инструментов «УДАЛИТЬ»:

Удалить последнее слово во всех ячейках с !SEMTools

Удаляем последние 2 слова в конце всех ячеек:

Удалить последние два слова

Удаление последних двух слов в ячейках столбца в 2 клика

Аналогично решается задача для нескольких — можно использовать пункт «Последние N», чтобы указать количество удаляемых слов, считая справа:

Удалить последние слова в ячейке

Удаляем последние 4 слова в ячейках столбца, вводя необходимое количество слов самостоятельно

Заключение

Надеюсь, эта статья помогла вам, и вы с уверенностью сможете удалить последние слова из ячеек. Если хотите делать это, не прибегая к сложным формулам, станьте пользователем надстройки для Excel.

!SEMTools избавит вас от этой рутины и предоставит ещё более 500 таких же простых и быстрых функций. Скачайте прямо сейчас и убедитесь сами!

Смотрите похожие разделы:

  • Удалить первое слово/N первых слов в ячейках Excel;
  • Удалить последние N символов в ячейках столбца;
  • Добавить символ, слово или текст во все ячейки столбца;
  • Удалить из текста список слов.

Бывает, что возникает потребность в удалении первого слова или нескольких слов вначале фразы в ячейке таблицы «Эксель». Выполнить это руками очень сложно, особенно, когда список представляет собой перечень из нескольких сотен или тысяч позиций,  при помощи одной функции это сделать тоже невозможно.

Чтобы выполнить задачу по удалению первых 2-3 (или первого одного) слов необходимо воспользоваться системой (сочетанием) из нескольких функций, о которых расскажем ниже:

Первая функция «ПОДСТАВИТЬ» — она находит нужный текст и заменяет его на другой. У этой функции есть  одно большое преимущество – это возможность заменить текст в определенной позиции. То есть заменить текст, встречающийся первый, второй, третий и т.д. раз по счету. В нашем случае эта функция заменит пробел, встречающийся второй раз на какой-нибудь символ, желательно не встречающийся в тексте.

Вторая функция «НАЙТИ» — находит позицию текста и присваивает позиции числовое значение. Например, если замененный нами на символ пробел будет стоять на 12 месте от начала строки, то функция найти примет значение 12.

Третья функция это «ЛЕВСИМВ» или «ПРАВСИМВ» (в зависимости от того будем ли мы удалять слова справа или слева).  «ЛЕВСИМВ» или «ПРАВСИМВ» — присваивают ячейке строго определенное количество символов из текста.

    Четвертая функция «ДЛСТР» — находит длину строки в ячейке и определяет количество символов в выбранной ячейке.

    Теперь давайте составим систему из этих функций, которая будет отрезать (удалять) первые три слова из ячеек.Удалить лишние слова

    Система выглядит следующим образом:

    =ПРАВСИМВ(B3;((ДЛСТР(B3))-(НАЙТИ(«*»;ПОДСТАВИТЬ(B3;» «;»*»;3)))))

    В этой системе функция «ПОДСТАВИТЬ» заменяет третий по счету пробел на знак «*», функция «НАЙТИ» находит положение этого знака относительно начала строки, функция «ДЛСТР» считает общее количество знаков, а «ПРАВСИМВ» оставляет нужное количество знаков, справа, удаляя первые знаки ровно по длине «ненужных» слов.

    Чтобы скопировать первые несколько слов можно воспользоваться похожей системой, только не удалять лишние знаки а наоборот оставить первые несколько знаков относящиеся к «нужным» словам.копировать слова

    Функции выглядят следующим образом:

     =ЛЕВСИМВ(B3; НАЙТИ(«*»;ПОДСТАВИТЬ(B3;» «;»*»;3)).

     

    Atman

    Пользователь

    Сообщений: 4
    Регистрация: 22.02.2016

    Доброго времени суток!
    Нашел тему, где описывается как удалять первое слово или оставлять первое слово:

    http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=19977

    Но я из неё не понял, как удалять только последнее слово в фразе.
    Помогите, пожалуйста, с формулой.
    Также интересует, как удалять 2, 3…n — количества последних слов в ячейке.
    Благодарю заранее за помощь!

     

    Юрий М

    Модератор

    Сообщений: 60585
    Регистрация: 14.09.2012

    Контакты см. в профиле

    А

    так

    не пробовали спросить?

     

    Atman

    Пользователь

    Сообщений: 4
    Регистрация: 22.02.2016

    Да искал, спасибо!
    Просто здесь есть как удалять 2 последних слова, но нет как одно удалять…

     

    sv2013

    Пользователь

    Сообщений: 657
    Регистрация: 09.06.2015

    #4

    22.02.2016 15:00:31

    добрый день, попробуйте функцию yyy в C1

    Код
    Function yyy$(t$)
        Dim x: x = Split(t): x(UBound(x)) = ""
         yyy = Join(x)
    End Function

    Прикрепленные файлы

    • example_22_02_2016_last_word.xlsx (7.54 КБ)

    Изменено: sv201322.02.2016 15:00:49

     

    Atman

    Пользователь

    Сообщений: 4
    Регистрация: 22.02.2016

    Нашел формулу :)
    =ЛЕВСИМВ(A2;ПОИСК(«/»;ПОДСТАВИТЬ(A2;» «;»/»;ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;» «;))))-1)

     

    sv2013

    Пользователь

    Сообщений: 657
    Регистрация: 09.06.2015

    #6

    22.02.2016 15:18:50

    Atman,для удаления k последних слов функция yyy1 в файл примере

    Код
    Function yyy1$(t$, k As Byte)
      Dim x, i&: x = Split(t)
     For i = UBound(x) To UBound(x) - k + 1 Step -1: x(i) = "": Next
      yyy1 = Join(x)
    End Function

    Прикрепленные файлы

    • example_22_02_2016_last_word1.xls (32.5 КБ)

    Изменено: sv201322.02.2016 15:19:07

     

    Sanja

    Пользователь

    Сообщений: 14838
    Регистрация: 10.01.2013

    Удалить последнее слово
    =ЛЕВСИМВ(СЖПРОБЕЛЫ(A2);ПОИСК(«`»;ПОДСТАВИТЬ(СЖПРОБЕЛЫ(A2);» «;»`»;ДЛСТР(СЖПРОБЕЛЫ(A2))-ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(A2);» «;»»))))-1)
    В файле варианты для удаления N последних

    Согласие есть продукт при полном непротивлении сторон.

     

    Апострофф

    Пользователь

    Сообщений: 720
    Регистрация: 06.04.2015

    #8

    22.02.2016 15:36:43

    Цитата
    sv2013 написал:
    yyy1 = Join(x)

    Может так лучше —

    Код
    yyy1 = TRIM$(Join(x)) 'зачем лишних n пробелов в конце?
    
     

    Sanja

    Пользователь

    Сообщений: 14838
    Регистрация: 10.01.2013

    #9

    22.02.2016 15:39:20

    Цитата
    Atman написал: Нашел формулу

    СЖПРОБЕЛЫ() в формуле не помешают. Вдруг между словами окажется больше одного пробела? Тогда результат будет не верный

    Согласие есть продукт при полном непротивлении сторон.

     

    vikttur

    Пользователь

    Сообщений: 47199
    Регистрация: 15.09.2012

    =ЛЕВСИМВ(A2;ПОИСК(«|»;ПОДСТАВИТЬ(A2;» «;»|»;$B$1)))
    =СЖПРОБЕЛЫ(ЛЕВСИМВ(ПОДСТАВИТЬ(» «&A2;» «;ПОВТОР(» «;50));50*$B$1+50))

    В В1 — количество слов с начала текста (сколько оставить).
    Вторая формула не выдаст ошибку, если в В1 число больше, чем количество пробелов в слове, или В1=0

    =ЛЕВСИМВ(A2;ПОИСК(«|»;ПОДСТАВИТЬ(A2&» «;» «;»|»;МАКС(1;1-$B$1+ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;» «;))))))
    В В1 — количество слов с конца текста (сколько удалить)

     

    Atman

    Пользователь

    Сообщений: 4
    Регистрация: 22.02.2016

    #11

    22.02.2016 16:21:41

    Огромное всем спасибо!

    Копировать, убрать/удалить первое слово или несколько первых слов в ячейке Excel

    Бывает, что возникает потребность в удалении первого слова или нескольких слов вначале фразы в ячейке таблицы «Эксель». Выполнить это руками очень сложно, особенно, когда список представляет собой перечень из нескольких сотен или тысяч позиций, при помощи одной функции это сделать тоже невозможно.

    Чтобы выполнить задачу по удалению первых 2-3 (или первого одного) слов необходимо воспользоваться системой (сочетанием) из нескольких функций, о которых расскажем ниже:

    Первая функция «ПОДСТАВИТЬ» — она находит нужный текст и заменяет его на другой. У этой функции есть одно большое преимущество – это возможность заменить текст в определенной позиции. То есть заменить текст, встречающийся первый, второй, третий и т.д. раз по счету. В нашем случае эта функция заменит пробел, встречающийся второй раз на какой-нибудь символ, желательно не встречающийся в тексте.

    Вторая функция «НАЙТИ» — находит позицию текста и присваивает позиции числовое значение. Например, если замененный нами на символ пробел будет стоять на 12 месте от начала строки, то функция найти примет значение 12.

    Третья функция это «ЛЕВСИМВ» или «ПРАВСИМВ» (в зависимости от того будем ли мы удалять слова справа или слева). «ЛЕВСИМВ» или «ПРАВСИМВ» — присваивают ячейке строго определенное количество символов из текста.

    Четвертая функция «ДЛСТР» — находит длину строки в ячейке и определяет количество символов в выбранной ячейке.

    Теперь давайте составим систему из этих функций, которая будет отрезать (удалять) первые три слова из ячеек.

    Система выглядит следующим образом:

    =ПРАВСИМВ(B3;((ДЛСТР(B3))-(НАЙТИ(«*»;ПОДСТАВИТЬ(B3;» «;»*»;3)))))

    В этой системе функция «ПОДСТАВИТЬ» заменяет третий по счету пробел на знак «*», функция «НАЙТИ» находит положение этого знака относительно начала строки, функция «ДЛСТР» считает общее количество знаков, а «ПРАВСИМВ» оставляет нужное количество знаков, справа, удаляя первые знаки ровно по длине «ненужных» слов.

    Чтобы скопировать первые несколько слов можно воспользоваться похожей системой, только не удалять лишние знаки а наоборот оставить первые несколько знаков относящиеся к «нужным» словам.

    Функции выглядят следующим образом:

    =ЛЕВСИМВ(B3; НАЙТИ(«*»;ПОДСТАВИТЬ(B3;» «;»*»;3)).

    Удалить из текста список слов

    Периодически возникает необходимость удалить слова из текста в ячейках. У вас есть список слов, и нужно удалить их все из списка фраз, если они в нем присутствуют. Зачастую, но не всегда такое приходит в голову после того, как удалось обнаружить слова и/или извлечь их из текста и понять, что они — лишние.

    Например, вы – контент-менеджер интернет-магазина. Ваш каталог представляет собой Excel-файл. В нем товары представляют собой массив ячеек, содержащий названия продукта и фирмы-производителя.

    У вас есть список фирм-производителей, а ваша задача – удалить их и оставить только названия продуктов.

    Или у вас каталог автомобилей в виде одной строки – марка и модель. Вы хотите разбить его на марки и модели, и все что у вас есть – список из

    В обоих случаях можно было бы воспользоваться последовательной заменой в выделенном списке ячеек исходных значений на пустоту. Но это, очевидно, займет довольно много времени, особенно, если каталог большой и каждая замена не происходит моментально.

    Для таких случаев может пригодиться макрос удаления списка слов из ячеек. Макрос находится в группе «УДАЛИТЬ» в меню «Удалить слова«

    Местоположение макроса «удалить из ячеек любые слова из указанного списка»

    Как и все макросы, работающие со словами, он определяет целые слова и удаляет строго только их, пропуская простые вхождения. Это позволяет избежать непреднамеренных удалений частей слов и «повреждения» данных.

    Как удалить из текста список слов с помощью !SEMTools:

    Все очень просто. Выделяем список фраз, вызываем макрос из меню, он предлагает выделить список слов, выделяем его и жмем «ОК». Вуаля!
    Важно:
    Слова удаляются в исходном диапазоне и навсегда. Рекомендуется копировать столбец, оставляя исходные данные, как показано на видеоинструкции ниже, если не уверены в результате:

    Удалить список слов из ячеек в Excel — видеоинструкция

    Удалить слова во всех словоформах

    Если стоит задача удалить слова во всех их словоформах, а перебирать их вручную не очень хочется, есть пара вариантов:
    1. Можно воспользоваться макросом удаления слов по условию «начинается с». Такой вариант менее предпочтителен, если вы не уверены, что в массиве нет других слов, начинающихся с указанной последовательности. И точно непригоден для удаления коротких слов.
    2. Можно воспользоваться модулем морфологии и быстро просклонять слова в Excel автоматически, не прикладывая лишних усилий. Но и тут есть примечение. Модуль Морфология в !SEMTools на текущий момент работает только с существительными и прилагательными.

    Как оставить в ячейке только цифры или только текст?

    Вот бывает так: есть у Вас в ячейке некий текст. Допустим «Было доставлено кусков мыла 763шт.». Вам нужно из этого только 763 — чтобы можно было провести с этим некие математические действия. Если это только одна ячейка — проблем тут нет, а если таких ячеек пару тысяч? И к тому же все разные?

    • Было доставлено кусков мыла 763шт.
    • Всего пришло 34
    • Тюбики — 54 доставлено
    • и т.д.

    Никакой зацепки для извлечения данных. Пару тысяч таких строк удалять вручную весьма утомительное занятие, надо сказать. Да еще и не быстрое.
    Есть несколько вариантов решения подобной задачи.

    СПОСОБ 1: не используем макросы
    можно применить формулу массива, вроде такой:
    =ПСТР( A1 ;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 ))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )))+1)
    Три важных момента:

    1. Формула вводится в ячейку сочетанием клавиш Ctrl+Shift+Enter, т.к. является формулой массива. Подробнее про эти формулы читайте в статье: Что такое формула массива
    2. в таком виде формула работает с текстом, количество символов в котором не превышает 99. Чтобы расширить необходимо в формуле во всех местах заменить СТРОКА( $1:$99 ) на СТРОКА( $1:$200 ) . Т.е. вместо 99 указать количество символов с запасом. Только не увлекайтесь, иначе может получиться, что формула будет работать слишком долго
    3. формула не обработает корректно текст » Было доставлено кусков мыла 763шт., а заказывали 780 » и ему подобный, где числа раскиданы по тексту.

    Теперь коротко разберем формулу на примере фразы: Было доставлено кусков мыла 763шт.

    • в A1 сам текст, из которого необходимо извлечь числа: Было доставлено кусков мыла 763шт., а заказывали 780
    • блок: МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )))
      вычисляет позицию первой цифры в ячейке — 29
    • блок: ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 ))
      вычисляет позицию последней цифры в ячейке — 31
    • в результате получается: =ПСТР( A1 ;29;3129+1)
      функция ПСТР извлекает из текста, указанного первым аргументом( A1 ) текст, начиная с указанной позиции(29) с количеством символов, указанным третьим аргументом(3129+1)
    • И в итоге:
      =ПСТР( A1 ;29;3129+1)
      => =ПСТР( A1 ;29;2+1)
      => =ПСТР( A1 ;29;3)
      => 763

    Может быть задача проще — необходимо извлечь односоставной текст, убрав цифры вначале и в конце строки, учитывая, что сам текст всегда следует после разделителя(например, тире):
    12.08-АГСВ2
    12.08-АГСВ1
    01.03-ОВ2
    12.03-КЖ6.1
    Из этих данных надо получить только текст после тире(-) и отсечь цифры на конце:
    АГСВ
    АГСВ
    ОВ
    КЖ
    Формула будет работать почти по тому же принципу, что и формула выше, но она проще:
    =ПСТР( A1 ;ПОИСК(«-«; A1 )+1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР( A1 ;ПОИСК(«-«; A1 )+1;999);СТРОКА( $1:$99 );1));0)-1)
    В данном случае мы при помощи ПОИСК(«-«; A1 ) ищем сначала позицию тире, далее при помощи ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР( A1 ;ПОИСК(«-«; A1 )+1;999);СТРОКА( $1:$99 );1));0) находим именно в отсеченном тексте позицию первой цифры. Передаем эти значения в ПСТР , которая отбирает из этого текста все от первого тире(+1) до первого числа, идущего после текста.

    СПОСОБ 2: используем макросы
    Самый главный недостаток метода при помощи формулы, приведенной выше — из текста » Было доставлено кусков мыла 763шт., а заказывали 780 » формула вернет не только числа, а и текст между первой и последней цифрой: 763шт., а заказывали 780 .
    Решить же проблему извлечения цифр даже из такого текста при помощи VBA куда проще и гибче. Плюс можно не только цифры извлекать, но и наоборот — цифры удалить, а извлечь только текст. Ниже приведен код пользовательской функции, которая поможет извлечь из строки только числа либо только текст. Иными словами, результатом функции будет либо только текст, либо только числа.

    Function Extract_Number_from_Text(sWord As String, Optional Metod As Integer) ‘sWord = ссылка на ячейку или непосредственно текст ‘Metod = 0 – числа ‘Metod = 1 – текст Dim sSymbol As String, sInsertWord As String Dim i As Integer If sWord = «» Then Extract_Number_from_Text = «Нет данных!»: Exit Function sInsertWord = «» sSymbol = «» For i = 1 To Len(sWord) sSymbol = Mid(sWord, i, 1) If Metod = 1 Then If Not LCase(sSymbol) Like «*[0-9]*» Then If (sSymbol = «,» Or sSymbol = «.» Or sSymbol = » «) And i > 1 Then If Mid(sWord, i — 1, 1) Like «*[0-9]*» And Mid(sWord, i + 1, 1) Like «*[0-9]*» Then sSymbol = «» End If End If sInsertWord = sInsertWord & sSymbol End If Else If LCase(sSymbol) Like «*[0-9.,;:-]*» Then If LCase(sSymbol) Like «*[.,]*» And i > 1 Then If Not Mid(sWord, i — 1, 1) Like «*[0-9]*» Or Not Mid(sWord, i + 1, 1) Like «*[0-9]*» Then sSymbol = «» End If End If sInsertWord = sInsertWord & sSymbol End If End If Next i Extract_Number_from_Text = sInsertWord End Function

    Данный код необходимо поместить в стандартный модуль книги. После этого в мастере функций в категории Определенные пользователем (User Defined) будет доступна функция Extract_Number_from_Text , которую можно будет применять как обычную функцию на листе.
    Для извлечения только чисел
    =Extract_Number_from_Text( A1 ; 0)
    или
    =Extract_Number_from_Text( A1 )
    Для извлечения только текста
    =Extract_Number_from_Text( A1 ; 1)

    Подробнее про создание пользовательских функции и их применении можно почитать в статье Что такое функция пользователя(UDF)?

    Помимо функции пользователя решил выложить и вариант с использованием диалогового окна:

    Выбрать ячейку или диапазон с текстом(Лист1! $A$2:$A$10 ) — здесь указывается диапазон с исходными значениями, из которого необходимо оставить только числа или только текст.

    Выберите ячейку для вывода данных(Лист1! $A$2 ) — указывается одна ячейка, с которой начать вывод преобразованных значений. В качестве этой ячейки можно выбрать первую ячейку диапазона с текстом(исходного) если необходимо произвести изменения сразу в этих же ячейках(как на рисунке). Осторожнее с таким указанием, т.к. результат работы кода может быть не совсем таким, какой вы ожидали, а вернуть прежние данные уже не получится — если только не закрыть файл без сохранения изменений.

    Оставить только цифры, Оставить только текст— думаю не надо пояснять. Здесь выбираем, что оставить в качестве результата.

    Небольшое дополнение к использованию кода
    В коде есть строка:

    If LCase(sSymbol) Like «*[0-9.,;:-]*» Then

    Данная строка отвечает за текстовые символы, которые могут встречаться внутри чисел и которые надо оставить(не удалять наравне с другими не числовыми символами). Следовательно, если какие-то из данных символов не нужны в конечном тексте — их надо просто удалить. Например, чтобы оставались исключительно числа(без запятых и пр.):

    If LCase(sSymbol) Like «*[0-9]*» Then

    если надо исключить из удаления помимо цифр точку(т.е. будут извлечены цифры и точка):

    If LCase(sSymbol) Like «*[0-9.]*» Then

    и т.д.
    Скачать пример:

    Число из текста и наоборот.xls (99,0 KiB, 12 857 скачиваний)

    Статья помогла? Поделись ссылкой с друзьями!

    Поиск по меткам

    Здравствуйте скрипт при обработке ячейки:
    Пр-ка ТНВД 5301 (пер.) 50-1006315-Б2 выдает: 530150-1006315-2
    вопрос есть возможность что бы он брал только последних 15-20 сим.
    с заглавными А-Я, или хотя бы цифирки.
    Буду признателен за предложения.
    Возможно есть проще варианты(12000 стр.записеи) обрезани до последних 10-20сим.

    Александр, последние 15-20 символов можно взять при помощи функции ПРАВСИМВ(RIGHT). Так же можно совместить:
    =Extract_Number_from_Text(ПРАВСИМВ(A1))
    Более сложные вариации извлечения делаются под конкретные данные с учетом различных нюансов.

    Добрый день!
    Спасибо за замечательный код! Подскажите пожалуйста, как оставить среди неудаляемых символов пробел?
    Например, в ячейке было «Т-образный поворот SPB-RF60 TE-200 SS316L».
    Ваш код оставляет (после некоторой модификации) «60200316».
    А хотелось бы «60 200 316».
    Я не понимаю как вписать пробел в строку
    Like «*[0-9.,;:-]*» Then

    А всё разобрался, пробел нужно указывать в середине ряда, а не в конце.

    Здравствуйте.
    Использовал функцию, вызванную на VBA, все нормально, при вызове мастера функций он нормально отрабатывает
    Но при выполнение в эксель, выскакивает сообщение, что здесь используется циклическая ссылка и потом появляется значение 0. В чем дело?

    Добрый день!
    А что надо добавить в код/формулу чтобы из строки
    «ТП ВЕТЧИННАЯ ВАРЕНАЯ 400Г (162854) /Ш/»
    — вытащить только цифры до буквы Г?
    — или без содержимого скобок
    Заранее большое спасибо!

    Нашла пока только такой вариант решения:
    =ЛЕВСИМВ(B5;ПОИСК(«г «;B5)-1)
    Затем в другой колонке
    =ЕСЛИОШИБКА(ПСТР(C5;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99)));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99)))+1);1000)
    И в третьей колонке = из предыдущей и преобразовать в числовой формат макросом
    Результат достигнут, но если расскажите как можно было сделать изящнее — обязательно запомню))

    Public Function RegExpExtract(Text As String, Pattern As String, Optional Item As Integer = 1) As String On Error GoTo ErrHandl Set regex = CreateObject(«VBScript.RegExp») regex.Pattern = Pattern regex.Global = True If regex.Test(Text) Then Set matches = regex.Execute(Text) RegExpExtract = matches.Item(Item — 1) Exit Function End If ErrHandl: RegExpExtract = CVErr(xlErrValue) End Function

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

    Денис, спасибо. Но есть все равно пара замечаний, раз уж предлагаете воспользоваться функцией. Неплохо было бы добавить и пример применения. Иначе как тому, кто зайдет почитать использовать Ваше решение?
    Я умею использовать регулярки и по коду вижу, что помимо текста надо указать не только шаблон, но еще и номер элемента, который получить. Что является немаловажным замечанием.
    Для извлечения первого числа(без разделения групп разрядов) — =(RegExpExtract( A1 ;»d»;1)
    Для извлечения первого текста(что не очень удобно, если чисел в тексте много) — =(RegExpExtract( A1 ;»D»;1)
    Оба варианта слегка халтурны, но для понимания общего смысла использования подойдут.
    В общем и целом я бы в функцию еще параметр IgnoreCase добавил(при извлечении текста по шаблону может потребоваться). Да и Multiline тоже иногда может играть роль(зависит от шаблона и текста), поэтому его тоже лучше ставить в True сразу в случае с такими функциями.

    Поделитесь своим мнением

    Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме — добро пожаловать на Форум

    Извлечение слов из текста в Excel

    Возможности Excel не ограничиваются построением таблиц и работой с цифрами. Благодаря множеству разнообразных встроенных инструментов, круг задач, которые можно решить посредством Excel, необычайно широк. Например, благодаря встроенным текстовым функциям программа может ловко управляться с текстом. Продемонстрируем это на примере задачи извлечения слов из текста.

    Важное замечание!

    Задача 1. Подсчет количества слов в тексте

    Для начала нужно научиться элементарному действию — подсчету количества слов в исходном тексте. Напрямую этого сделать нельзя, но используя текстовые функции и немного логики, задачу можно решить.

    Итак, слова в тексте отделены друг от друга пробелами. Пробелов всегда на 1 меньше, чем слов (действительно, между двумя словами — один пробел, между тремя — два и т.д.). Значит, достаточно подсчитать пробелы и прибавить к ним единицу, чтобы узнать число слов в ячейке.

    В Excel есть замечательные функции ДЛСТР() и ПОДСТАВИТЬ() . Первая подсчитывает количество символов в указанной ячейке, а вторая умеет заменять указанный символ на любой другой или на пусто (обозначается как двойные кавычки без пробела между ними «» ).

    Функция ПОДСТАВИТЬ() имеет 4 аргумента:

    1) Ячейка с текстом

    2) То, что нужно заменить (указывается в кавычках)

    3) То, на что нужно заменить (указывается в кавычка)

    4) Необязательный аргумент — номер вхождения заменяемого текста. То есть, если в тексте 4 пробела, мы можем заменить только тот, номер которого укажем. Если аргумент опущен — заменяются все символы.

    Первой функцией мы можем узнать длину текста в ячейке. Второй функцией мы можем заменить все пробелы в тексте на «» (пусто), то есть удалить. Если после удаления мы подсчитаем длину текста еще раз, то она сократится ровно на число удаленных пробелов. Таким образом, чтобы подсчитать пробелы, нужна формула:

    Прибавим к ней единицу — и получим число слов в ячейке.

    Имейте в виду, что такой способ подсчета принимает символы, отделенные от слов пробелом, за отдельные слова. Например, тире, обрамленное пробелами, также будет считаться отдельным словом. Избежать этого можно, если перед подсчетом пробелов убрать функцией ПОДСТАВИТЬ() лишние знаки из ячейки.

    Задача 2. Извлечение первого слова из текста

    Раз слова отделены пробелами, то первое слово от второго отделено первым в тексте пробелом. Значит для извлечения первого слова, нам нужно найти первый пробел и извлечь из текста всё, что идет до него.

    Найти символ в тексте поможет функция НАЙТИ() . У нее есть 3 аргумента:

    1) Искомый текст;

    2) Текст, в котором ищем;

    3) С какого символа начать поиск (необязательный, если опущен — функция ищет с самого начала).

    Результатом работы функции является позиция первого символа найденного текста в строке. Например, формула =НАЙТИ(«плюс»;»Один плюс один») вернет в результате число 6 (именно с этой позиции начинается искомое слово «плюс»). Если в строке несколько раз содержится искомое слово, то вернется результат для первого вхождения.

    Функция НАЙТИ работает с учетом регистра и без подстановочных знаков. Если нужно их использовать, или не учитывать регистр — есть аналогичная функция ПОИСК() .

    Теперь мы можем найти позицию первого пробела

    Извлечь символы до пробела поможет функция ЛЕВСИМВ . Ей нужно указать текст, а также число символов, которое нужно извлечь начиная с первого. Если найденный пробел, например, 6-ой символ, то нам нужно извлечь 6-1=5.

    Формула для извлечения первого слова:

    Если в строке одно слово (то есть нет пробела между первым и вторым словом), данная формула вернет ошибку. Чтобы этого избежать, нужно добавить к ней функцию ЕСЛИОШИБКА() .

    Теперь формула корректно сработает для любого числа слов в ячейке.

    Задача 3. Извлечение последнего слова из текста

    Извлечь последнее слово несколько труднее, так как функции поиска текста в ячейке работают только слева направо. Логика формулы будет такая:

    • подсчитаем, сколько в ячейке пробелов, воспользовавшись приемом из Задачи 1.

    =ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))

    • с помощью функции ПОДСТАВИТЬ заменим последний пробел в тексте на символ, которого там точно нет (например, «*» или «$»). Чтобы заменить именно последний пробел, добавим в качестве необязательного аргумента формулу из предыдущего пункта (то есть число пробелов, так как оно равно номеру последнего пробела)

    =ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»)))

    • теперь, когда последний пробел заменен на «*», мы можем узнать его позицию с помощью функции НАЙТИ() . В качестве текста, в котором ищем, укажем предыдущую формулу

    =НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))))

    • если из общей длины текста мы вычтем найденную позицию звездочки, то получим число символов после звездочки (то есть длину последнего слова в ячейке)

    =ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))))

    • теперь, зная длину последнего слова, мы можем вытащить его из ячейки с помощью функции ПРАВСИМВ() . Она работает точно так же, как ЛЕВСИМВ() , но извлекает символы не с начала, а с конца строки. В качестве количества извлекаемых символов, укажем предыдущую формулу.

    Как и в предыдущей задаче, можно обернуть в ЕСЛИОШИБКА , чтобы верно работало с ячейками, в которых только 1 слово.

    =ЕСЛИОШИБКА(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»)))));A1)

    Если Вас не пугает VBA и макросы, то есть гораздо более изящное решение. Добавьте в модуль книги (можно в личную книгу макросов) следующий код:

    Function РЕВЕРС(str As String)

    Это макрофункция. Теперь, используя ее, можно отразить текст зеркально, извлечь первое слово, как в Задаче 2 и отразить его обратно. Формула:

    Берите на вооружение, если любите макросы.

    Задача 4. Извлечение n-ного слова из текста

    Самый интересный пример. Для решения подобной задачи нужно применить фантазию. Разберем решение поэтапно.

    Помимо уже использовавшихся в статье функций, нам понадобятся еще 2:

    1) ПОВТОР() . Умеет повторять указанный текст указанное число раз.

    2) ПСТР() . Имеет 3 аргумента:

    • исходный текст;
    • позиция, с которой нужно начать извлечение;
    • число символов, которые нужно извлечь.

    Теперь мы вооружены всем нужным инструментарием. Приступаем:

    • Для начала воспользуемся функцией ПОВТОР() , чтобы вместо 1 пробела в тексте вставить число пробелов, равное длине исходного текста. Количество повторений узнаем через уже известную функцию ДЛСТР() . Итак, формула:

    =ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;ДЛСТР(A1)))

    • Теперь каждое слово отделено друг от друга числом символов, равным общей длине строки. Чтобы извлечь слово под номером n, нам нужно узнать позицию какого-нибудь пробела между словом n и n-1 в обработанном удлиненном тексте. Это может сделать формула ниже (+1 в ней нужно для правильного поиска первого слова):

    =ДЛСТР(A1)*(n-1)+1

    Чтобы лучше понять, какую позицию относительно начала строки Вы найдете благодаря этой формуле, взгляните на рисунок ниже (делайте поправку на масштаб).

    • Теперь мы может извлечь из найденной позиции число символов ДЛСТР(A1) (на рисунке — m ) и извлеченный текст всегда будет захватывать нужное нам слово целиком (с некоторым количеством предшествующих и последующих пробелов)

    =ПСТР(ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;ДЛСТР(A1)));ДЛСТР(A1)*(n-1)+1;ДЛСТР(A1))

    • Осталось избавиться от лишних пробелов функцией СЖПРОБЕЛЫ()

    =СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;ДЛСТР(A1)));ДЛСТР(A1)*(n-1)+1;ДЛСТР(A1)))

    Не забудьте в формуле заменить n на номер извлекаемого слова или ссылку на ячейку с этим номером.

    Задача 5. Извлечение имя файла из полного пути к нему

    Напоследок, небольшой практический пример. Есть некоторый список файлов с указанием полного пути к ним. Нужно из всех ссылок собрать только имена файлов.

    Как мы знаем, директории в ссылках отделены друг от друга символом «». После последнего такого символа расположено нужное нам имя файла. Похоже на задачу с извлечением последнего слова? Только вместо пробелов теперь символ обратной косой черты.

    Берем формулу из задачи 3 и заменяем в ней пробелы на «».

    Получим следующую формулу:

    Вставляем в ячейку и вуаля! Имя файла извлечено.

    Полученной информации Вам будет вполне достаточно, чтобы извлечь из ячейки, например, имя файла без расширения. Попробуйте составить такую формулу самостоятельно и сравните ее с формулой, предоставленной в файле-примере. Его можно скачать здесь . Там Вы найдете все формулы, предложенные в статье.

    Поддержать наш проект и его дальнейшее развитие можно вот здесь .

    Ваши вопросы по статье можете задавать через нашего бота обратной связи в Telegram: @ExEvFeedbackBot

    Microsoft Excel

    трюки • приёмы • решения

    Как извлечь слова из строки таблицы Excel

    Формулы в этой статье полезны для извлечения слов из текста, содержащегося в ячейке. Например, вы можете создать формулу для извлечения первого слова в предложении.

    Извлечение первого слова из строки

    Чтобы извлечь первое слово из строки, формула должна найти позицию первого символа пробела, а затем использовать эту информацию в качестве аргумента для функции ЛЕВСИМВ. Следующая формула делает это: =ЛЕВСИМВ(A1;НАЙТИ(» «;A1)-1) .

    Эта формула возвращает весь текст до первого пробела в ячейке A1. Однако у нее есть небольшой недостаток: она возвращает ошибку, если текст в ячейке А1 не содержит пробелов, потому что состоит из одного слова. Несколько более сложная формула решает проблему с помощью новой функции ЕСЛИОШИБКА, отображая все содержимое ячейки, если произошла ошибка:
    =ЕСЛИОШИБКА(ЛЕВСИМВ(A1;НАЙТИ(» «;A1)-1);A1) .

    Если вам нужно, чтобы формула была совместима с более ранними версиями Excel, вы не можете использовать ЕСЛИОШИБКА. В таком случае придется обойтись функцией ЕСЛИ и функцией ЕОШ для проверки на ошибку:
    =ЕСЛИ(ЕОШ(НАЙТИ(» «;A1));A1;ЛЕВСИМВ(A1;НАЙТИ(» «;A1)-1))

    Извлечение последнего слова строки

    Извлечение последнего слова строки — более сложная задача, поскольку функция НАЙТИ работает только слева направо. Таким образом, проблема состоит в поиске последнего символа пробела. Следующая формула, однако, решает эту проблему. Она возвращает последнее слово строки (весь текст, следующий за последним символом пробела):
    =ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;»»;»»)))))

    Но у этой формулы есть такой же недостаток, как и у первой формулы из предыдущего раздела: она вернет ошибку, если строка не содержит по крайней мере один пробел. Решение заключается в использовании функции ЕСЛИОШИБКА и возврате всего содержимого ячейки А1, если возникает ошибка:
    =ЕСЛИОШИБКА(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»)))));A1)

    Следующая формула совместима со всеми версиями Excel:
    =ЕСЛИ(ЕОШ(НАЙТИ(» «;A1));A1;ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;»»;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))))))

    Извлечение всего, кроме первого слова строки

    Следующая формула возвращает содержимое ячейки А1, за исключением первого слова:
    =ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(» «:A1;1)) .
    Если ячейка А1 содержит текст 2008 Operating Budget, то формула вернет Operating Budget.

    Формула возвращает ошибку, если ячейка содержит только одно слово. Следующая версия формулы использует функцию ЕСЛИОШИБКА, чтобы можно было избежать ошибки; формула возвращает пустую строку, если ячейка не содержит более одного слова:
    =ЕСЛИОШИБКА(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(» «;A1;1));»»)

    А эта версия совместима со всеми версиями Excel:
    =ЕСЛИ(ЕОШ(НАЙТИ(» «;A1));»»;ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(» «;A1;1)))

    Возможно, при работе с Microsoft Excel вы пытались сразу удалить определенное слово из выбранного диапазона. Фактически, Excel предоставляет функцию «Найти и заменить», чтобы легко решить эту проблему.

    Массовое удаление определенного слова с помощью функции поиска и замены


    Массовое удаление определенного слова с помощью функции поиска и замены

    Функция «Найти и заменить» помогает быстро массово удалить определенное слово в диапазоне. Пожалуйста, сделайте следующее.

    1. Выберите диапазон с конкретным словом, которое нужно массово удалить, нажмите Ctrl + F , чтобы открыть Найти и заменить диалоговое окно.

    2. В дебюте Найти и заменить диалога, нажмите Замените на вкладке введите конкретное слово, которое вы удалите в Найти то, что коробка, держи Заменить пустое поле, а затем щелкните значок Заменить все кнопка. Смотрите скриншот:

    3. Затем Microsoft Excel Появится диалоговое окно, в котором сообщается, сколько произведенных замен. Пожалуйста, нажмите на OK кнопку, а затем закройте Найти и заменить диалоговое окно.

    После этого вы увидите, что слова «версия» сразу удаляются из выбранного диапазона.


    Лучшие инструменты для работы в офисе

    Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

    • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
    • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
    • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
    • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
    • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
    • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
    • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
    • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
    • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

    вкладка kte 201905


    Вкладка Office: интерфейс с вкладками в Office и упрощение работы

    • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
    • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
    • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

    офисный дно

    Комментарии (3)


    Оценок пока нет. Оцените первым!

    • Редакция Кодкампа

    17 авг. 2022 г.
    читать 2 мин


    Вы можете использовать следующие основные формулы для удаления определенного текста из ячеек в Excel:

    Способ 1: удалить один конкретный текст

    =SUBSTITUTE( A1 ,"text1","")
    

    Эта конкретная формула удаляет «text1» из ячейки A1 .

    Способ 2: удалить несколько определенных текстов

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( A1 ,"text1",""),"text2",""),"text3","")
    

    Эта конкретная формула удаляет «текст1», «текст2» и «текст3» из ячейки A1 .

    В следующих примерах показано, как использовать каждый метод на практике.

    Пример 1: удалить один конкретный текст

    Предположим, у нас есть следующий столбец в Excel, в котором показаны позиции 15 разных баскетболистов:

    Мы можем использовать следующую формулу, чтобы удалить «r» из каждого имени позиции:

    =SUBSTITUTE( A2 ,"r","")
    

    Мы можем ввести эту формулу в ячейку B2 , а затем скопировать и вставить ее в каждую оставшуюся ячейку в столбце B:

    Excel удалить определенный текст из ячейки

    Обратите внимание, что буква «r» была удалена из всех названий позиций.

    Пример 2. Удаление нескольких определенных текстов

    Предположим, у нас есть следующий столбец в Excel, который показывает имя пользователя для 10 разных людей на каком-то веб-сайте:

    Предположим, мы хотим удалить следующий конкретный текст из каждого имени пользователя:

    • тире ( )
    • восклицательные знаки ( ! )
    • число 5 ( 5 )

    Для этого мы можем использовать следующую формулу:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( A2 ,"-",""),"!",""),"5","")
    

    Мы можем ввести эту формулу в ячейку B2 , а затем скопировать и вставить ее в каждую оставшуюся ячейку в столбце B:

    Обратите внимание, что все «-», «!» и «5» были удалены из каждого имени пользователя.

    Дополнительные ресурсы

    В следующих руководствах объясняется, как выполнять другие распространенные задачи в Excel:

    Excel: как проверить, содержит ли ячейка частичный текст
    Excel: как проверить, содержит ли ячейка текст из списка
    Excel: как рассчитать среднее значение, если ячейка содержит текст
    Excel: как подсчитать частоту текста

    Убрать лишнее из ячейки в Microsoft Excel можно разными способами, тут все будет зависеть в первую очередь от количества самих ячеек из которых нужно удалить лишнею часть текста. Если их не много то тут все просто, выделяем ячейку, выделяем не нужную часть текста и удаляем её. А вот если ячеек скажем 50, 100 или даже 1000, редактирование каждой займет очень много времени, но есть один способ который позволит из всех ячеек сразу убрать лишний текст.

    Как убрать часть текста из нескольких ячеек

    И так, как же можно убрать часть текст сразу из нескольких ячеек, допустим есть вот такой список, в каждой ячейки есть имя и телефон. Нам необходимо из всех ячеек убрать номера телефонов оставив только ФИО.

    Как убрать часть текста из нескольких ячеек

    Конечно если ячеек не много как в моем случае проще и быстрей будет отредактировать каждую по отдельности.

    Как Microsoft Excel убрать лишнее из нескольких ячеек

    Но если их будет больше 10 то тут уже лучше воспользоваться автозаменой. И так выделяем все ячейки из которых хотим убрать лишнее и нажимаем сочетание клавиш «Ctrl+H». В открывшемся окне в поле «Найти» вводим, сначала ставим один пробел потом слово «тел» и знак «*», поле «Заменить на» оставляем пустым и жмем «Заменить все».

    Как Excel убрать лишнее из ячейк

    В итоге во всех выделенных ячейках после слова «Тел» все будет заменено.

    Microsoft Excel Как убрать часть текста из нескольких ячеек сразу

    Немного поясню, сначала в поле «Найти» ставим один пробел далее пишем слово с которого хотим начать замену, звездочка говорит о том что после указанного слова все будет заменено.

    Содержание

    1. Microsoft Excel
    2. Как извлечь слова из строки таблицы Excel
    3. Извлечение первого слова из строки
    4. Извлечение последнего слова строки
    5. Извлечение всего, кроме первого слова строки
    6. ПРАВСИМВ, ПРАВБ (функции ПРАВСИМВ, ПРАВБ)
    7. Описание
    8. Синтаксис
    9. Пример
    10. Последнее слово
    11. Способ 1. Формулы
    12. Способ 2. Макрофункция
    13. Способ 3. Power Query
    14. Удалить последнее слово в ячейках Excel / удалить последние N слов
    15. Удалить последнее слово из ячейки: формула
    16. Удаление с помощью регулярного выражения
    17. Удалить последнее слово/N последних слов во всем столбце
    18. Заключение

    Microsoft Excel

    трюки • приёмы • решения

    Как извлечь слова из строки таблицы Excel

    Формулы в этой статье полезны для извлечения слов из текста, содержащегося в ячейке. Например, вы можете создать формулу для извлечения первого слова в предложении.

    Извлечение первого слова из строки

    Если вам нужно, чтобы формула была совместима с более ранними версиями Excel, вы не можете использовать ЕСЛИОШИБКА. В таком случае придется обойтись функцией ЕСЛИ и функцией ЕОШ для проверки на ошибку:
    =ЕСЛИ(ЕОШ(НАЙТИ(» «;A1));A1;ЛЕВСИМВ(A1;НАЙТИ(» «;A1)-1))

    Извлечение последнего слова строки

    Извлечение последнего слова строки — более сложная задача, поскольку функция НАЙТИ работает только слева направо. Таким образом, проблема состоит в поиске последнего символа пробела. Следующая формула, однако, решает эту проблему. Она возвращает последнее слово строки (весь текст, следующий за последним символом пробела):
    =ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;»»;»»)))))

    Но у этой формулы есть такой же недостаток, как и у первой формулы из предыдущего раздела: она вернет ошибку, если строка не содержит по крайней мере один пробел. Решение заключается в использовании функции ЕСЛИОШИБКА и возврате всего содержимого ячейки А1, если возникает ошибка:
    =ЕСЛИОШИБКА(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»)))));A1)

    Следующая формула совместима со всеми версиями Excel:
    =ЕСЛИ(ЕОШ(НАЙТИ(» «;A1));A1;ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;»»;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))))))

    Извлечение всего, кроме первого слова строки

    Формула возвращает ошибку, если ячейка содержит только одно слово. Следующая версия формулы использует функцию ЕСЛИОШИБКА, чтобы можно было избежать ошибки; формула возвращает пустую строку, если ячейка не содержит более одного слова:
    =ЕСЛИОШИБКА(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(» «;A1;1));»»)

    А эта версия совместима со всеми версиями Excel:
    =ЕСЛИ(ЕОШ(НАЙТИ(» «;A1));»»;ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(» «;A1;1)))

    Источник

    ПРАВСИМВ, ПРАВБ (функции ПРАВСИМВ, ПРАВБ)

    В этой статье описаны синтаксис формулы и использование функций ПРАВСИМВ и ПРАВБ в Microsoft Excel.

    Описание

    Функция ПРАВСИМВ возвращает последний символ или несколько последних символов текстовой строки на основе заданного числа символов.

    Функция ПРАВБ возвращает последний символ или несколько последних символов текстовой строки на основе заданного числа байтов.

    Эти функции могут быть доступны не на всех языках.

    Функция ПРАВСИМВ предназначена для языков с однобайтовой кодировкой, а ПРАВБ — для языков с двухбайтовой кодировкой. Язык по умолчанию, заданный на компьютере, влияет на возвращаемое значение следующим образом.

    Функция ПРАВСИМВ всегда считает каждый символ (одно- или двухбайтовый) за один вне зависимости от языка по умолчанию.

    Функция ПРАВБ считает каждый двухбайтовый символ за два, если включена поддержка ввода на языке с двухбайтовой кодировкой, а затем этот язык назначен языком по умолчанию. В противном случае функция ПРАВБ считает каждый символ за один.

    К языкам, поддерживающим БДЦС, относятся японский, китайский (упрощенное письмо), китайский (традиционное письмо) и корейский.

    Синтаксис

    Аргументы функций ПРАВСИМВ и ПРАВБ описаны ниже.

    Текст Обязательный. Текстовая строка, содержащая символы, которые требуется извлечь.

    Число_знаков Необязательный. Количество символов, извлекаемых функцией ПРАВСИМВ.

    Значение «число_знаков» должно быть больше нуля или равно ему.

    Если значение «число_знаков» превышает длину текста, функция ПРАВСИМВ возвращает весь текст.

    Если значение «число_знаков» опущено, оно считается равным 1.

    Число_байтов Необязательный. Количество символов, извлекаемых функцией ПРАВБ.

    Num_bytes должен быть больше нуля или равен нулю.

    Если num_bytes больше, чем длина текста, то right возвращает весь текст.

    Если num_bytes опущен, предполагается, что это 1.

    Пример

    Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

    Источник

    Последнее слово

    Простая, на первый взгляд, задача с не очевидным решением: извлечь из строки текста последнее слово. Ну или, в общем случае, последний фрагмент, отделенный заданным символом-разделителем (пробелом, запятой и т.д.) Другими словами, необходимо реализовать реверсивный поиск (от конца к началу) в строке заданного символа и извлечь потом все символы справа от него.

    Давайте рассмотрим традиционно несколько способов решения на выбор: формулами, макросами и через Power Query.

    Способ 1. Формулы

    Теперь отрежем от конца получившегося текста 20 символов с помощью функции ПРАВСИМВ (RIGHT) :

    Уже теплее, да? Осталось убрать лишние пробелы с помощью функции СЖПРОБЕЛЫ (TRIM) и задача будет решена:

    В английской версии наша формула будет выглядеть, соответственно:

    =TRIM(RIGHT(SUBSTITUTE(A1;» «;REPT(» «;20));20))

    И если исходный текст нужно разделить не по пробелу, а по другому символу-разделителю (например, по запятой), то нашу формулу надо будет чуть-чуть подправить:

    Способ 2. Макрофункция

    Теперь можно сохранить книгу (в формате с поддержкой макросов!) и воспользоваться созданной функцией в следующем синтаксисе:

    =LastWord(txt ; delim ; n)

    При любых изменениях в исходном тексте в будущем наша макрофункция будет «на лету» пересчитываться, как и любая стандартная функция листа Excel.

    Способ 3. Power Query

    Наша задача по отделению последнего слова или фрагмента через заданный разделитель с помощью Power Query решается очень легко.

    Затем загрузим созданную «умную таблицу» в Power Query с помощью команды Из таблицы / диапазона (From table/range) на вкладке Данные (если у вас Excel 2016) или на вкладке Power Query (если у вас Excel 2010-2013):

    И в итоге получаем:

    Если в будущем исходный список изменится, то достаточно будет правой кнопкой мыши или сочетанием клавиш Ctrl + Alt + F5 обновить наш запрос.

    Источник

    Удалить последнее слово в ячейках Excel / удалить последние N слов

    Иногда при работе с Excel возникает необходимость удалить последнее слово или несколько слов в конце фраз в ячейках.

    Для решения задачи можно объединить несколько функций программы, чтобы осуществить поиск справа налево в ячейке, но есть помимо обычных формул и другие способы. Расскажу обо всем по порядку.

    Удалить последнее слово из ячейки: формула

    В отличие от процедуры удаления первого слова из ячейки, где формула довольно простая в силу того, что функция ПОИСК ищет слева направо, формула для удаления последнего слова существенно сложнее.

    К сожалению, эквивалента ПОИСК, которая искала бы символ в строке не слева направо, а наоборот, справа, нет. Ниже пошаговое описание формулы, которая позволит, тем не менее, сочетанием функций найти его. После этого удалить последнее слово будет уже несложно.

    Формула получается заменой A1 на полное выражение без знака равенства во втором шаге.
    =ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))

    Если вы точно уверены, можно использовать конкретный символ, например, «».
    Можно повысить уверенность с помощью функции ЮНИСИМВ — она позволяет вставлять на лист какие угодно символы из UNICODE-таблицы.
    Например, =ЮНИСИМВ(23456)
    Возвращает: 宠
    Полагаю, это китайский или японский.

    У функции ПОДСТАВИТЬ есть необязательный четвертый аргумент, обозначающий позицию символа, который нужно заменить. На втором шаге мы его не использовали, чтобы он удалил все пробелы. На этом шаге вставляем в него формулу из четвертого шага.
    Третьим аргументом будет формула из пятого шага.
    =ПОДСТАВИТЬ(A1;» «;ЮНИСИМВ(23456);ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»)))

    На этот раз функция ПОИСК замечательно справится. Поскольку символ в строке гарантированно в единственном экземпляре, его можно искать и слева направо.
    =ПОИСК(ЮНИСИМВ(23456);A1;ПОДСТАВИТЬ(A1;» «;ЮНИСИМВ(23456);ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))))

    =ПОИСК(ЮНИСИМВ(23456);A1;ПОДСТАВИТЬ(A1;» «;ЮНИСИМВ(23456);ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))))-1

    =ЛЕВСИМВ(A1;ПОИСК(ЮНИСИМВ(23456);A1;ПОДСТАВИТЬ(A1;» «;ЮНИСИМВ(23456);ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))))-1)

    Чтобы обезопасить себя от ситуаций, когда в ячейке одно слово и чтобы формула в таких случаях его удаляла, а не возвращала ошибку.
    =ЛЕВСИМВ(» «&A1;ПОИСК(ЮНИСИМВ(23456);ПОДСТАВИТЬ(» «&A1;» «;ЮНИСИМВ(23456);ДЛСТР(» «&A1)-ДЛСТР(ПОДСТАВИТЬ(» «&A1;» «;»»))))-1)

    Предыдущий шаг добавит обезопасит от ошибок, но добавит лишний пробел слева. Функция удалит его и любые другие лишние пробелы между слов или в конце строки.

    Итак, формула удаления последнего слова из ячейки:

    Удаление с помощью регулярного выражения

    Регулярные выражения в Excel наделяют специалиста, знакомого с их синтаксисом, практически неограниченными возможностями по поиску, извлечению, замене и удалению текстовых данных без использования монструозных мегаформул, описанных выше.

    Функциями листа можно пользоваться абсолютно бесплатно, а подробно об этом синтаксисе можно почитать в моей статье:

    Удалить последнее слово/N последних слов во всем столбце

    Удаляем последние 2 слова в конце всех ячеек:

    Удаление последних двух слов в ячейках столбца в 2 клика

    Аналогично решается задача для нескольких — можно использовать пункт «Последние N», чтобы указать количество удаляемых слов, считая справа:

    Удаляем последние 4 слова в ячейках столбца, вводя необходимое количество слов самостоятельно

    Заключение

    Источник

    Понравилась статья? Поделить с друзьями:

    А вот еще интересные статьи:

  • Как удалить дубли ячеек в excel
  • Как удалить всю табуляцию в word
  • Как удалить гиперссылку в excel 2007
  • Как удалить дубли строки в таблице excel
  • Как удалить всю таблицу в word

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии