Как в excel удалить первое слово в строке

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

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

Задача удаления первого слова является частным случаем более общей (см. статью): «Как в Excel удалить текст до определенного символа».

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

Технически, первое слово — это все символы в ячейке до первого пробела или до конца строки, если слово в ячейке всего одно. Как его удалить?

Находим позицию первого пробела

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

А что, если слово в строке одно, и пробела там нет? Обе функции вернут ошибку. Но её можно обойти, производя поиск не в самой ячейке, а в тексте ячейки с присоединенным к нему справа пробелом (&” “). Смотрите пример:

формула позиции пробела в строке

Высчитываем позицию первого пробела в строке.

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

Заменяем фрагмент до первого пробела на пустоту

Теперь, когда нам известна позиция первого символа идущего после слова, ею можно воспользоваться, чтобы заменить слово на пустоту, что эквивалентно его удалению. Пустота обозначается кавычками, между которыми ничего нет (“”).

Нам потребуется функция «ЗАМЕНИТЬ». Ей мы указываем ячейку, в которой производится замена, начиная с какой позиции, сколько символов, и на что заменим этот промежуток. Обратите внимание – функция не выдает ошибку в последней строке, несмотря на то, что в ячейке A8 меньше символов, чем число, которое мы ей указываем в B4.

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

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

=ЗАМЕНИТЬ(A2;1;ПОИСК(" ";A2&" ");"")

А ниже процесс, как происходит её создание:

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

Как видно, формулы выше не очень просты, и требуется время, даже чтобы просто их написать. Помимо этого, формулы требуют создания дополнительного столбца (или двух). Надстройка !SEMTools поможет упростить и ускорить решение задачи. Ниже показан пример удаления первых слов в ячейках, прямо на месте:

В примере ниже удаляем уже 2 слова в начале всех ячеек столбца:

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

Хотите так же быстро удалять слова в Excel?
!SEMTools поможет автоматизировать процессы и решит эту и другие задачи буквально за пару кликов!

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

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

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

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

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

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

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

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

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

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

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

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

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

    Копировать, убрать/удалить первое слово или несколько первых слов в ячейке 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)))

     

    В данном слча необходими удалить слова НАУШНИКИ в столбце!    
    наушники Explay MPH-210 вкладыши  
    наушники Explay MPH-220  вкладыши  
    наушники Explay MPH-310  вкладыши вакуумные  
    наушники Explay MPH-410  вкладыши вакуумные  
    наушники Explay MPH-420  вкладыши вакуумные  
    наушники Explay MPH-520  вкладыши вакуумные  
    наушники Explay MPH-B20 мониторные складные  
    наушники Explay PCH-115  вкладыши с микрофоном  
    наушники Explay PCH-425  вкладыши вакуумные с микрофоном  
    За помощь зарание спасибо

     

    Hugo

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

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

    Текст по столбцам, разделитель — пробел, лишние разделители убрать.

     

    если просто удалить, то ctrl+F  заменить «Наушники » на «» (без кавычек)

     

    Hugo

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

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

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

     

    Владимир

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

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

    =ПСТР(A1;НАЙТИ(» «;A1)+1;100)

    «..Сладку ягоду рвали вместе, горьку ягоду я одна.»

     

    KuklP

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

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

    E-mail и реквизиты в профиле.

    Димон, мысль имеет право на жизнь, но что если категорий товаров 300, например?  
    Игорь, те же грабли.  
    Остается вариант Владимира. ЮДФ писать нет смысла. Володина формула достаточно коротка.

    Я сам — дурнее всякого примера! …

     

    Владимер спасибо большое ваша формула работает, но а что делать если нужно убрать 2 слова или 3  
    Пример:  
    сотовый телефон NOKIA N97mini white_NAVI  
    сотовый телефон NOKIA X6-00 16 GB white_ NAVI  
    сотовый телефон NOKIA X6-00 16 GB white_pink_NAVI  
    сотовый телефон NOKIA X6-00 16 GB white_pink_NAVI  
    сотовый телефон NOKIA X6-00 32 GB black_red_NAVI  
    сотовый телефон NOKIA X6-00 32 GB white_blue    
    сотовый телефон NOKIA X6-00 32 GB white_blue_NAVI  
    сотовый телефон NOKIA X6-00 8 GB azure  
    сотовый телефон PHILIPS X501 black  
    сотовый телефон PHILIPS X530 black  
    сотовый телефон PHILIPS X550 black  
    сотовый телефон PHILIPS X703 grey

     

    kim

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

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

    Игорь

    Для этого существует функция ПОДСТАВИТЬ()  
    Убираем 3 слова  
    =ПСТР(A1;НАЙТИ(«|»;ПОДСТАВИТЬ(A1;» «;»|»;3))+1;100)  
    Писал на «коленке» потому могут быть ошибки

     

    KuklP

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

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

    E-mail и реквизиты в профиле.

    1) mobilebo, а как Эксель должен понять, чего Вам хочется?  
    2) я бы поблагодарил и остальных форумчан, пожелавших Вам помочь и потративших на это время(каков был Ваш вопрос, таковы были и ответы — все ответы правильные!)  
    3) Не пора ли заглянуть в правила и выложить пример, что есть и что надо?

    Я сам — дурнее всякого примера! …

     

    Нужно убрать в прайсе первые слова до бренда товара!  
    Пример:  
    Web-камера Denn DWC600    
    Web-камера Denn DWC610    
    Web-камера Denn DWC640    

               Denn DWC600    
    Denn DWC610    
    Denn DWC640  
    Бывают поподаються двойные слова сочетания, а иногда и тройные  
    <EM><STRONG>Файл удален</STRONG> — велик размер — [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>

     

    KuklP

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

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

    E-mail и реквизиты в профиле.

    mobilebo, Вам бы правила почитать. Файл удалят. Размер.  
    Но до сих пор так и не ясно — по какому признаку искать часть строки для удаления.  
    Видимо Вам прийдется составить список наборов слов для удаления. И выложить с Вашим примером(в соответствии с правилами). И предполагаю, что этот список будет со временем пополняться.

    Я сам — дурнее всякого примера! …

     

    Юрий М

    Модератор

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

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

    Кто такой KukLP? Или это ребрендинг? :-)

     

    {quote}{login=KukLP}{date=14.11.2010 05:45}{thema=}{post}Видимо Вам прийдется составить список наборов слов для удаления. И выложить с Вашим примером(в соответствии с правилами). И предполагаю, что этот список будет со временем пополняться.{/post}{/quote}  
    KukLP — мне всеволиш нужны формулы, файл я сам попралю

     

    KuklP

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

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

    E-mail и реквизиты в профиле.

    {quote}{login=Юрий М}{date=14.11.2010 06:48}{thema=}{post}Кто такой KukLP? Или это ребрендинг? :-){/post}{/quote}В угоду топикстартерам. ЧТО БЫ ПОМНИЛИ:-) Ну а как еще,  чтоб кукипом не называли?

    Я сам — дурнее всякого примера! …

     

    KuklP

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

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

    E-mail и реквизиты в профиле.

    {quote}{login=Mobilebo}{date=14.11.2010 07:26}{thema=Re: }{post}KukLP — мне всеволиш нужны формулы, файл я сам попралю{/post}{/quote}  
    Без комментариев. Вам Владимир дал формулу по Вашему топику. Поправляйте. Раз уж не вникаете в ответы Вам.

    Я сам — дурнее всякого примера! …

     

    Владимир

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

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

    Kim, писал формулу для всех вариантов:  
    =ПСТР(A1;НАЙТИ(«|»;ПОДСТАВИТЬ(A1;» «;»|»;1))+1;100) — убрать одно слово  
    =ПСТР(A1;НАЙТИ(«|»;ПОДСТАВИТЬ(A1;» «;»|»;2))+1;100) — два слова  
    =ПСТР(A1;НАЙТИ(«|»;ПОДСТАВИТЬ(A1;» «;»|»;3))+1;100) — три…  

      Найдите разницу.

    «..Сладку ягоду рвали вместе, горьку ягоду я одна.»

     

    Ребята спасибо за формулы все работает

     

    А подскажите пожалуйста, если нужно в ячейке убрать 2 слова — первое и последнее, а оставить середину.    
    Пример:  
    Рябцева Любовь Петровна  
    Кремнева Анна Борисовна  
    Епишкина Ирина Юрьевна  
    Олейникова Ирина Анатольевна  

        Мне нужно убрать фамилии и отчества,а оставить лишь имена

     

    Владимир

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

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

    =ПСТР(ПСТР(A1;НАЙТИ(» «;A1)+1;30);1;НАЙТИ(» «;ПСТР(A1;НАЙТИ(» «;A1)+1;30))-1)

    «..Сладку ягоду рвали вместе, горьку ягоду я одна.»

     

    MCH

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

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

    =ПСТР(A1;ПОИСК(» «;A1&» «)+1;ПОИСК(«!»;ПОДСТАВИТЬ(A1&» «&» «;» «;»!»;2))-ПОИСК(» «;A1&» «)-1)  

      =СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;99));99;99))

     

    Огромное спасибо!! Все формулы рабочие. Только в первой формуле у Владимира при тех ячейках, где не забито отчество, а стоит лишь 2 слова — выходит ошибка.

     

    vikttur

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

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

    Ну да, ошибка… А еще может быть забито имя-отчество (без фамилии) или просто имя или фамилия. Эти варианты тоже предусмотреть?

     

    Hugo

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

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

    Виктор, забыл ещё один вариант — фамилия и отчество :)

     

    Владимир

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

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

    Попытка определить пол человека по ФИО забитых в разнобой. Только славянские имена.

    «..Сладку ягоду рвали вместе, горьку ягоду я одна.»

     

    vikttur

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

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

    КолотОВ ВАсилий ИвановИЧ — женщина :)

     

    Владимир

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

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

    Замечание принято. Убрал из признаков -«ов»-.    
    :)  

      =ЕСЛИ(СЧЁТ(ПОИСКПОЗ({1;2};ЕЧИСЛО(ПОИСК({«ва»;»вна»;»вич»};A1))*{1;2;3};0))>СЧЁТ(ПОИСКПОЗ(3;ЕЧИСЛО(ПОИСК({«ва»;»вна»;»вич»};A1))*{1;2;3};0));»Женщина»;»Мужчина»)

    «..Сладку ягоду рвали вместе, горьку ягоду я одна.»

     

    vikttur

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

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

    Замечание было по методике.  
    Славянские имена/фамилии/отчества хоть и поддаются автоматической обработке, но с трудом.  

      Анна Бражич — совсем не Анна, и ноги у него волосатые :)

     

    Юрий М

    Модератор

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

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

     

    vikttur

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

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

    Приставать хотел к женщине, а там мужик! Ну как тут…?! :)

     

    АЛЕКСЕЙ

    Гость

    #30

    30.08.2012 01:16:38

    А как в ячейке где два слова, оставить только первое слово?

    Чтобы извлечь первое слово из строки, формула должна найти позицию первого символа пробела, а затем использовать эту информацию в качестве аргумента для функции ЛЕВСИМВ. Следующая формула делает это: =ЛЕВСИМВ(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)))

    Как удалить первые символы в ячейке Excel?

    Выделите диапазон, на панели ! SEMTools в меню УДАЛИТЬ -> Символы -> обрезать выберите «с начала ячейки». В появившемся диалоговом окошке вбейте количество символов, которое хотите удалить, и нажмите ОК.

    Если нужно удалить знаки справа, то используем ЛЕВСИМВ, если слева, то ПРАВСИМВ. Нажимаем «Enter». Функция ЛЕВСИМВ или ПРАВСИМВ присваивает ячейке нужное нам количество символов из текста в новую ячейку, исключая ненужный нам индекс.

    Зачастую при копировании текста или переносе таблиц возникают проблемы с наличием лишних символов, которые могут появиться по самым разным причинам: неправильный ввод данных, импортирование данных из внешних источников и т.д.
    Как Удалить Первое Слово в Ячейке Excel • Как устранить эту ошибку

    Удаление лишних пробелов в Microsoft Excel

    1. Выберите диапазон ячеек, с которым хотите работать. …
    2. Запустите команду Главная ► Редактирование ► Найти и выделить ► Выделение группы ячеек. …
    3. В этом окне установите переключатель в положение константы, а затем установите флажок числа.
    4. Нажмите кнопку ОК, и ячейки, не содержащие формул, будут выбраны.

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

    Рассоединяем текст с помощью формул

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

    И если с первыми двумя словами понятно, что и как разделять, то разделителя для последнего слова нет, а это значит что нужно указать в качестве аргумента условно большое количество символов, как аргумент «число_знаков» для функции ПСТР, например, 100, 200 или больше.

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

    • Во-первых, нам необходимо найти два пробела, которые разделяют наши слова, для поиска первого пробела нужна формула: =ПОИСК(» «;B2;1), а для второго подойдет: =ПОИСК(» «;B2;C2+1);
    • Во-вторых, определяем, сколько символов нужно выделить в строке. Поскольку позиции разделителя мы уже определили, то символов для разделения у нас будет на один меньше. Значит, будем использовать функцию ПСТР для изъятия слов, с ячейки используя как аргумент «количество_знаков» результат работы предыдущей формулы. Для определения первого слова (Фамилии) нужна формула: =ПСТР(B2;1;ПОИСК(» «;B2;1)), для определения второго значения (Имя): =ПСТР(B2;ПОИСК(» «;B2;1)+1;ПОИСК(» «;B2;ПОИСК(» «;B2;1)+1) -ПОИСК(» «;B2;1)), а теперь определим последнее значение (Отчество): =ПСТР(B2;ПОИСК(» «;B2;ПОИСК(» «;B2;1)+1)+1;100).

    Slitii text 5 Как разделить текст в ячейке Excel?

    В результате мы разделили ФИО на три слова, что позволит с ними эффективно работать.

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

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

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

    9 распространенных ошибок Excel, которые вы бы хотели исправить

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

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

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

    Спонсором сегодняшнего выпуска является компания Arenda-it.ru. Минимизируйте затраты на IT с облачным сервисом https://arenda-it.ru/1s-oblako. 1С Облако предоставляет доступ к 1С через интернет. Выполняйте свою непосредственную работу, остальное оставьте сотрудникам компании: обновление программного обеспечения 1С, настройку и сопровождение, решение технических вопросов.

    Удаление раскрывающегося списка в Microsoft Excel

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

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

    Вариант 3: Изменение типа данных в ячейке

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

    Повторный переход в Проверка данных для удаления раскрывающегося списка в Excel

    Выделите ячейку и перейдите в «Проверка данных» точно так же, как это было показано выше.

    Изменение типа данных для удаления раскрывающегося списка в Excel

    На этот раз разверните меню «Тип данных» и установите параметр «Любое значение» или другой, в зависимости от ваших личных предпочтений.

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

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

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

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

    Как убрать лишние пробелы в Excel

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

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

    Копировать, убрать/удалить первое слово или несколько первых слов в ячейке 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.
    • с помощью функции ПОДСТАВИТЬ заменим последний пробел в тексте на символ, которого там точно нет (например, «*» или «$»). Чтобы заменить именно последний пробел, добавим в качестве необязательного аргумента формулу из предыдущего пункта (то есть число пробелов, так как оно равно номеру последнего пробела)
    • теперь, когда последний пробел заменен на «*», мы можем узнать его позицию с помощью функции НАЙТИ() . В качестве текста, в котором ищем, укажем предыдущую формулу
    • если из общей длины текста мы вычтем найденную позицию звездочки, то получим число символов после звездочки (то есть длину последнего слова в ячейке)
    • теперь, зная длину последнего слова, мы можем вытащить его из ячейки с помощью функции ПРАВСИМВ() . Она работает точно так же, как ЛЕВСИМВ() , но извлекает символы не с начала, а с конца строки. В качестве количества извлекаемых символов, укажем предыдущую формулу.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    =СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(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)))

    На чтение 5 мин Просмотров 8.3к. Опубликовано 12.05.2022

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

    Допустим у нас есть первый столбик, в котором лежат значения буква+цифры, нам нужно обрезать их таким образом, чтобы получились только цифры. Как на картинке ниже:

    На самом деле, есть несколько вариантов, как можно это сделать.

    Итак, давайте начнем!

    Содержание

    1. С помощью функции ЗАМЕНА
    2. Копируем из ячейки все, кроме первого символа
    3. С помощью функции «Текст по столбцам»
    4. С помощью автозаполнения
    5. С помощью Visual Basic

    С помощью функции ЗАМЕНА

    Самый распространенный способ — использовать функцию ЗАМЕНА. Она довольно простая и в то же время полезная.

    Для указанного выше примера формула функции принимает такой вид:

    =ЗАМЕНА(A2;1;1;"")

    Что она делает?

    Просто заменяет первый символ в строке на пустое место.

    С помощью неё можно удалить любое количество символов с начала строки, например удалить два символа можно так:

    =ЗАМЕНА(A1;1;2;"")

    Копируем из ячейки все, кроме первого символа

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

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

    Допустим, у нас тот же столбик, который нужно обработать:

    В этой ситуации формула принимает такой вид:

    =ПРАВСИМВ(A1;ДЛСТР(A1)-1)

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

    С помощью функции «Текст по столбцам»

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

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

    Допустим, у нас тот же столбик:

    Пошаговая инструкция:

    • Выделите ячейки и щелкните на «Данные»;

    • Далее «Текст по столбцам»;

    • В открывшемся окошке:
    • В первом шаге используйте вторую опцию (как на картинке);

    • Во втором шаге установите стрелку на том делении, сколько символов вы хотите «отрезать»;

    • И в последнем шаге, выберите «пропустить столбец»;

    • Подтвердите.

    Таким образом, первый символ был удален.

    Как это работает?

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

    С помощью автозаполнения

    Эта функция — одна из самых удобных функций в Excel. Она автоматически пытается угадать значения для следующих ячеек, если вы заполнили первую (одну или две).

    Давайте посмотрим как это работает.

    Допустим, у нас тот же столбик:

    Воспользуемся этой функцией

    Пошаговая инструкция:

    • В следующем столбике, впишите значение, которое должно быть после преобразования (в нашем случае 271);

    • А также, по аналогии, укажите значение для второй ячейки. На самом деле, функция автозаполнения уже поняла логику и предлагает нам заполнить всю оставшуюся часть;

    • Теперь выделите обе ячейки с обработанными данными;

    • Наведите курсор на правую нижнюю часть выделения и потяните её вниз;

    • Готово!

    Просто не правда ли?

    Это удобная функция, но с ней нужно быть осторожным. Если она неправильно поймет логику вашего заполнения — могут быть ошибки.

    С помощью Visual Basic

    Ну и как обычно, напоследок, рассмотрим как можно сделать это с помощью Visual Basic.

    Я дам вам код функции для такого рода задачи, вы сможете модифицировать его.

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

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

    Этот код удаляет первый символ из каждой ячейки:

    For Each cell In Selection: cell.Value = Right(cell.Value, Len(cell.Value) - 1): Next cell

    Как его использовать?

    Пошаговая инструкция:

    • Выделите диапазон ячеек, в которых нужно удалить первый символ
    • Откройте просмотр кода (правой кнопкой на имя листа -> «Просмотр кода»);

    • Далее щелкните на «View» -> «Immediate Window» (или CTRL + G);

    • Поместите в окно наш код;

    • Обязательно наведите мышь в конец кода;

    • И просто подтвердите (нажав ENTER);

    Готово, первый символ удален.

    Что же делает этот код?

    For Each cell In Selection: cell.Value = Right(cell.Value, Len(cell.Value) - 1): Next cell  

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

    В общем то и все! Мы рассмотрели несколько удобных и практичных методов удаления первого символа из каждой ячейки.

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

    Удаление первого или второго слова в Excel — это простая задача, выполнить которую можно при помощи приведенной ниже формулы, которая также поможет извлечь (копировать) первые несколько слов в новую ячейку.

    • Удаление;
    • Извлечение.

    Удаление первого слова в Excel

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

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

    Важно! Последняя цифра 1 отвечает за количество слов, которое будет удаляться, поэтому заменив ее, например, на 3 можно получить исключение первых 3 слов.

    Удаление первого слова из ячейки в таблице Excel

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

    Удаление первых трех слов из ячейки в таблице Эксель

    Пример:

    Извлечь первые слова в Эксель

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

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

    Извлечение первых четырех слов из ячейки в таблице Ексель

    Аналогично можно избавиться и от завершающих значений.

    Важно! Аналогично исключению последняя цифра отвечает за управление количеством.

    Если потребуется больше операций в данном направлении ознакомьтесь со статьей.

    Пример:

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

    В этом руководстве объясняется, как удалить только первое или последнее слово из текстовой строки в ячейке с формулами в Excel.

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


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

    В этом разделе вы узнаете, как использовать комбинацию функций RIGHT, LEN и FIND для удаления первого слова из строки в ячейке.

    Общая формула

    =RIGHT(A1,LEN(A1)-FIND(» «,A1))

    аргументы

    A1: Представляет ячейку, содержащую текстовую строку, из которой вы удалите первое слово.

    Как пользоваться этой формулой?

    1. Выберите пустую ячейку для вывода результата.

    2. Введите в нее приведенную ниже формулу и нажмите Enter ключ. Затем перетащите его маркер заполнения вниз, чтобы применить формулу к другим ячейкам.

    =RIGHT(B3,LEN(B3)-FIND(» «,B3))

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

    Как работает эта формула?

    =RIGHT(B3,LEN(B3)-FIND(» «,B3))

    1. LEN(B3): Функция LEN вычисляет общую длину текстовой строки «Mr ana varela (Home)» и возвращает результат как 20;

    2. FIND(» «,B3): Поскольку слова разделены пробелом, здесь функция НАЙТИ определяет положение первого пробела в текстовой строке «Mr ana varela (Home)» и возвращает результат как 3;

    3. RIGHT(B3,20-3): Функция ВПРАВО извлекает 17 символов (20-3 = 17) из правой части текстовой строки «Mr ana varela (Home)». Результат — «ана варела (Дом)».


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

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

    Общая формула

    =LEFT(TRIM(A1),FIND(«~»,SUBSTITUTE(A1,» «,»~»,LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1),» «,»»))))-1)

    аргументы

    A1: Представляет ячейку, содержащую текстовую строку, из которой вы удалите последнее слово.

    Как пользоваться этой формулой?

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

    2. Введите в нее приведенную ниже формулу и нажмите Enter ключ. Выберите ячейку результата и перетащите ее маркер заполнения вниз, чтобы применить формулу к другим ячейкам.

    =LEFT(TRIM(B3),FIND(«~»,SUBSTITUTE(B3,» «,»~»,LEN(TRIM(B3))-LEN(SUBSTITUTE(TRIM(B3),» «,»»))))-1)

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

    Как работает эта формула?

    =LEFT(TRIM(B3),FIND(«~»,SUBSTITUTE(B3,» «,»~»,LEN(TRIM(B3))-LEN(SUBSTITUTE(TRIM(B3),» «,»»))))-1)

    1. TRIM(B3): Функция TRIM удаляет все лишние пробелы из строки «Mr ana varela (Home)» и сохраняет только один пробел между словами. Результатом будет «Мистер ана варела (Дом)»;

    2. FIND(«~»,SUBSTITUTE(B3,» «,»~»,LEN(TRIM(B3))-LEN(SUBSTITUTE(TRIM(B3),» «,»»))))

    • LEN(TRIM(B3)): Поскольку функция TRIM возвращает результат как «Mr ana varela (Home)», функция LEN возвращает количество символов в строке «Mr ana varela (Home)» и возвращает результат как 20;
    • LEN(SUBSTITUTE(TRIM(B3),» «,»»)): Функция ЗАМЕНА заменяет все пробелы в текстовой строке «Mr ana varela (Home)» ничем и возвращает результат как «Mranavarela (Home)». Затем функция LEN вычисляет общую длину «Mranavarela (Home)» и получает результат 17;
    • SUBSTITUTE(B3,» «,»~»,20-17): Здесь функция ЗАМЕНА заменяет третий пробел (20-17 = 3) в текстовой строке «Mr ana varela (Home)» на символ «~». Результатом будет «Mr ana varela ~ (Home)».
    • FIND(«~»,»Mr ana varela~(Home)»): Функция НАЙТИ возвращает позицию символа «~» в текстовой строке «Mr ana varela (Home)». Здесь результат 14.

    3. LEFT(«Mr ana varela (Home)»,14-1): Функция LEFT извлекает 13 символов из левой части текстовой строки «Mr ana varela (Home)». И конечный результат — г-н ана варела.


    Связанные функции

    Функция Excel ВПРАВО
    Функция Excel RIGHT извлекает определенное количество символов из правой части текстовой строки.

    Функция ДЛСТР в Excel
    Функция Excel LEN возвращает количество символов в текстовой строке.

    Функция поиска в Excel
    Функция Excel FIND находит строку в другой строке и возвращает начальную позицию строки внутри другой.

    Функция ВЛЕВО в Excel
    Функция Excel LEFT извлекает заданное количество символов из левой части предоставленной строки.

    Функция Excel TRIM
    Функция Excel TRIM удаляет все лишние пробелы из текстовой строки и сохраняет только отдельные пробелы между словами.

    Функция ПОДСТАВИТЬ в Excel
    Функция ЗАМЕНА в Excel заменяет текст или символы в текстовой строке другим текстом или символами.


    Родственные формулы


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

    Kutools for Excel — Помогает вам выделиться из толпы

    Хотите быстро и качественно выполнять свою повседневную работу? Kutools for Excel предлагает 300 мощных расширенных функций (объединение книг, суммирование по цвету, разделение содержимого ячеек, преобразование даты и т. д.) и экономит для вас 80 % времени.

    • Разработан для 1500 рабочих сценариев, помогает решить 80% проблем с Excel.
    • Уменьшите количество нажатий на клавиатуру и мышь каждый день, избавьтесь от усталости глаз и рук.
    • Станьте экспертом по Excel за 3 минуты. Больше не нужно запоминать какие-либо болезненные формулы и коды VBA.
    • 30-дневная неограниченная бесплатная пробная версия. 60-дневная гарантия возврата денег. Бесплатное обновление и поддержка 2 года.

    Лента Excel (с Kutools for Excel установлены)


    Вкладка Office — включение чтения и редактирования с вкладками в Microsoft Office (включая Excel)

    • Одна секунда для переключения между десятками открытых документов!
    • Уменьшите количество щелчков мышью на сотни каждый день, попрощайтесь с рукой мыши.
    • Повышает вашу продуктивность на 50% при просмотре и редактировании нескольких документов.
    • Добавляет эффективные вкладки в Office (включая Excel), точно так же, как Chrome, Firefox и новый Internet Explorer.

    Снимок экрана Excel (с установленной вкладкой Office)

    Excel formula to delete the first or last word from a cell.

    You can copy and paste the formulas below for a quick fix and also learn how they work, if you’re interested.

    Sections:

    Remove the First Word from a Cell

    Remove the Last Word from a Cell

    More Versatile Formulas — Prevents Errors

    Notes

    Remove the First Word from a Cell

    =RIGHT(A1,LEN(A1)-FIND(" ",A1))
    

    72a19d16bbe94715ef5f866b13512395.png

    Result:

    f3937e0fee32dae7e591cbcc2a72cad9.png

    This assumes the text is in cell A1, change as needed for your spreadsheet.

    Non-Space Characters

    If your words use dashes or some other separator, just replace » « with whatever separator is used. If a dash is used, change that to «-« in your formula.

    Explanation

    There are three functions at work here: the RIGHT(), LEN(), and FIND() functions.

    The RIGHT function is what gets the text from the right of the cell. This is needed because we are extracting all of the text except the first word; that means we need to get everything that is to the right of the first word in the cell.

    The LEN and FIND functions are used to tell the RIGHT function how many characters on the right of the cell we want to get. The RIGHT function only extracts so many characters from the right of the cell.

    To get everything except the first word, we need to find the space that separates the first word and the rest of the text. Use the FIND function, searching for a space » « to get the number of characters from the left of the cell until the first space. In the example above this returns 5. That is the number of characters that we want to remove from the cell.

    To get the number that we want to keep, we need to use the LEN function to count all of the characters in the cell. The result of the LEN function is 12 because there are 12 characters in the cell.

    In the formula above, we subtract the result of FIND from that of LEN, which is 12-5, or 7.

    This tells the RIGHT function to get 7 characters from the right of the cell, which effectively removes the first word from the cell.

    Remove the Last Word from a Cell

    =LEFT(A1,FIND("~",SUBSTITUTE(A1," ","~",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1)
    

    e745e6c796d7288baaeb88aac08ce112.png

    Result:

    cc28a83d16e4de326e0372c42e29d6bc.png

    This assumes the text is in cell A1, change as needed for your spreadsheet.

    Note: if your cells might have the ~ character in them, change that part of the formula to a character that won’t be present in the cells.

    Non-Space Characters

    If your words use dashes or some other separator, just replace » « with whatever separator is used. If a dash is used, change that to «-« in your formula.

    Explanation

    This formula uses four functions: LEFT(), LEN(), FIND(), SUBSTITUTE().

    This can be a bit confusing but you don’t need to read this section in order to use the formula.

    In order to remove the last word from the cell, we need to extract all of the other words to a new cell and this new cell will then not contain the last word. Basically, we are getting all of the words that are to the left of the last word, so we use the LEFT function.

    To do this, we need to tell the LEFT function how many characters from the left of the cell that we want in the new cell, and that number can vary. The tricky part of the formula is what gets us this number.

    FIND("~",SUBSTITUTE(A1," ","~",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))
    

    This piece of the formula SUBSTITUTE(A1,» «,»») removes all spaces in the cell and then counts how many characters are left using the LEN function LEN(SUBSTITUTE(A1,» «,»»)). From the example above, the result of this is 10.

    It then counts how many characters are in the cell when the spaces are left in it: LEN(A1). The result is 12.

    Then the formula subtracts the two above numbers to get 2 in this example. This number is the total number of spaces that are in the cell and this tells the other SUBSTITUTE function which space to replace; we want to replace the last space so we can find it more easily.

    Using the number we just got, the SUBSTITUTE function is used again to replace the last space in the cell with ~ and then the FIND function is used to find that ~ and then the formula knows how many characters from the left of the cell the last space is.

    The formula then subtracts 1 from that number since we don’t want to include the last space in the new cell.

    Now, we have the total number of characters from the left of the cell up to the space that comes before the last word in the cell and we can use the LEFT function to return everything except the last word.

    If you are still a little confused, check out our tutorial on the SUBSTITUTE function in Excel

    More Versatile Formulas — Prevents Errors

    If you use one of the above formulas on a list and any of the cells in that list contains a single word, an error will appear.

    To avoid any errors, we can use a simple IFERROR() function.

    Formula 1:

    =IFERROR(RIGHT(A1,LEN(A1)-FIND(" ",A1)),A1)
    

    Formula 2:

    =IFERROR(LEFT(A1,FIND("~",SUBSTITUTE(A1," ","~",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1),A1)
    

    This says that if there is an error, output the contents of the original cell. Errors like this usually happen if there is only one word in the cell, so this would output that single word.

    Read our tutorial to learn more about the IFERROR function in Excel and suppressing errors in general.

    Notes

    These formulas can be confusing. I recommend simply copy/pasting them into your spreadsheet and changing the cell references as needed.

    To make the new range of values text instead of formulas follow this tutorial for converting formulas to values.

    Make sure to download the sample file attached to this tutorial to get these examples in Excel.

    Понравилась статья? Поделить с друзьями:
  • Как в excel удалить одиночные пробелы
  • Как в excel удалить одинаковые значения в ячейках
  • Как в excel удалить область печати в excel
  • Как в excel удалить номера страниц
  • Как в excel удалить несколько строки