- Удалить первое слово из ячейки: составляем формулу
- Находим позицию первого пробела
- Заменяем фрагмент до первого пробела на пустоту
- Удалить первое слово в ячейках в 2 клика
Иногда при работе с Excel возникает необходимость удалить первое слово или же несколько слов в начале фраз в ячейке. Для решения задачи вам потребуется объединить несколько функций программы.
Задача удаления первого слова является частным случаем более общей (см. статью): «Как в Excel удалить текст до определенного символа».
Удалить первое слово из ячейки: составляем формулу
Технически, первое слово — это все символы в ячейке до первого пробела или до конца строки, если слово в ячейке всего одно. Как его удалить?
Находим позицию первого пробела
Есть 2 варианта формул, оба требуют сначала найти позицию первого символа пробела в строке, это делается с помощью функции ПОИСК или функции НАЙТИ. Обе ищут позицию в ячейке первого вхождения значения, указанного в первом аргументе, просматривая ячейку (второй аргумент) слева направо.
А что, если слово в строке одно, и пробела там нет? Обе функции вернут ошибку. Но её можно обойти, производя поиск не в самой ячейке, а в тексте ячейки с присоединенным к нему справа пробелом (&” “). Смотрите пример:
Может быть и другая неприятная ситуация — в начале ячейке может быть лишний пробел, что может нам испортить решение задачи. Если есть такая вероятность, рекомендуется сначала удалить лишние пробелы.
Заменяем фрагмент до первого пробела на пустоту
Теперь, когда нам известна позиция первого символа идущего после слова, ею можно воспользоваться, чтобы заменить слово на пустоту, что эквивалентно его удалению. Пустота обозначается кавычками, между которыми ничего нет (“”).
Нам потребуется функция «ЗАМЕНИТЬ». Ей мы указываем ячейку, в которой производится замена, начиная с какой позиции, сколько символов, и на что заменим этот промежуток. Обратите внимание – функция не выдает ошибку в последней строке, несмотря на то, что в ячейке A8 меньше символов, чем число, которое мы ей указываем в B4.
Чтобы не создавать два столбца, можно совместить формулы в одну составную. Просто заменим в формулах третьего столбца ссылки на формулы второго столбца самими этими формулами. Так будет выглядеть итоговая составная формула удаления первого слова в ячейке для первой строки с данными:
=ЗАМЕНИТЬ(A2;1;ПОИСК(" ";A2&" ");"")
А ниже процесс, как происходит её создание:
Удалить первое слово в ячейках в 2 клика
Как видно, формулы выше не очень просты, и требуется время, даже чтобы просто их написать. Помимо этого, формулы требуют создания дополнительного столбца (или двух). Надстройка !SEMTools поможет упростить и ускорить решение задачи. Ниже показан пример удаления первых слов в ячейках, прямо на месте:
В примере ниже удаляем уже 2 слова в начале всех ячеек столбца:
Аналогично решается задача для трёх и более слов — можно использовать пункт «Первые N», чтобы указать количество удаляемых слов самостоятельно.
Хотите так же быстро удалять слова в Excel?
!SEMTools поможет автоматизировать процессы и решит эту и другие задачи буквально за пару кликов!
Формулы в этой статье полезны для извлечения слов из текста, содержащегося в ячейке. Например, вы можете создать формулу для извлечения первого слова в предложении.
Извлечение первого слова из строки
Чтобы извлечь первое слово из строки, формула должна найти позицию первого символа пробела, а затем использовать эту информацию в качестве аргумента для функции ЛЕВСИМВ. Следующая формула делает это: =ЛЕВСИМВ(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)))
Бывает, что возникает потребность в удалении первого слова или нескольких слов вначале фразы в ячейке таблицы «Эксель». Выполнить это руками очень сложно, особенно, когда список представляет собой перечень из нескольких сотен или тысяч позиций, при помощи одной функции это сделать тоже невозможно.
Чтобы выполнить задачу по удалению первых 2-3 (или первого одного) слов необходимо воспользоваться системой (сочетанием) из нескольких функций, о которых расскажем ниже:
Первая функция «ПОДСТАВИТЬ» — она находит нужный текст и заменяет его на другой. У этой функции есть одно большое преимущество – это возможность заменить текст в определенной позиции. То есть заменить текст, встречающийся первый, второй, третий и т.д. раз по счету. В нашем случае эта функция заменит пробел, встречающийся второй раз на какой-нибудь символ, желательно не встречающийся в тексте.
Вторая функция «НАЙТИ» — находит позицию текста и присваивает позиции числовое значение. Например, если замененный нами на символ пробел будет стоять на 12 месте от начала строки, то функция найти примет значение 12.
Третья функция это «ЛЕВСИМВ» или «ПРАВСИМВ» (в зависимости от того будем ли мы удалять слова справа или слева). «ЛЕВСИМВ» или «ПРАВСИМВ» — присваивают ячейке строго определенное количество символов из текста.
Четвертая функция «ДЛСТР» — находит длину строки в ячейке и определяет количество символов в выбранной ячейке.
Теперь давайте составим систему из этих функций, которая будет отрезать (удалять) первые три слова из ячеек.
Система выглядит следующим образом:
=ПРАВСИМВ(B3;((ДЛСТР(B3))-(НАЙТИ(«*»;ПОДСТАВИТЬ(B3;» «;»*»;3)))))
В этой системе функция «ПОДСТАВИТЬ» заменяет третий по счету пробел на знак «*», функция «НАЙТИ» находит положение этого знака относительно начала строки, функция «ДЛСТР» считает общее количество знаков, а «ПРАВСИМВ» оставляет нужное количество знаков, справа, удаляя первые знаки ровно по длине «ненужных» слов.
Чтобы скопировать первые несколько слов можно воспользоваться похожей системой, только не удалять лишние знаки а наоборот оставить первые несколько знаков относящиеся к «нужным» словам.
Функции выглядят следующим образом:
=ЛЕВСИМВ(B3; НАЙТИ(«*»;ПОДСТАВИТЬ(B3;» «;»*»;3)).
Удаление первого или второго слова в Excel — это простая задача, выполнить которую можно при помощи приведенной ниже формулы, которая также поможет извлечь (копировать) первые несколько слов в новую ячейку.
- Удаление;
- Извлечение.
Удаление первого слова в Excel
Для выполнения данной задачи потребуется использовать формулу:
=ПРАВСИМВ(B3;((ДЛСТР(B3))-(НАЙТИ(«*»;ПОДСТАВИТЬ(B3;» «;»*»;1)))))
Важно! Последняя цифра 1 отвечает за количество слов, которое будет удаляться, поэтому заменив ее, например, на 3 можно получить исключение первых 3 слов.
=ПРАВСИМВ(B3;((ДЛСТР(B3))-(НАЙТИ(«*»;ПОДСТАВИТЬ(B3;» «;»*»;3)))))
Пример:
Извлечь первые слова в Эксель
Чтобы скопировать эти данные в новую ячейку можно использовать конструкцию:
=ЛЕВСИМВ(A2;НАЙТИ(«*»;ПОДСТАВИТЬ(A2;» «;»*»;4)))
Аналогично можно избавиться и от завершающих значений.
Важно! Аналогично исключению последняя цифра отвечает за управление количеством.
Если потребуется больше операций в данном направлении ознакомьтесь со статьей.
Пример:
В данном слча необходими удалить слова НАУШНИКИ в столбце! |
|
Hugo Пользователь Сообщений: 23252 |
Текст по столбцам, разделитель — пробел, лишние разделители убрать. |
если просто удалить, то ctrl+F заменить «Наушники » на «» (без кавычек) |
|
Hugo Пользователь Сообщений: 23252 |
Нет, не пробел, а фиксированной ширины. Тогда лишнее можно убрать. |
Владимир Пользователь Сообщений: 8196 |
=ПСТР(A1;НАЙТИ(» «;A1)+1;100) «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Димон, мысль имеет право на жизнь, но что если категорий товаров 300, например? Я сам — дурнее всякого примера! … |
Владимер спасибо большое ваша формула работает, но а что делать если нужно убрать 2 слова или 3 |
|
kim Пользователь Сообщений: 3139 Игорь |
Для этого существует функция ПОДСТАВИТЬ() |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
1) mobilebo, а как Эксель должен понять, чего Вам хочется? Я сам — дурнее всякого примера! … |
Нужно убрать в прайсе первые слова до бренда товара! Denn DWC600 |
|
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
mobilebo, Вам бы правила почитать. Файл удалят. Размер. Я сам — дурнее всякого примера! … |
Юрий М Модератор Сообщений: 60581 Контакты см. в профиле |
Кто такой KukLP? Или это ребрендинг? |
{quote}{login=KukLP}{date=14.11.2010 05:45}{thema=}{post}Видимо Вам прийдется составить список наборов слов для удаления. И выложить с Вашим примером(в соответствии с правилами). И предполагаю, что этот список будет со временем пополняться.{/post}{/quote} |
|
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
{quote}{login=Юрий М}{date=14.11.2010 06:48}{thema=}{post}Кто такой KukLP? Или это ребрендинг? :-){/post}{/quote}В угоду топикстартерам. ЧТО БЫ ПОМНИЛИ:-) Ну а как еще, чтоб кукипом не называли? Я сам — дурнее всякого примера! … |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
{quote}{login=Mobilebo}{date=14.11.2010 07:26}{thema=Re: }{post}KukLP — мне всеволиш нужны формулы, файл я сам попралю{/post}{/quote} Я сам — дурнее всякого примера! … |
Владимир Пользователь Сообщений: 8196 |
Kim, писал формулу для всех вариантов: Найдите разницу. «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
Ребята спасибо за формулы все работает |
|
А подскажите пожалуйста, если нужно в ячейке убрать 2 слова — первое и последнее, а оставить середину. Мне нужно убрать фамилии и отчества,а оставить лишь имена |
|
Владимир Пользователь Сообщений: 8196 |
=ПСТР(ПСТР(A1;НАЙТИ(» «;A1)+1;30);1;НАЙТИ(» «;ПСТР(A1;НАЙТИ(» «;A1)+1;30))-1) «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
MCH Пользователь Сообщений: 3875 |
=ПСТР(A1;ПОИСК(» «;A1&» «)+1;ПОИСК(«!»;ПОДСТАВИТЬ(A1&» «&» «;» «;»!»;2))-ПОИСК(» «;A1&» «)-1) =СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;99));99;99)) |
Огромное спасибо!! Все формулы рабочие. Только в первой формуле у Владимира при тех ячейках, где не забито отчество, а стоит лишь 2 слова — выходит ошибка. |
|
vikttur Пользователь Сообщений: 47199 |
Ну да, ошибка… А еще может быть забито имя-отчество (без фамилии) или просто имя или фамилия. Эти варианты тоже предусмотреть? |
Hugo Пользователь Сообщений: 23252 |
Виктор, забыл ещё один вариант — фамилия и отчество |
Владимир Пользователь Сообщений: 8196 |
Попытка определить пол человека по ФИО забитых в разнобой. Только славянские имена. «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
vikttur Пользователь Сообщений: 47199 |
КолотОВ ВАсилий ИвановИЧ — женщина |
Владимир Пользователь Сообщений: 8196 |
Замечание принято. Убрал из признаков -«ов»-. =ЕСЛИ(СЧЁТ(ПОИСКПОЗ({1;2};ЕЧИСЛО(ПОИСК({«ва»;»вна»;»вич»};A1))*{1;2;3};0))>СЧЁТ(ПОИСКПОЗ(3;ЕЧИСЛО(ПОИСК({«ва»;»вна»;»вич»};A1))*{1;2;3};0));»Женщина»;»Мужчина») «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
vikttur Пользователь Сообщений: 47199 |
Замечание было по методике. Анна Бражич — совсем не Анна, и ноги у него волосатые |
Юрий М Модератор Сообщений: 60581 Контакты см. в профиле |
|
vikttur Пользователь Сообщений: 47199 |
Приставать хотел к женщине, а там мужик! Ну как тут…?! |
АЛЕКСЕЙ Гость |
#30 30.08.2012 01:16:38 А как в ячейке где два слова, оставить только первое слово? |