Как удалить символы в ячейке Excel? Как удалить первый и последний символ?
Как удалить заданное число символов в середине строки?
С помощью каких формул это можно сделать?
Чтобы поменять содержимое ячейки нужен макрос,а формулы не меняют содержание других ячеек, формулы только извлекают и обрабатывают информацию из ячеек, входящих в параметры формул.
Чтобы получить содержимое ячейки, содержащей текст ячейки с удаленным первым или последним символом используют функцию выделения подстроки:ПСТР(текст;начальный символ;количество символов)
для определения количества символов используют функцию длины строки ДЛСТР(текст)
если текст "абвгдежзиклмн" находится в ячейке A1 то формулы будут такими:
- строка с удаленным первым символом ячейки =ПСТР(A1;2;ДЛСТР(A1)-1) (результат бвгдежзиклмн)
- строка с удаленным последним символом ячейки =ПСТР(A1;1;ДЛСТР(A1)-1) (результат абвгдежзиклм)
- строка с удаленными первым и последним символами ячейки =ПСТР(A1;2;ДЛСТР(A1)-2) (результат бвгдежзиклм)
- часть строки в 5 символов , начиная с 3-го символа =ПСТР(A1;3;5) (результат вгдеж)
если нужно объединить несколько частей строки или частей разных строк, то подстроки можно соединять знаком &
например: вырезаем 3 символа, начиная с символа 3 и 4 символа, начиная с символа 7:
=ПСТР(A1;3;3)&ПСТР(A1;7;4) (результат вгджзик)
если нужно в результат включить строку, то она тоже добавляется символом &
=ПСТР(A1;3;3)&". "&ПСТР(A1;7;4) (результат вгд. жзик)
Если возникает необходимость удалить символы в ячейке или диапазоне ячеек Excel, то следует использовать специальные формулы.
Рассмотрим различные ситуации.
Удаление первого символа в ячейке
Для этого будем использовать формулу, состоящую из двух функций:
ПРАВСИМВ — возвращает заданное число символов справа.
ДЛСТР — длина строки.
ПРАВСИМВ имеет 2 аргумента:
1) Ссылка на ячейку, из которой нужно вернуть символы. Например, B3.
2) Количество символов. В нашем случае это будет вся строка за исключением первого символа. Поэтому пишем ДЛСТР(B3)-1.
Формула выглядит так:
ПРАВСИМВ(Ссылка на ячейку;ДЛСТР(Ссылка на ячейку)-1).
Удаление последнего символа в ячейке
Если в Excel нужно удалить не первый, а последний символ в ячейке, то нужно использовать функцию ЛЕВСИМВ.
Эта функция работает также, как и ПРАВСИМВ — только возвращает не правые символы, а левые.
Формула для удаления последнего символа будет такой:
ЛЕВСИМВ(Ссылка на ячейку;ДЛСТР(Ссылка на ячейку)-1).
Удаление первого и последнего символа в ячейке
Если требуется одновременно удалить первый и последний символ, то можно воспользоваться несколькими способами.
Во-первых, можно последовательно применить функции ПРАВСИМВ И ЛЕВСИМВ (с промежуточной ячейкой или без).
Также существует функция ПСТР, возвращающая заданное число символов в ячейке. Аргументы:
1) Ссылка на ячейку.
2) Начальная позиция. В нашем случае она равна 2, так как первый символ нас не интересует.
3) Количество знаков, которые нужно извлечь. Пишем ДЛСТР(B3)-2, так как нужно вернуть все символы из ячейки, кроме первого и последнего.
Формула будет такой:
Удаление заданного числа символов в ячейке справа или слева
Иногда бывает, что нужно удалить не 1 крайний символ в ячейке, а несколько.
В этом случае можно использовать всё те же функции, только в аргументах ЛЕВСИМВ и ПРАВСИМВ пишем не ДЛСТР(B3)-1, а ДЛСТР(B3)-n.
n — число символов, которые нужно удалить.
1) ПРАВСИМВ(B3;ДЛСТР(B3)-3). Удаляем 3 первых символа.
2) ЛЕВСИМВ(B3;ДЛСТР(B3)-5). Удаляем 5 символов с конца.
Удаление символов в середине ячейки
Для этого в Excel существует функция ЗАМЕНИТЬ. Она имеет 4 аргумента:
1) Ссылка на ячейку.
2) Начальная позиция. Например, если нам нужно удалять данные с 3 символа, то пишем "3".
3) Число знаков. Сюда пишем число удаляемых символов. Например, "3".
4) Новый текст. Так как нам нужно именно убрать данные символы, то пишем "" (две кавычки без пробела).
Таким образом, формула будет выглядеть так:
Она удаляет с 3 по 5 символ в ячейке.
При работе в Эксель иногда бывает, что нужно убрать определённое содержимое из всех ячеек на листе.
И если требуется убрать фактически одно и то же, то проще не использовать формулы, а сделать это с помощью "Найти и заменить".
Требуется убрать "12" со всех ячеек.
1) Набираем комбинацию клавиш Ctrl + F, чтобы появилось окно "Найти и заменить".
2) Переходим на вкладку "Заменить".
В поле "Найти" пишем текст, который нам не нужен в ячейках. То есть 12.
А в поле "Заменить" ничего не пишем.
3) Нажимаем на кнопку "Заменить всё" — текст в ячейках станет такой, который был нам нужен.
Теперь о стандартных функциях Эксель, которые можно использовать для удаления данных из ячейки.
Точнее — это будет не удаление, а просто копирование данных из ячейки в обрезанном виде. Если после применения формулы потребуется, чтобы новые данные встали вместо исходных, то при их копировании нужно использовать опцию "Вставить только значения".
ЛЕВСИМВ и ПРАВСИМВ — возвращает заданное число символов слева и справа, соответственно.
ДЛСТР — длина строки, функция будет выполнять вспомогательную роль.
ПСТР — формирует подстроку из исходной строки текста на указанную длину и с определённой позиции.
НАЙТИ и ПОИСК — возвращает позицию первого вхождения какого-либо символа, слова, словосочетания. Они, как и ДЛСТР, могут использоваться как вспомогательные функции при удалении части данных из ячейки.
Нужно, чтобы в ячейке остались только данные о серии паспорта.
Будем использовать такую формулу:
Так как серия паспорта записана слева, то нужна функция ЛЕВСИМВ.
ДЛСТР(B2)-НАЙТИ("номер";B2) — здесь мы нашли с какой позиции начинаются ненужные нам символы и отняли эту цифру из длины строки.
А 1 вычитается из-за того, что перед словом "номер" стоит пробел. В принципе, можно было не вычитать 1, а просто написать в формуле пробел перед номером: ДЛСТР(B2)-НАЙТИ(" номер";B2).
Теперь выделяем ячейки с полученными данными и копируем их взамен старых.
Только при вставке не забываем выбрать "Вставить только значения".
А ячейки с уже неработающими формулами, разумеется, можно очистить.
Писала уже в одном из вопросов на БВ о работе со специальными формулами, их много, с их помощью много чего можно сделать, в данном вопросе обсуждается частный случай, рассмотрим его.
Посмотрим, как удалить первый символ в ячейке. Нам нужна формула из двух функций:
Пусть у нас будет вот такая таблица:
Мы видим, что во втором столбце у нас уже выполнено задание — удален первый символ. Формула использована вот такая: ПРАВСИМВ(B3;ДЛСТР(B3 )-1). То есть что мы с вами делаем: мы длину строки делаем меньше на один символ, при этом количество символов оставшееся программа считает справа, то есть лишним у нас оказывается левый, то есть первый символ, он и удаляется программой.
Несложно догадаться, что для удаления последнего символа нужно использовать немного другую формулу: ЛЕВСИМВ(B3;ДЛСТР(B3)-1) (применительно к этой же таблице. Для удаления первого и последнего символа
Таким же образом можно удалить несколько, а не один символ, справа или слева, просто пишем в формуле не (B3)-1, а, например, (B3)-3, и тогда удалится 3 символа справа или слева в соответствии с полной формулой.
Чтобы удалить символы в середине ячейки, используем другую формулу, применительно все к той же таблице, если мы хотим удалить три центральных символа, эта формула будет выглядеть так: ЗАМЕНИТЬ(B3;3;3;""), где В3, это ячейка с первоначальным текстом с полным набором символов, первая 3 — первый символ, который надо удалить, вторая 3 — количество символов, которые надо удалить, затем идут кавычки, так как это формула замены, то в них можно было бы указать символы, которые мы хотим поставить вместо удаленных, но мы хотим просто удалить три символа, поэтому в кавычках у нас ничего нет. Вот что получилось в итоге:
Как удалить все до или после определенного символа в Excel
Люди, которые только начинают работать в Excel часто встречаются с таким вопросом.
Допустим, у нас есть такая табличка:
Примерно так выглядит удаление всех символов после «,».
Это можно сделать разными способами. Мы рассмотрим несколько.
С помощью функции «Найти и заменить»
Это, наверное, самый быстрый и удобный способ.
Допустим, у нас та же табличка и задача:
- Копируем и вставляем столбик А в В;
- Выделите столбик и щелкните «Главная»;
- Далее — «Найти и выделить» -> «Заменить…»;
- В первом параметре укажите «,*»;
- Второй параметр не меняйте;
- Щелкните «Заменить все».
Готово! Вот результат:
Как это работает?
Символ * означает неопределенное количество символов.
Так как мы используем «,*», то это значит, что программе нужно заменить запятую и все символы после неё на пустое место.
Это будет работать только если в каждой ячейке у вас одна запятая, если же у вас не одна, то первая и все остальные данные будут заменены на пустое место.
С помощью формул
Также, мы можем выполнить нашу задачу и с помощью формул.
Допустим, у нас есть такая табличка:
Формула принимает такой вид:
Функция НАЙТИ возвращает порядковый номер запятой.
Это простой пример, давайте рассмотрим кое-что посложнее.
Теперь у нас такая табличка:
Формула, для этого примера, принимает такой вид:
Итак, также как в прошлый раз — не получится. Так как НАЙТИ будет возвращать порядковый номер первой запятой, а нам надо найти его для второй.
Мы используем небольшую хитрость, а если конкретнее, то заменяем вторую запятую на восклицательный знак, а затем с ним уже проводим операции.
И все бы хорошо, только в этом примере в каждой строке у нас ровно 2 запятые. А что делать если их неопределенное количество? Ведь в больших данных вы не будете выверять сколько запятой в каждой строке.
Итак, нам нужно найти порядковый номер последней запятой, а после уже проводить с ней операции.
Для этого примера, формула принимает такой вид:
Итак, функция ДЛСТР сначала находит количество символов в строчке с запятыми, а потом без них.
А после вычитает из первого — второе. Таким образом мы получаем количество запятых в строчке.
А затем мы заменяем последнюю на восклицательный знак.
Вот так вот можно заменять все после определенного символа с помощью формул. Конечно, с небольшими хитростями.
Плюс этого метода в том, что данные будут динамичны. То есть если что-то поменяется в изначальных данных, все поменяется и в данных после обработки.
С помощью функции «Заполнить»
Функция «Заполнить», это довольно давний инструмент. Он может помочь нам и в этом случае.
Как он работает?
Очень просто — вы просто делаете что угодно и после используете функцию. Она пытается понять логику ваших действий и продолжить её.
Давайте рассмотрим пример.
Допустим, у нас есть та же табличка:
- В первую ячейку столбика В введите то, что должно получиться после обработки;
- В следующую ячейку, то же самое;
- А теперь выделите столбик;
- И щелкните на «Главная» -> «Заполнить» -> «Мгновенное заполнение»;
Готово! Вот результат:
Эту функцию, естественно, можно использовать не только для удаления текста после символа. Она работает там, где есть логика.
Однако, иногда, она может ошибаться. Поэтому всегда проверяйте то, что получилось после обработки.
С помощью Visual Basic
И, как обычно, разберем вариант с помощью Visual Basic.
Мы создадим свою собственную функцию и будем использовать её для обработки данных.
Это крайне удобно, если вы делаете что-либо очень часто. Например, как в нашем случае, удаляете данные после символа.
Код Visual Basic:
Код, чтобы он работал, нужно вставить в Visual Basic -> «Insert» -> «Module».
Давайте рассмотрим пример её использования.
Допустим, у нас есть такая табличка. Формула принимает такой вид:
В нашей функции, первым аргументом мы указали диапазон для поиска, а вторым символ, последнюю позицию которого нам нужно найти.
С помощью Visual Basic все проще.
Вот и все! Если вам нужно сделать что-то подобное 1-2 раза, то лучше всего использовать функцию «Найти и заменить…», а если вы делаете это постоянно, то используйте Visual Basic.
Отрезать (удалить) лишний текст слева или справа в ячейке «Excel».
Бывают ситуации, когда необходимо отрезать/ удалить строго определенное количество символов в тексте справа или слева. Например, когда вы имеете список адресов, и вначале каждого адреса стоит шестизначный индекс. Нужно убрать почтовые индексы из списка, но через замену их не уберешь, так как они имеют совершенно разные значения и не находятся опцией замены.
Функции, которая отрезает лишнее количество символов в ячейке, найти не удается, но существует система из двух функций, которые можно применить. Это система из функции ЛЕВСИМВ (или ПРАВСИМВ) и функции ДЛСТР (длина строки).
Рассмотрим их применение.
Вначале находим количество символов в тексте при помощи функции ДЛСТР. Для этого запускаем менеджер функций, выбираем ДЛСТР, указываем ячейку с текстом. Функция ДЛСТР посчитает количество символов.
Зная длину лишнего текста — 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 удалить символы справа
Чтобы удалить последние n символов из текстовой строки, вы можете использовать формулу, основанную на функциях ЛЕВСИМВ и ДЛСТР. Вы можете использовать подобную формулу, чтобы удалить последние 3 символа, последние 5 символов начиная справа.
В показанном выше примере в ячейке C5 приведена формула:
которая отсекает «евро» от каждого значения, возвращая только число.
Пояснение
Функция ЛЕВСИМВ идеально подходит для извлечения символов, начинающихся с левой стороны текстовой строки.
Мы используем ЛЕВСИМВ в этой формуле, чтобы извлечь все символы до количества символов, которое мы хотим извлечь.
Проблема для значений переменной длины состоит в том, что мы не знаем точно, сколько символов нужно извлечь.
Вот где используется функция ДЛСТР.
ДЛСТР вычисляет общую длину строки. Для ячейки B5 (5 евро) общая длина равна 6 символов. Чтобы получить количество извлекаемых символов, мы вычитаем 5, что составляет длину » евро», включая пробел. Результатом будет 1, которые передаются в ЛЕВСИМВ как количество символов для извлечения. ЛЕВСИМВ затем возвращает текст «5» как текстовое значение.
Наконец, поскольку нам нужно числовое значение (а не текст), мы пропускаем текст через функцию ЗНАЧЕН, которая преобразует числа в текстовом формате в фактические числа.
Шаги формулы выглядят так: