Возможно, некоторые из вас знают, как удалить целые строки, когда они содержат определенные тексты в Excel, но если вы хотите полностью удалить строку, когда они не содержат определенных текстов, как вы могли бы это сделать? Теперь, следуя этому руководству, вы можете найти способ решить эту проблему в Excel.
Удалить строки, не содержащие определенного текста, с помощью фильтра
Удалить строки, не содержащие определенного текста, с помощью VBA
Удалить строки, не содержащие определенный текст, с помощью Kutools for Excel
Удалить строки, не содержащие определенного текста, с помощью фильтра
В Excel функция «Фильтр» может быстро помочь вам отфильтровать строки, не содержащие определенного текста, а затем вы сможете выбрать их для удаления.
1. Выберите столбец, содержащий текст, на основе которого вы будете удалять строки, и нажмите Данные > Фильтр. Смотрите скриншот:
2. В заголовке столбца есть кнопка фильтра, нажмите ее, чтобы открыть раскрывающийся список, отметьте все, кроме определенного текста, на котором вы хотите основываться. Смотрите скриншот:
3. После этого вы увидите только строку заголовка, а строки, не содержащие определенного текста, будут отфильтрованы. Смотрите скриншот :
4. Выберите все из них, кроме строки заголовка, и щелкните правой кнопкой мыши, чтобы выбрать Удалить строку из контекстного меню. Смотрите скриншот:
5. Затем нажмите Данные > Фильтр снова, а затем удаляются все строки, не содержащие определенного текста. Смотрите скриншот:
Удалить строки, не содержащие определенного текста, с помощью VBA
VBA очень полезен для довольно сложных операций в Excel. Чтобы удалить строки, не содержащие определенного текста, выполните следующие шаги.
1. Нажмите Alt + F11 для отображения Microsoft Visual Basic для приложений окно.
2. В окне нажмите Вставить > Модули чтобы отобразить новое окно модуля, затем скопируйте следующий код VBA в окно модуля.
VBA: удалить всю строку, если ячейка содержит определенный текст.
Sub DeleteRowNoInclude()
'Update20140618
Dim xRow As Range
Dim rng As Range
Dim WorkRng As Range
Dim xStr As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
xStr = Application.InputBox("Text", xTitleId, "", Type:=2)
Application.ScreenUpdating = False
For i = WorkRng.Rows.Count To 1 Step -1
Set xRow = WorkRng.Rows(i)
Set rng = xRow.Find(xStr, LookIn:=xlValues)
If rng Is Nothing Then
xRow.Delete
End If
Next
Application.ScreenUpdating = True
End Sub
3. Нажмите Run , и появится диалоговое окно, в котором вы сможете выбрать рабочий диапазон. Смотрите скриншот:
4. Затем нажмите OKи введите текст, на котором нужно удалить основу строк, в другом всплывающем диалоговом окне. Смотрите скриншот:
5. Нажмите OK, и строки, не содержащие Apple, будут удалены.
Удалить строки, не содержащие определенный текст, с помощью Kutools for Excel
Если вы думаете, что описанные выше методы не являются легкими для вас, вы можете использовать Kutools for Excel‘s Выбрать определенные ячейки функцию.
Kutools for Excel включает более 300 удобных инструментов Excel. Бесплатная пробная версия без ограничений в течение 30 дней. Получить сейчас
1. Выберите столбец, в котором вы хотите удалить строки, не содержащие определенного текста, и нажмите Кутулс > Выберите Инструменты > Выбрать определенные ячейки. Смотрите скриншот:
2. А в Выбрать определенные ячейки диалог, проверьте Весь рядИ выберите Не содержит, и введите определенный текст в текстовое поле, также вы можете нажать кнопку диапазона в Конкретный тип раздел для выбора ячейки, содержащей определенный текст.
3. Затем нажмите Ok, то выбираются строки, не содержащие определенного текста, щелкните правой кнопкой мыши, чтобы выбрать Удалить из контекстного меню. Смотрите скриншот:
4. Теперь все строки, не содержащие определенного текста в диапазоне, удаляются. Щелкните ее, чтобы получить дополнительную информацию о выборе конкретных ячеек..
Относительные статьи:
- Удалить целые строки, если ячейка не содержит нуля в Excel
- Удалить строки, не соответствующие критериям на другом листе
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Часто перед пользователями табличного редактора Эксель встает такая задача, когда необходимо удалить всю текстовую информацию в ячейках, а числовые данные оставить. Для осуществления этой процедуры существует множество способов. В статье мы детально разберем каждый метод, позволяющий оставить числа и убрать текст в ячейках.
Содержание
- Способы удаления текста и сохранения числовой информации
- Первый метод: использование специальной формулы
- Второй метод: использование специального макроса
- Заключение и выводы о процедуре извлечение
Способы удаления текста и сохранения числовой информации
Представим, что у нас есть такая информация, располагающаяся в ячейке: «Было доставлено кусков мыла 763шт». Нам необходимо сделать так, чтобы осталось только значение 763 для проведения разнообразных математических операций. Хорошо, если нужно избавиться от текстовых данных только в одной ячейке, тогда можно реализовать удаление ручным способом, но этот вариант не подходит, когда в табличке находится слишком много разной информации. Здесь необходимо применять различные специальные функции табличного редактора.
Первый метод: использование специальной формулы
Для реализации этой процедуры можно применять специальную массивную формулу. Примерная формула выглядит так:
=ПСТР(A1;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99)));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99)))+1)
Разберем основные моменты:
- Специальную формулу необходимо вбивать в поле при помощи комбинации кнопок «Ctrl+Shift+Enter».
- Стоит заметить, что в таком виде массивная формула может использоваться только с текстовой информацией, в которой число знаков не больше 99. Для увеличения диапазона нужно, к примеру, заменить параметр «СТРОКА($1:$99)» на «СТРОКА($1:$200)». Иными словами, мы вместо показателя 99 вводим число знаков с запасом. Если ввести слишком большой диапазон, то обработка формулы может занять длительное время.
- Если в текстовых данных числовые значения разбросаны по всему тексту, то формула не сможет правильно обработать информацию.
Детально рассмотрим специальную массивную формулу на таком примере: «Было доставлено кусков мыла 763шт., а заказывали 780»
- В поле А1 располагается сама текстовая информация, из которой мы будем извлекать числовые данные.
- Фрагмент: МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99))) позволяет определить позицию 1-го значения в поле. Получаем значение 29.
- Фрагмент: ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99)) позволяет определить позицию последнего значения в поле. Получаем значение 31.
- Мы получаем такую формулу: =ПСТР(А1;29;31-29+1). Оператор ПСТР позволяет извлечь из текстовой информации, указанной 1-м аргументом, начиная с заданной позиции (29) с числом знаков, заданным 3-м аргументом.
- В результате мы получаем:
=ПСТР(А1;29;31-29+1)- =ПСТР(А1;29;2+1)
- =ПСТР(А1;29;3)
- 763
Бывают ситуации обратные, когда нужно реализовать операцию извлечения односоставных текстовых данных, исключив числа.
Нам необходимо сохранить только текстовую информацию.
Специальная формула применяется по аналогичному алгоритму, что и вышерассмотренная. Она выглядит так: =ПСТР(А1;ПОИСК(«-«;А1)+1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР(А1;ПОИСК(«-«;А1)+1;999);СТРОКА($1:$99);1));0)-1)
Здесь мы, благодаря фрагменту ПОИСК(«-«;А1) отыскали локацию тире, а затем при помощи оператора ПОИСКПОЗ нашли в извлеченных текстовых данных позицию 1-го числа. Передали эти показатели в оператор ПСТР, который реализовал все дальнейшие преобразования.
Второй метод: использование специального макроса
Эту процедуру можно реализовать при помощи специального макроса, созданного в табличном редакторе Эксель. К примеру, у нас есть табличка, в которой существует колонка с текстовой информацией и числовыми данными. Нам нужно оставить только числовые данные, убрав при этом текст.
В табличном редакторе отсутствует интегрированная функция, поэтому нам необходимо создать такой пользовательский макрос:
Public Function GetNumbers(TargetCell As Range) As String
Dim LenStr As Long
For LenStr = 1 To Len(TargetCell)
Select Case Asc(Mid(TargetCell, LenStr, 1))
Case 48 To 57
GetNumbers = GetNumbers & Mid(TargetCell, LenStr, 1)
End Select
Next
End Function
Подробная инструкция по созданию пользовательского макроса выглядит так:
- Используя специальную комбинацию клавиш «Alt+F11», производим открытие редактора VBA. Альтернативный вариант – нажать ПКМ по рабочему листу и выбрать элемент «Исходный текст».
- Реализуем создание нового модуля. Для осуществления этой процедуры жмем левой клавишей мышки на элемент, имеющий наименование «Insert», а затем выбираем объект «Module».
- Производим копирование кода, который располагается выше, и вставляем его в созданный модуль. Копирование реализуем при помощи сочетания клавиш «Ctrl+C», а вставку – «Ctrl+V».
- Теперь в необходимой ячейке, в которой мы планируем вывести только числовую информацию, вбиваем такую формулу: =GetNumbers(А1).
- Нам нужно растянуть формулу вниз на все ячейки колонки. Для этого наводим указатель на нижний правый уголок ячейки. Курсор принял форму небольшого плюсика темного цвета. Зажимаем левую клавишу мышки и протягиваем формулу вниз до окончания таблички.
- Готово! Мы реализовали извлечение числовой информации при помощи специального макроса.
Заключение и выводы о процедуре извлечение
Мы выяснили, что существует несколько способов, позволяющих реализовать извлечение числовой информации. Осуществить эту операцию можно при помощи создания специальных макросов в редакторе VBA или же используя массивную формулу. Каждый пользователь может самостоятельно выбрать для себя наиболее удобный способ, который позволит ему убрать текстовую информацию из ячейки и оставить при этом числовые данные.
Оцените качество статьи. Нам важно ваше мнение:
bizzon Пользователь Сообщений: 51 |
Добрый день! |
ikki Пользователь Сообщений: 9709 |
Добрый день. фрилансер Excel, VBA — контакты в профиле |
vikttur Пользователь Сообщений: 47199 |
ЛЕВСИМВ |
bizzon Пользователь Сообщений: 51 |
=ПСТР(A1;НАЙТИ(» «;A1)+1;100) нашел эту но тут убирается первое слово |
The_Prist Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
bizzon Пользователь Сообщений: 51 |
#6 08.02.2015 11:33:15 Спасибо, The Prist, не так искал. Вот верное решение нашел по Вашей ссылке.
|
||
ikki Пользователь Сообщений: 9709 |
#7 08.02.2015 11:35:54 оставить «все слова кроме первого» (ц) решается проще:
удалить (иначе говоря. оставить только первое) — ещё проще;
собственно, то, что и предлагал Вам vikttur. Изменено: ikki — 08.02.2015 11:38:47 фрилансер Excel, VBA — контакты в профиле |
||||
The_Prist Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
#8 08.02.2015 11:57:20
ага. И в статье примерно такая же формула — самая первая А дальше уже сложности идут. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
ikki Пользователь Сообщений: 9709 |
«суровые челябинские парни настолько суровы…» (ц) фрилансер Excel, VBA — контакты в профиле |
bizzon Пользователь Сообщений: 51 |
Все верно если 2 и больше слова, но если 1 слово то тогда выдает ошибку, поэтому взял большую формулу |
ikki Пользователь Сообщений: 9709 |
во-первых, про одно слово Вы ни разу не упоминали. но самое главное — решили как решили. фрилансер Excel, VBA — контакты в профиле |
The_Prist Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
#12 08.02.2015 18:11:14
=ПСТР(A1&» «;1;НАЙТИ(» «;A1&» «)-1) Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
bizzon Пользователь Сообщений: 51 |
Спасибо и эта работает, а подскажите, пожалуйста, в чем разница между использованием этих 2 формул? |
vikttur Пользователь Сообщений: 47199 |
Каких именно? |
bizzon Пользователь Сообщений: 51 |
#15 09.02.2015 00:59:42 Просто подходят обе формулы, думал может есть разница какую выбрать?
Спасибо за помощь! |
||
The_Prist Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
1 формула более универсальна и с её помощью можно выбрать не только первое, но и любое слово по порядку. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
bizzon Пользователь Сообщений: 51 |
#17 10.02.2015 13:05:05 Спасибо |
На чтение 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 для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Еще…Меньше
Вы можете очистить ячейки, чтобы удалить содержимое ячеек (формулы и данные), форматы (включая числовые форматы, условные форматы и границы), а также все вложенные комментарии. Очищенные ячейки остаются пустыми или неформатированные ячейки на листе.
-
Вы можете выбрать ячейки, строки или столбцы, которые нужно очистить.
Совет: Чтобы отменить выделение ячеек, щелкните любую ячейку на листе.
-
На вкладке Главная в группе Редактирование щелкните стрелку рядом с кнопкой Очистить и сделайте следующее:
-
Чтобы очистить все содержимое, форматы и приметки, содержащиеся в выбранных ячейках, нажмите кнопку Очистить все.
-
Чтобы очистить только форматы, примененные к выбранным ячейкам, нажмите кнопку Очистить форматы.
-
Чтобы очистить только содержимое выбранных ячеек, оставив на месте любые форматы и комментарии, нажмите кнопку Очистить содержимое.
-
Чтобы очистить примечания или заметки, прикрепленные к выбранным ячейкам, нажмите кнопку Очистить примечания и заметки.
-
Чтобы очистить все гиперссылки, прикрепленные к выбранным ячейкам, выберите очистить гиперссылки.
-
Примечания:
-
Если щелкнуть ячейку и нажать кнопку DELETE или BACKSPACE, содержимое ячейки будет очищено без удаления форматов и приметок к ячейкам.
-
Если очистить ячейку с помощью окну Очистить все или Очистить содержимое,ячейка больше не содержит значения, а формула, которая ссылается на эту ячейку, получает значение 0 (ноль).
-
Если вы хотите удалить ячейки с таблицы и сдвинуть окружающие ячейки, чтобы заполнить место, вы можете выбрать ячейки и удалить их. На вкладке Главная в группе Ячейки щелкните стрелку рядом с кнопкой Удалитьи выберите удалить ячейки.