На чтение 5 мин Просмотров 11к. Опубликовано 16.05.2022
Люди, которые только начинают работать в Excel часто встречаются с таким вопросом.
Допустим, у нас есть такая табличка:
Примерно так выглядит удаление всех символов после «,».
Это можно сделать разными способами. Мы рассмотрим несколько.
Итак, начнём!
Содержание
- С помощью функции «Найти и заменить»
- С помощью формул
- С помощью функции «Заполнить»
- С помощью Visual Basic
С помощью функции «Найти и заменить»
Это, наверное, самый быстрый и удобный способ.
Допустим, у нас та же табличка и задача:
Пошаговая инструкция:
- Копируем и вставляем столбик А в В;
- Выделите столбик и щелкните «Главная»;
- Далее — «Найти и выделить» -> «Заменить…»;
- В первом параметре укажите «,*»;
- Второй параметр не меняйте;
- Щелкните «Заменить все».
Готово! Вот результат:
Как это работает?
Символ * означает неопределенное количество символов.
Так как мы используем «,*», то это значит, что программе нужно заменить запятую и все символы после неё на пустое место.
Это будет работать только если в каждой ячейке у вас одна запятая, если же у вас не одна, то первая и все остальные данные будут заменены на пустое место.
С помощью формул
Также, мы можем выполнить нашу задачу и с помощью формул.
Допустим, у нас есть такая табличка:
Формула принимает такой вид:
=ЛЕВСИМВ(A2;НАЙТИ(",";A2)-1)
Функция НАЙТИ возвращает порядковый номер запятой.
Это простой пример, давайте рассмотрим кое-что посложнее.
Теперь у нас такая табличка:
Формула, для этого примера, принимает такой вид:
=ЛЕВСИМВ(A2;НАЙТИ("!";ПОДСТАВИТЬ(A2;",";"!";2))-1)
Итак, также как в прошлый раз — не получится. Так как НАЙТИ будет возвращать порядковый номер первой запятой, а нам надо найти его для второй.
Мы используем небольшую хитрость, а если конкретнее, то заменяем вторую запятую на восклицательный знак, а затем с ним уже проводим операции.
И все бы хорошо, только в этом примере в каждой строке у нас ровно 2 запятые. А что делать если их неопределенное количество? Ведь в больших данных вы не будете выверять сколько запятой в каждой строке.
Вот пример:
Итак, нам нужно найти порядковый номер последней запятой, а после уже проводить с ней операции.
Для этого примера, формула принимает такой вид:
=ЛЕВСИМВ(A2;НАЙТИ("!";ПОДСТАВИТЬ(A2;",";"!";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;",";","))))-1)
Итак, функция ДЛСТР сначала находит количество символов в строчке с запятыми, а потом без них.
А после вычитает из первого — второе. Таким образом мы получаем количество запятых в строчке.
А затем мы заменяем последнюю на восклицательный знак.
Вот так вот можно заменять все после определенного символа с помощью формул. Конечно, с небольшими хитростями.
Плюс этого метода в том, что данные будут динамичны. То есть если что-то поменяется в изначальных данных, все поменяется и в данных после обработки.
С помощью функции «Заполнить»
Функция «Заполнить», это довольно давний инструмент. Он может помочь нам и в этом случае.
Как он работает?
Очень просто — вы просто делаете что угодно и после используете функцию. Она пытается понять логику ваших действий и продолжить её.
Давайте рассмотрим пример.
Допустим, у нас есть та же табличка:
Пошаговая инструкция:
- В первую ячейку столбика В введите то, что должно получиться после обработки;
- В следующую ячейку, то же самое;
- А теперь выделите столбик;
- И щелкните на «Главная» -> «Заполнить» -> «Мгновенное заполнение»;
Готово! Вот результат:
Эту функцию, естественно, можно использовать не только для удаления текста после символа. Она работает там, где есть логика.
Однако, иногда, она может ошибаться. Поэтому всегда проверяйте то, что получилось после обработки.
С помощью Visual Basic
И, как обычно, разберем вариант с помощью Visual Basic.
Мы создадим свою собственную функцию и будем использовать её для обработки данных.
Это крайне удобно, если вы делаете что-либо очень часто. Например, как в нашем случае, удаляете данные после символа.
Код Visual Basic:
Function LastPosition(rCell As Range, rChar As String)
'This function gives the last position of the specified character
'This code has been developed by Sumit Bansal (https://trumpexcel.com)
Dim rLen As Integer
rLen = Len(rCell)
For i = rLen To 1 Step -1
If Mid(rCell, i - 1, 1) = rChar Then
LastPosition = i - 1
Exit Function
End If
Next i E
nd Function
Код, чтобы он работал, нужно вставить в Visual Basic -> «Insert» -> «Module».
Давайте рассмотрим пример её использования.
Допустим, у нас есть такая табличка. Формула принимает такой вид:
=ЛЕВСИМВ(A2;LastPosition(A2;",")-1)
В нашей функции, первым аргументом мы указали диапазон для поиска, а вторым символ, последнюю позицию которого нам нужно найти.
С помощью Visual Basic все проще.
Вот и все! Если вам нужно сделать что-то подобное 1-2 раза, то лучше всего использовать функцию «Найти и заменить…», а если вы делаете это постоянно, то используйте Visual Basic.
Надеюсь, эта статья оказалась полезна для вас!
ТРЕНИНГИ
Быстрый старт
Расширенный Excel
Мастер Формул
Прогнозирование
Визуализация
Макросы на VBA
КНИГИ
Готовые решения
Мастер Формул
Скульптор данных
ВИДЕОУРОКИ
Бизнес-анализ
Выпадающие списки
Даты и время
Диаграммы
Диапазоны
Дубликаты
Защита данных
Интернет, email
Книги, листы
Макросы
Сводные таблицы
Текст
Форматирование
Функции
Всякое
Коротко
Подробно
Версии
Вопрос-Ответ
Скачать
Купить
ПРОЕКТЫ
ОНЛАЙН-КУРСЫ
ФОРУМ
Excel
Работа
PLEX
© Николай Павлов, Planetaexcel, 2006-2022
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
Техническая поддержка сайта
ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Возможность удаления знаков после символа или текста в Excel — это важная функция при работе с таблицами, позволяющая очистить нужные элементы от лишней информации.
- Инструкция;
- До запятой;
- До пробела.
Видеоинструкция
Как удалить знаки после символа в Excel
Для этого потребуется использовать формулу:
=ПСТР(A1;1;ПОИСК(«символ»;A1)-1)
Пример
В этом случае:
- А1 — ячейка, которую мы будет проверять;
- Символ — символ или текст, после которого будет обрезаться ячейка.
Пример файла
Также можно комбинировать этот способ с очисткой данных «До».
Удаление знака после запятой в Эксель
Выполнить эту задачу можно при помощи конструкции:
=ПСТР(A1;1;ПОИСК(«,»;A1)-1)
Все готово.
Пример файла
После пробела в Excel
Сделать это можно через формулу:
=ПСТР(A1;1;ПОИСК(» «;A1)-1)
Все готово.
Пример файла
Содержание:
- Удаление текста после символа с помощью функции поиска и замены
- Удалить текст с помощью формул
- Удаление текста с помощью заливки Flash
- Удалить текст с помощью VBA (пользовательская функция)
При работе с текстовыми данными в Excel вам может потребоваться удалить текст до или после определенного символа или текстовой строки.
Например, если у вас есть данные об именах и обозначениях людей, вы можете удалить обозначение после запятой и оставить только имя (или наоборот, если вы сохраните обозначение и удалите имя).
Иногда это можно сделать с помощью простой формулы или быстрого поиска и замены, а иногда требуются более сложные формулы или обходные пути.
В этом уроке я покажу вам, как удалить текст до или после определенного символа в Excel (на разных примерах).
Итак, давайте начнем с нескольких простых примеров.
Удаление текста после символа с помощью функции поиска и замены
Если вы хотите быстро удалить весь текст после определенной текстовой строки (или перед текстовой строкой), вы можете сделать это с помощью «Найти и заменить» и подстановочных знаков.
Предположим, у вас есть набор данных, показанный ниже, и вы хотите удалить обозначение после символа запятой и оставить текст перед запятой.
Ниже приведены шаги для этого:
- Скопируйте и вставьте данные из столбца A в столбец B (это также необходимо для сохранения исходных данных)
- Выделив ячейки в столбце B, перейдите на вкладку «Главная».
- В группе «Редактирование» нажмите «Найти и выбрать».
- В параметрах, которые появляются в раскрывающемся списке, щелкните параметр «Заменить». Откроется диалоговое окно «Найти и заменить».
- В поле «Найти» введите ,* (т.е. запятая, за которой следует звездочка)
- Оставьте поле «Заменить на» пустым.
- Нажмите кнопку «Заменить все».
Вышеупомянутые шаги позволят найти запятую в наборе данных и удалить весь текст после запятой (включая запятую).
Поскольку при этом заменяется текст из выбранных ячеек, рекомендуется скопировать текст в другой столбец, а затем выполнить эту операцию поиска и замены или создать резервную копию ваших данных, чтобы исходные данные остались нетронутыми.
Как это работает?
* (знак звездочки) — это подстановочный знак, который может представлять любое количество символов.
Когда я использую его после запятой (в поле «Найти»), а затем нажимаю кнопку «Заменить все», он находит первую запятую в ячейке и считает ее совпадением.
Это связано с тем, что знак звездочки (*) считается соответствием всей текстовой строке, следующей за запятой.
Поэтому, когда вы нажимаете кнопку «Заменить все», она заменяет запятую и весь последующий текст.
Примечание: Этот метод работает хорошо, тогда у вас есть только одна запятая в каждой ячейке (как в нашем примере). Если у вас несколько запятых, этот метод всегда найдет первую запятую, а затем удалит все после нее. Таким образом, вы не можете использовать этот метод, если хотите заменить весь текст после второй запятой и оставить первый как есть.
Если вы хотите удалить все символы перед запятой, измените запись в поле поиска, поставив знак звездочки перед запятой (* вместо, *)
Удалить текст с помощью формул
Если вам нужно больше контроля над поиском и заменой текста до или после определенного символа, лучше использовать встроенные текстовые формулы в Excel.
Предположим, у вас есть приведенный ниже набор данных, из которого вы хотите удалить весь текст после запятой.
Ниже приведена формула для этого:
= ЛЕВЫЙ (A2; НАЙТИ (";"; A2) -1)
В приведенной выше формуле используется функция НАЙТИ, чтобы найти положение запятой в ячейке.
Этот номер позиции затем используется функцией LEFT для извлечения всех символов перед запятой. Поскольку мне не нужна запятая как часть результата, я вычел 1 из полученного значения формулы поиска.
Это был простой сценарий.
Возьмем немного сложный.
Предположим, у меня есть этот набор данных ниже, из которого я хочу удалить весь текст после второй запятой.
Вот формула, которая сделает это:
= ЛЕВЫЙ (A2; НАЙТИ ("!", ПОДСТАВИТЬ (A2, ",", "!", 2)) - 1)
Поскольку в этом наборе данных есть несколько запятых, я не могу использовать функцию НАЙТИ, чтобы получить позицию первой запятой и извлечь все, что находится слева от нее.
Мне нужно как-то узнать положение второй запятой, а затем извлечь все, что находится слева от второй запятой.
Для этого я использовал функцию ЗАМЕНА, чтобы заменить вторую запятую восклицательным знаком. Теперь это дает мне уникальный персонаж в камере. Теперь я могу использовать положение восклицательного знака, чтобы извлечь все, что находится слева от второй запятой.
Эта позиция восклицательного знака используется в функции LEFT для извлечения всего, что находится до второй запятой.
Все идет нормально!
Но что, если в наборе данных есть непоследовательное количество запятых.
Например, в приведенном ниже наборе данных в некоторых ячейках есть две запятые, а в некоторых — три запятые, и мне нужно извлечь весь текст до последней запятой.
В этом случае мне нужно как-то определить позицию последнего вхождения запятой, а затем извлечь все, что находится слева от нее.
Ниже приведена формула, которая сделает это
= ЛЕВЫЙ (A2; НАЙТИ ("!", ПОДСТАВИТЬ (A2, ",", "!", LEN (A2) -LEN (ПОДСТАВИТЬ (A2, ",", "")))) - 1)
В приведенной выше формуле функция LEN используется для определения общей длины текста в ячейке, а также длины текста без запятой.
Когда я вычитаю эти два значения, получается общее количество запятых в ячейке.
Таким образом, это дало бы мне 3 для ячейки A2 и 2 для ячейки A4.
Это значение затем используется в формуле ЗАМЕНА для замены последней запятой восклицательным знаком. И затем вы можете использовать левую функцию для извлечения всего, что находится слева от восклицательного знака (где раньше была последняя запятая)
Как вы можете видеть в примерах, использование комбинации текстовых формул позволяет обрабатывать множество различных ситуаций.
Кроме того, поскольку результат связан с исходными данными, при изменении исходных данных результат будет автоматически обновляться.
Удаление текста с помощью заливки Flash
Flash Fill — это инструмент, который был представлен в Excel 2013 и доступен во всех последующих версиях.
Он работает, выявляя закономерности, когда вы вручную вводите данные, а затем экстраполируете их, чтобы получить данные для всего столбца.
Поэтому, если вы хотите удалить текст до или после определенного символа, вам просто нужно показать flash fairy, как будет выглядеть результат (введя его вручную пару раз), и flash fill автоматически распознает узор и даст вам результаты, достижения.
Позвольте показать вам это на примере.
Ниже у меня есть набор данных, из которого я хочу удалить весь текст после запятой.
Вот шаги, чтобы сделать это с помощью Flash Fill:
- В ячейке B2, которая является соседним столбцом наших данных, вручную введите «Jeffery Haggins» (что является ожидаемым результатом).
- В ячейке B3 введите «Тим Скотт» (ожидаемый результат для второй ячейки).
- Выберите диапазон B2: B10
- Перейдите на вкладку «Главная»
- В группе «Редактирование» щелкните раскрывающийся список «Заливка».
- Нажмите на Flash Fill.
Вышеупомянутые шаги дадут вам результат, как показано ниже:
Вы также можете использовать сочетание клавиш Flash Fill. Ctrl + E после выбора ячеек в столбце результатов (столбец B в нашем примере)
Flash Fill — замечательный инструмент, и в большинстве случаев он способен распознать узор и дать вам правильный результат. но в некоторых случаях он может не распознать шаблон правильно и может дать неверные результаты.
Так что не забудьте еще раз проверить результаты Flash Fill.
И точно так же, как мы удалили весь текст после определенного символа с помощью флэш-заливки, вы можете использовать те же шаги, чтобы удалить текст перед определенным символом. просто покажите вручную в соседнем столбце flash fill, как результат должен выглядеть как мой Интернет, а все остальное сделает он.
Удалить текст с помощью VBA (пользовательская функция)
Вся концепция удаления текста до или после определенного символа зависит от нахождения позиции этого символа.
Как показано выше, найти последнее вхождение этого символа хорошим означает использовать смесь формул.
Если это то, что вам нужно делать довольно часто, вы можете упростить этот процесс, создав настраиваемую функцию с помощью VBA (называемую функциями, определяемыми пользователем).
После создания вы можете повторно использовать эту функцию снова и снова. Это также намного проще и проще в использовании (поскольку большая часть тяжелой работы выполняется кодом VBA в серверной части).
Ниже кода VBA, который можно использовать для создания настраиваемой функции в Excel:
Функция LastPosition (rCell As Range, rChar As String) 'Эта функция выдает последнюю позицию указанного символа' Этот код был разработан Sumit Bansal (https://trumpexcel.com) Dim rLen As Integer rLen = Len (rCell) For i = rLen To 1 Step -1 If Mid (rCell, i - 1, 1) = rChar Then LastPosition = i - 1 Выход из функции End If Next i End Function
Вам необходимо поместить код VBA в обычный модуль редактора VB или в личную книгу макросов. Когда он у вас есть, вы можете использовать его как любую другую обычную функцию рабочего листа в книге.
Эта функция принимает 2 аргумента:
- Ссылка на ячейку, для которой вы хотите найти последнее вхождение определенного символа или текстовой строки.
- Символьная или текстовая строка, позицию которой вам нужно найти
Предположим, теперь у вас есть приведенный ниже набор данных, и вы хотите удалить весь текст после последней запятой и иметь только текст до последней запятой.
Ниже приведена формула, которая сделает это:
= ЛЕВЫЙ (A2; LastPosition (A2; ",") - 1)
В приведенной выше формуле я указал, чтобы найти позицию последней запятой. Если вы хотите найти положение какого-либо другого символа или текстовой строки, вы должны использовать это как второй аргумент в функции.
Как видите, это намного короче и проще в использовании по сравнению с формулой с длинным текстом, которую мы использовали в предыдущем разделе.
Если вы поместите код VBA в модуль в книге, вы сможете использовать эту настраиваемую функцию только в этой конкретной книге. Если вы хотите использовать это во всех книгах в вашей системе, вам необходимо скопировать и вставить этот код в личную книгу макросов.
Вот некоторые из писем, которые вы можете использовать для быстрого удаления текста до или после определенного символа в Excel.
Если это простая разовая задача, вы можете сделать это с помощью функции поиска и замены. что, если это немного сложнее, тогда вам нужно использовать комбинацию встроенных формул Excel или даже создать свою собственную формулу с помощью VBA.
Надеюсь, вы нашли этот урок полезным.
Содержание
- Как удалить все до или после определенного символа в Excel
- С помощью функции «Найти и заменить»
- С помощью формул
- С помощью функции «Заполнить»
- С помощью Visual Basic
- Как отрезать (удалить) лишний текст слева или справа в ячейке «Эксель».
- Рассмотрим их применение.
- Как отрезать (удалить) лишний текст слева или справа в ячейке «Эксель».: 24 комментария
- Как удалить текст до или после определенного символа в Excel
- Удаление текста после символа с помощью функции поиска и замены
- Удалить текст с помощью формул
- Удаление текста с помощью заливки Flash
- Удалить текст с помощью VBA (пользовательская функция)
Как удалить все до или после определенного символа в Excel
Люди, которые только начинают работать в Excel часто встречаются с таким вопросом.
Допустим, у нас есть такая табличка:
Примерно так выглядит удаление всех символов после «,».
Это можно сделать разными способами. Мы рассмотрим несколько.
С помощью функции «Найти и заменить»
Это, наверное, самый быстрый и удобный способ.
Допустим, у нас та же табличка и задача:
- Копируем и вставляем столбик А в В;
- Выделите столбик и щелкните «Главная»;
- Далее — «Найти и выделить» -> «Заменить…»;
- В первом параметре укажите «,*»;
- Второй параметр не меняйте;
- Щелкните «Заменить все».
Готово! Вот результат:
Как это работает?
Символ * означает неопределенное количество символов.
Так как мы используем «,*», то это значит, что программе нужно заменить запятую и все символы после неё на пустое место.
Это будет работать только если в каждой ячейке у вас одна запятая, если же у вас не одна, то первая и все остальные данные будут заменены на пустое место.
С помощью формул
Также, мы можем выполнить нашу задачу и с помощью формул.
Допустим, у нас есть такая табличка:
Формула принимает такой вид:
Функция НАЙТИ возвращает порядковый номер запятой.
Это простой пример, давайте рассмотрим кое-что посложнее.
Теперь у нас такая табличка:
Формула, для этого примера, принимает такой вид:
Итак, также как в прошлый раз — не получится. Так как НАЙТИ будет возвращать порядковый номер первой запятой, а нам надо найти его для второй.
Мы используем небольшую хитрость, а если конкретнее, то заменяем вторую запятую на восклицательный знак, а затем с ним уже проводим операции.
И все бы хорошо, только в этом примере в каждой строке у нас ровно 2 запятые. А что делать если их неопределенное количество? Ведь в больших данных вы не будете выверять сколько запятой в каждой строке.
Итак, нам нужно найти порядковый номер последней запятой, а после уже проводить с ней операции.
Для этого примера, формула принимает такой вид:
Итак, функция ДЛСТР сначала находит количество символов в строчке с запятыми, а потом без них.
А после вычитает из первого — второе. Таким образом мы получаем количество запятых в строчке.
А затем мы заменяем последнюю на восклицательный знак.
Вот так вот можно заменять все после определенного символа с помощью формул. Конечно, с небольшими хитростями.
Плюс этого метода в том, что данные будут динамичны. То есть если что-то поменяется в изначальных данных, все поменяется и в данных после обработки.
С помощью функции «Заполнить»
Функция «Заполнить», это довольно давний инструмент. Он может помочь нам и в этом случае.
Как он работает?
Очень просто — вы просто делаете что угодно и после используете функцию. Она пытается понять логику ваших действий и продолжить её.
Давайте рассмотрим пример.
Допустим, у нас есть та же табличка:
- В первую ячейку столбика В введите то, что должно получиться после обработки;
- В следующую ячейку, то же самое;
- А теперь выделите столбик;
- И щелкните на «Главная» -> «Заполнить» -> «Мгновенное заполнение»;
Готово! Вот результат:
Эту функцию, естественно, можно использовать не только для удаления текста после символа. Она работает там, где есть логика.
Однако, иногда, она может ошибаться. Поэтому всегда проверяйте то, что получилось после обработки.
С помощью Visual Basic
И, как обычно, разберем вариант с помощью Visual Basic.
Мы создадим свою собственную функцию и будем использовать её для обработки данных.
Это крайне удобно, если вы делаете что-либо очень часто. Например, как в нашем случае, удаляете данные после символа.
Код Visual Basic:
Код, чтобы он работал, нужно вставить в Visual Basic -> «Insert» -> «Module».
Давайте рассмотрим пример её использования.
Допустим, у нас есть такая табличка. Формула принимает такой вид:
В нашей функции, первым аргументом мы указали диапазон для поиска, а вторым символ, последнюю позицию которого нам нужно найти.
С помощью Visual Basic все проще.
Вот и все! Если вам нужно сделать что-то подобное 1-2 раза, то лучше всего использовать функцию «Найти и заменить…», а если вы делаете это постоянно, то используйте Visual Basic.
Надеюсь, эта статья оказалась полезна для вас!
Источник
Как отрезать (удалить) лишний текст слева или справа в ячейке «Эксель».
Бывают ситуации, когда необходимо отрезать/ удалить строго определенное количество символов в тексте справа или слева. Например, когда вы имеете список адресов, и вначале каждого адреса стоит шестизначный индекс. Нужно убрать почтовые индексы из списка, но через замену их не уберешь, так как они имеют совершенно разные значения и не находятся опцией замены.
Функции, которая отрезает лишнее количество символов в ячейке, найти не удается, но существует система из двух функций, которые можно применить. Это система из функции ЛЕВСИМВ (или ПРАВСИМВ) и функции ДЛСТР (длина строки).
Рассмотрим их применение.
Вначале находим количество символов в тексте при помощи функции ДЛСТР. Для этого запускаем менеджер функций, выбираем ДЛСТР, указываем ячейку с текстом. Функция ДЛСТР посчитает количество символов.
Зная длину лишнего текста — 6 знаков в индексе, вычитаем их из общего числа символов посчитанных функцией ДЛСТР и получаем то количество символов, которое должно остаться в тексте, когда удалим индекс.
Полученное значение – количество оставляемых в тексте знаков, вписываем в функцию ЛЕВСИМВ или ПРАВСИМВ. Если нужно удалить знаки справа, то используем ЛЕВСИМВ, если слева, то ПРАВСИМВ. Нажимаем «Enter». Функция ЛЕВСИМВ или ПРАВСИМВ присваивает ячейке нужное нам количество символов из текста в новую ячейку, исключая ненужный нам индекс.
Для уменьшения количества ячеек с расчетами эти функции можно записать в систему следующего вида:
ПРАВСИМВ(…*¹;(ДЛСТР(…*¹)-6)).
Где …*¹- адрес ячейки, из которой берем текст.
Как отрезать (удалить) лишний текст слева или справа в ячейке «Эксель».: 24 комментария
Отличная статья. Помогла отнять лишние знаки из диапазона значений с различной длинной текста.
Например: у меня были значения «100.00» «95.00» 15.00″ «5.00» и т.д.
Решил вопрос формулой: =ЛЕВСИМВ(A1;(ДЛСТР(A1)-3))
готовая формула только подставить строки и кол-во символов)
спасибо!
Нужна помощь. Как удалить в каждой строчке все символы ПОСЛЕ указанного знака/знаков?
Добрый день. По аналогии с удалением слов описанном в статье «Копировать, убрать/удалить первое слово или несколько первых слов в ячейке Excel » только вместо пробелов подставить знак(и), о котором вы писали. ссылка — http://ruexcel.ru/slova/
Вот это гемор, и не получается, указываю диапазон ячейки. Укорачивает но в переносит текст в другую ячейку. В гугл таблицах, два раза мышкой щелкнуть.
Здравствуйте!
Есть колонка в Екселе с текстовыми значениями типа 00001, 00001А, 00624/1, 00682А, 01082А, 00240-1 и т.п. Требуется во всех значениях убрать впереди все нули. Но только впереди. Не подскажете, как это сделать? Спасибо.
Добрый день!
Большая таблица, в одном из столбцов указаны даты: 1995, 2006г., 1915, 1934г., 1946г., 2017, 2015 и т.д. Как убрать после цифр года символ «г.» во всех ячейках столбца, чтобы остались одни цифры года автоматически?
Благодарю заранее.
Добрый день.
Выделите ячейки, в которых нужно убрать лишние символы.
Нажмите ctrl+H
В поле «Найти:» введите «г.», в поле «Заменить…» не вводите ничего.
Нажмите «заменить все»
большое спасибо. очень помогли! Просто и быстро)
Здравствуйте!
Есть колонка в Excel с текстовыми значениями типа 38/18, 35/35, 32/25 и т.п. Требуется во всех значениях убрать впереди цифры и дробь. Точно также, только убрать сзади. Не подскажете, как это сделать? Спасибо.
Добрый день.
Если текст в ячейке H3, то:
=ЛЕВСИМВ(H3; (ПОИСК(«/»;H3)-1))
или
=ПРАВСИМВ(H3;(ДЛСТР(H3)-ПОИСК(«/»;H3)))
зависит от того, какую часть текста (левую или правую) нужно оставить в ячейке.
Здравствуйте. Подскажите, как из строки формата:
Вмк. У240кв. 20-70. 30м3. #39720. 15.40
поместить в отдельную ячейку цифру после символа #.
=ПРАВСИМВ(B2073;(ДЛСТР(B2073)-ПОИСК(«#»;B2073))), где B2073 — ячейка содержащая «Вмк. У240кв. 20-70. 30м3. #39720. 15.40»
Добрый день! Подскажите как текст в одной ячейке: Иванов Иван Иванович разбить на три ячейки: 1. Иванов 2. Иван 3. Иванович
Добрый день, подскажите, пожалуйста, как сократить количество текста в ячейках столбца на 15% с сохранением логического смысла?
Здравствуйте! У меня в столбике, в каждой строке, к примеру, по 15 символов (к примеру, 20.01.2020 17.45) а нужно сократить до 10 (чтобы осталась только дата) , но не в соседний столбец перенеся, как подразумевает функция ЛЕВСИМВ, а просто сократить в том же, не подскажете, как это сделать?
Здравствуйте!
Есть столбец в Екселе со значениями типа 000010531, 000401325, 002000045, 000104573, т.п. Количество нулей разное. Требуется во всех значениях убрать спереди все нули, но только впереди. Не подскажете, как это сделать? Спасибо.
Источник
Как удалить текст до или после определенного символа в Excel
При работе с текстовыми данными в Excel вам может потребоваться удалить текст до или после определенного символа или текстовой строки.
Например, если у вас есть данные об именах и обозначениях людей, вы можете удалить обозначение после запятой и оставить только имя (или наоборот, если вы сохраните обозначение и удалите имя).
Иногда это можно сделать с помощью простой формулы или быстрого поиска и замены, а иногда требуются более сложные формулы или обходные пути.
В этом уроке я покажу вам, как удалить текст до или после определенного символа в Excel (на разных примерах).
Итак, давайте начнем с нескольких простых примеров.
Удаление текста после символа с помощью функции поиска и замены
Если вы хотите быстро удалить весь текст после определенной текстовой строки (или перед текстовой строкой), вы можете сделать это с помощью «Найти и заменить» и подстановочных знаков.
Предположим, у вас есть набор данных, показанный ниже, и вы хотите удалить обозначение после символа запятой и оставить текст перед запятой.
Ниже приведены шаги для этого:
- Скопируйте и вставьте данные из столбца A в столбец B (это также необходимо для сохранения исходных данных)
- Выделив ячейки в столбце B, перейдите на вкладку «Главная».
- В группе «Редактирование» нажмите «Найти и выбрать».
- В параметрах, которые появляются в раскрывающемся списке, щелкните параметр «Заменить». Откроется диалоговое окно «Найти и заменить».
- В поле «Найти» введите ,* (т.е. запятая, за которой следует звездочка)
- Оставьте поле «Заменить на» пустым.
- Нажмите кнопку «Заменить все».
Вышеупомянутые шаги позволят найти запятую в наборе данных и удалить весь текст после запятой (включая запятую).
Поскольку при этом заменяется текст из выбранных ячеек, рекомендуется скопировать текст в другой столбец, а затем выполнить эту операцию поиска и замены или создать резервную копию ваших данных, чтобы исходные данные остались нетронутыми.
Как это работает?
* (знак звездочки) — это подстановочный знак, который может представлять любое количество символов.
Когда я использую его после запятой (в поле «Найти»), а затем нажимаю кнопку «Заменить все», он находит первую запятую в ячейке и считает ее совпадением.
Это связано с тем, что знак звездочки (*) считается соответствием всей текстовой строке, следующей за запятой.
Поэтому, когда вы нажимаете кнопку «Заменить все», она заменяет запятую и весь последующий текст.
Примечание: Этот метод работает хорошо, тогда у вас есть только одна запятая в каждой ячейке (как в нашем примере). Если у вас несколько запятых, этот метод всегда найдет первую запятую, а затем удалит все после нее. Таким образом, вы не можете использовать этот метод, если хотите заменить весь текст после второй запятой и оставить первый как есть.
Если вы хотите удалить все символы перед запятой, измените запись в поле поиска, поставив знак звездочки перед запятой (* вместо, *)
Удалить текст с помощью формул
Если вам нужно больше контроля над поиском и заменой текста до или после определенного символа, лучше использовать встроенные текстовые формулы в Excel.
Предположим, у вас есть приведенный ниже набор данных, из которого вы хотите удалить весь текст после запятой.
Ниже приведена формула для этого:
= ЛЕВЫЙ (A2; НАЙТИ («;»; A2) -1)
В приведенной выше формуле используется функция НАЙТИ, чтобы найти положение запятой в ячейке.
Этот номер позиции затем используется функцией LEFT для извлечения всех символов перед запятой. Поскольку мне не нужна запятая как часть результата, я вычел 1 из полученного значения формулы поиска.
Это был простой сценарий.
Возьмем немного сложный.
Предположим, у меня есть этот набор данных ниже, из которого я хочу удалить весь текст после второй запятой.
Вот формула, которая сделает это:
= ЛЕВЫЙ (A2; НАЙТИ («!», ПОДСТАВИТЬ (A2, «,», «!», 2)) — 1)
Поскольку в этом наборе данных есть несколько запятых, я не могу использовать функцию НАЙТИ, чтобы получить позицию первой запятой и извлечь все, что находится слева от нее.
Мне нужно как-то узнать положение второй запятой, а затем извлечь все, что находится слева от второй запятой.
Для этого я использовал функцию ЗАМЕНА, чтобы заменить вторую запятую восклицательным знаком. Теперь это дает мне уникальный персонаж в камере. Теперь я могу использовать положение восклицательного знака, чтобы извлечь все, что находится слева от второй запятой.
Эта позиция восклицательного знака используется в функции LEFT для извлечения всего, что находится до второй запятой.
Все идет нормально!
Но что, если в наборе данных есть непоследовательное количество запятых.
Например, в приведенном ниже наборе данных в некоторых ячейках есть две запятые, а в некоторых — три запятые, и мне нужно извлечь весь текст до последней запятой.
В этом случае мне нужно как-то определить позицию последнего вхождения запятой, а затем извлечь все, что находится слева от нее.
Ниже приведена формула, которая сделает это
= ЛЕВЫЙ (A2; НАЙТИ («!», ПОДСТАВИТЬ (A2, «,», «!», LEN (A2) -LEN (ПОДСТАВИТЬ (A2, «,», «»)))) — 1)
В приведенной выше формуле функция LEN используется для определения общей длины текста в ячейке, а также длины текста без запятой.
Когда я вычитаю эти два значения, получается общее количество запятых в ячейке.
Таким образом, это дало бы мне 3 для ячейки A2 и 2 для ячейки A4.
Это значение затем используется в формуле ЗАМЕНА для замены последней запятой восклицательным знаком. И затем вы можете использовать левую функцию для извлечения всего, что находится слева от восклицательного знака (где раньше была последняя запятая)
Как вы можете видеть в примерах, использование комбинации текстовых формул позволяет обрабатывать множество различных ситуаций.
Кроме того, поскольку результат связан с исходными данными, при изменении исходных данных результат будет автоматически обновляться.
Удаление текста с помощью заливки Flash
Flash Fill — это инструмент, который был представлен в Excel 2013 и доступен во всех последующих версиях.
Он работает, выявляя закономерности, когда вы вручную вводите данные, а затем экстраполируете их, чтобы получить данные для всего столбца.
Поэтому, если вы хотите удалить текст до или после определенного символа, вам просто нужно показать flash fairy, как будет выглядеть результат (введя его вручную пару раз), и flash fill автоматически распознает узор и даст вам результаты, достижения.
Позвольте показать вам это на примере.
Ниже у меня есть набор данных, из которого я хочу удалить весь текст после запятой.
Вот шаги, чтобы сделать это с помощью Flash Fill:
- В ячейке B2, которая является соседним столбцом наших данных, вручную введите «Jeffery Haggins» (что является ожидаемым результатом).
- В ячейке B3 введите «Тим Скотт» (ожидаемый результат для второй ячейки).
- Выберите диапазон B2: B10
- Перейдите на вкладку «Главная»
- В группе «Редактирование» щелкните раскрывающийся список «Заливка».
- Нажмите на Flash Fill.
Вышеупомянутые шаги дадут вам результат, как показано ниже:
Вы также можете использовать сочетание клавиш Flash Fill. Ctrl + E после выбора ячеек в столбце результатов (столбец B в нашем примере)
Flash Fill — замечательный инструмент, и в большинстве случаев он способен распознать узор и дать вам правильный результат. но в некоторых случаях он может не распознать шаблон правильно и может дать неверные результаты.
Так что не забудьте еще раз проверить результаты Flash Fill.
И точно так же, как мы удалили весь текст после определенного символа с помощью флэш-заливки, вы можете использовать те же шаги, чтобы удалить текст перед определенным символом. просто покажите вручную в соседнем столбце flash fill, как результат должен выглядеть как мой Интернет, а все остальное сделает он.
Удалить текст с помощью VBA (пользовательская функция)
Вся концепция удаления текста до или после определенного символа зависит от нахождения позиции этого символа.
Как показано выше, найти последнее вхождение этого символа хорошим означает использовать смесь формул.
Если это то, что вам нужно делать довольно часто, вы можете упростить этот процесс, создав настраиваемую функцию с помощью VBA (называемую функциями, определяемыми пользователем).
После создания вы можете повторно использовать эту функцию снова и снова. Это также намного проще и проще в использовании (поскольку большая часть тяжелой работы выполняется кодом VBA в серверной части).
Ниже кода VBA, который можно использовать для создания настраиваемой функции в Excel:
Функция LastPosition (rCell As Range, rChar As String) ‘Эта функция выдает последнюю позицию указанного символа’ Этот код был разработан Sumit Bansal (https://trumpexcel.com) Dim rLen As Integer rLen = Len (rCell) For i = rLen To 1 Step -1 If Mid (rCell, i — 1, 1) = rChar Then LastPosition = i — 1 Выход из функции End If Next i End Function
Вам необходимо поместить код VBA в обычный модуль редактора VB или в личную книгу макросов. Когда он у вас есть, вы можете использовать его как любую другую обычную функцию рабочего листа в книге.
Эта функция принимает 2 аргумента:
- Ссылка на ячейку, для которой вы хотите найти последнее вхождение определенного символа или текстовой строки.
- Символьная или текстовая строка, позицию которой вам нужно найти
Предположим, теперь у вас есть приведенный ниже набор данных, и вы хотите удалить весь текст после последней запятой и иметь только текст до последней запятой.
Ниже приведена формула, которая сделает это:
= ЛЕВЫЙ (A2; LastPosition (A2; «,») — 1)
В приведенной выше формуле я указал, чтобы найти позицию последней запятой. Если вы хотите найти положение какого-либо другого символа или текстовой строки, вы должны использовать это как второй аргумент в функции.
Как видите, это намного короче и проще в использовании по сравнению с формулой с длинным текстом, которую мы использовали в предыдущем разделе.
Если вы поместите код VBA в модуль в книге, вы сможете использовать эту настраиваемую функцию только в этой конкретной книге. Если вы хотите использовать это во всех книгах в вашей системе, вам необходимо скопировать и вставить этот код в личную книгу макросов.
Вот некоторые из писем, которые вы можете использовать для быстрого удаления текста до или после определенного символа в Excel.
Если это простая разовая задача, вы можете сделать это с помощью функции поиска и замены. что, если это немного сложнее, тогда вам нужно использовать комбинацию встроенных формул Excel или даже создать свою собственную формулу с помощью VBA.
Источник