Бывают ситуации, когда необходимо отрезать/ удалить строго определенное количество символов в тексте справа или слева. Например, когда вы имеете список адресов, и вначале каждого адреса стоит шестизначный индекс. Нужно убрать почтовые индексы из списка, но через замену их не уберешь, так как они имеют совершенно разные значения и не находятся опцией замены.
Функции, которая отрезает лишнее количество символов в ячейке, найти не удается, но существует система из двух функций, которые можно применить. Это система из функции ЛЕВСИМВ (или ПРАВСИМВ) и функции ДЛСТР (длина строки).
Рассмотрим их применение.
Вначале находим количество символов в тексте при помощи функции ДЛСТР. Для этого запускаем менеджер функций, выбираем ДЛСТР, указываем ячейку с текстом. Функция ДЛСТР посчитает количество символов.
Зная длину лишнего текста — 6 знаков в индексе, вычитаем их из общего числа символов посчитанных функцией ДЛСТР и получаем то количество символов, которое должно остаться в тексте, когда удалим индекс.
Полученное значение – количество оставляемых в тексте знаков, вписываем в функцию ЛЕВСИМВ или ПРАВСИМВ. Если нужно удалить знаки справа, то используем ЛЕВСИМВ, если слева, то ПРАВСИМВ. Нажимаем «Enter». Функция ЛЕВСИМВ или ПРАВСИМВ присваивает ячейке нужное нам количество символов из текста в новую ячейку, исключая ненужный нам индекс.
Для уменьшения количества ячеек с расчетами эти функции можно записать в систему следующего вида:
ПРАВСИМВ(…*¹;(ДЛСТР(…*¹)-6)).
Где …*¹- адрес ячейки, из которой берем текст.
Загрузить PDF
Загрузить PDF
Данная статья научит вас обрезать текст в Microsoft Excel. Для этого вам в первую очередь потребуется ввести в Excel полные неукороченные данные.
-
1
Запустите Microsoft Excel. Если у вас уже создан документ с данными, которые требуют обработки, дважды кликните по нему мышкой, чтобы открыть. В ином случае вам необходимо запустить Microsoft Excel, чтобы создать новую книгу и ввести в нее данные.
-
2
Выделите ячейку, в которой должен быть выведен укороченный текст. Это необходимо сделать тогда, когда в книгу у вас уже введены необработанные данные.
- Обратите внимание, что выбранная ячейка должна отличаться от той ячейки, в которой содержится полный текст.
-
3
Введите формулу ЛЕВСИМВ или ПРАВСИМВ в выделенную ячейку. Принцип действия формул ЛЕВСИМВ и ПРАВСИМВ одинаков, несмотря на то, что ЛЕВСИМВ отражает заданное количество символов от начала текста заданной ячейки, а ПРАВСИМВ – от ее конца. Вводимая вами формула должна выглядеть следующим образом: «=ЛЕВСИМВ(адрес ячейки с текстом; количество символов для отображения)». Кавычки вводить не нужно. Ниже приведено несколько примеров использования упомянутых функций.[1]
- Формула =ЛЕВСИМВ(A3;6) покажет первые шесть символов текста из ячейки A3. Если в исходной ячейке содержится фраза «кошки лучше», то в ячейке с формулой появится укороченная фраза «кошки».
- Формула =ПРАВСИМВ(B2;5) покажет последние пять символов текста из ячейки B2. Если в ячейке B2 содержится фраза «я люблю wikiHow», то в ячейке с формулой появится укороченный текст «kiHow».
- Помните о том, что пробелы в тексте тоже считаются за символ.
-
4
Когда закончите ввод параметров формулы, нажмите на клавиатуре клавишу Enter. Ячейка с формулой автоматически отразит обрезанный текст.
Реклама
-
1
Выделите ячейку, в которой должен появиться обрезанный текст. Эта ячейка должна отличаться от той ячейки, в которой содержится обрабатываемый текст.
- Если вы еще не ввели данные для обработки, то это нужно сделать в первую очередь.
-
2
Введите формулу ПСТР в выделенную ячейку. Функция ПСТР позволяет извлечь текст из середины строки. Вводимая формула должна выглядеть следующим образом: «=ПСТР(адрес ячейки с текстом, порядковый номер начального символа извлекаемого текста, количество извлекаемых символов)». Кавычки вводить не нужно. Ниже приведено несколько примеров.
- Формула =ПСТР(A1;3;3) отражает три символа из ячейки A1, первый из которых занимает третью позицию от начала полного текста. Если в ячейке A1 содержится фраза «гоночный автомобиль», то в ячейке с формулой появится сокращенный текст «ноч».
- Аналогичным образом, формула =ПСТР(B3;4;8) отражает восемь символов из ячейки B3, начиная с четвертой позиции от начала текста. Если в ячейке B3 содержится фраза «бананы – не люди», то в ячейке с формулой появится сокращенный текст «аны – не».
-
3
Когда закончите ввод параметров формулы, нажмите на клавиатуре клавишу Enter. Ячейка с формулой автоматически отразит обрезанный текст.
Реклама
-
1
Выберите ячейку с текстом, которую вы хотите разбить. В ней должно содержаться больше текстовых символов, чем пробелов.
-
2
Нажмите на вкладку Данные. Она расположена вверху на панели инструментов.
-
3
Нажмите на кнопку Текст по столбцам. Эта кнопка расположена на панели инструментов в группе кнопок под названием «Работа с данными».
- С помощью функциональных возможностей данной кнопки можно поделить содержимое ячейки Excel на несколько отдельных колонок.
-
4
В появившемся окне настроек активируйте опцию фиксированной ширины. После нажатия на предыдущем шаге кнопки Текст по столбцам откроется окно настроек с названием «Мастер текстов (разбор) – шаг 1 из 3». В окне у вас будет возможность выбора одной из двух опций: «с разделителями» или «фиксированной ширины». Опция «с разделителями» подразумевает, что текст будет разделен на части по пробелам или запятым. Данная опция обычно бывает полезна при обработке данных, импортированных из других приложений и баз данных. Опция «фиксированной ширины» позволяет создать из текста колонки с заданным количеством текстовых символов.
-
5
Нажмите кнопку Далее. Перед вами появится описание трех возможных вариантов действий. Чтобы вставить конец строки текста, щелкните в нужной позиции. Чтобы удалить конец строки, дважды щелкните по разделительной линии. Чтобы переместить конец строки, нажмите на разделительную линию и перетащите ее в нужное место.
-
6
Снова нажмите кнопку Далее. В данном окне вам также предложат несколько опций формата данных столбца на выбор: «общий», «текстовый», «дата» и «пропустить столбец». Просто пропустите данную страницу, если только вы не хотите намеренно поменять исходный формат своих данных.
-
7
Нажмите на кнопку Готово. Теперь исходный текст будет разделен на две или более отдельных ячеек.
Реклама
Об этой статье
Эту страницу просматривали 127 764 раза.
Была ли эта статья полезной?
При импорте и копировании таблиц в Excel могут формироваться пустые строки и ячейки. Они мешают работе, отвлекают.
Некоторые формулы могут работать некорректно. Использовать ряд инструментов в отношении не полностью заполненного диапазона невозможно. Научимся быстро удалять пустые ячейки в конце или середине таблицы. Будем использовать простые средства, доступные пользователю любого уровня.
Как в таблице Excel удалить пустые строки?
Чтобы показать на примере, как удалить лишние строки, для демонстрации порядка действий возьмем таблицу с условными данными:
Пример 1. Сортировка данных в таблице. Выделяем всю таблицу. Открываем вкладку «Данные» — инструмент «Сортировка и фильтр» — нажимаем кнопку «Сортировка». Или щелкаем правой кнопкой мыши по выделенному диапазону и делаем сортировку «от минимального к максимальному».
Пустые строки после сортировки по возрастанию оказываются внизу диапазона.
Если порядок значений важен, то до сортировки необходимо вставить пустой столбец, сделать сквозную нумерацию. После сортировки и удаления пустых строк вновь отсортировать данные по вставленному столбцу с нумерацией.
Пример 2. Фильтр. Диапазон должен быть отформатирован как таблица с заголовками. Выделяем «шапку». На вкладке «Данные» нажимаем кнопку «Фильтр» («Сортировка и фильтр»). Справа от названия каждого столбца появится стрелочка вниз. Нажимаем – открывается окно фильтрации. Снимаем выделение напротив имени «Пустые».
Таким же способом можно удалить пустые ячейки в строке Excel. Выбираем нужный столбец и фильтруем его данные.
Пример 3. Выделение группы ячеек. Выделяем всю таблицу. В главном меню на вкладке «Редактирование» нажимаем кнопку «Найти и выделить». Выбираем инструмент «Выделение группы ячеек».
В открывшемся окне выбираем пункт «Пустые ячейки».
Программа отмечает пустые ячейки. На главной странице находим вкладку «Ячейки», нажимаем «Удалить».
Результат – заполненный диапазон «без пустот».
Внимание! После удаления часть ячеек перескакивает вверх – данные могут перепутаться. Поэтому для перекрывающихся диапазонов инструмент не подходит.
Полезный совет! Сочетание клавиш для удаления выделенной строки в Excel CTRL+«-». А для ее выделения можно нажать комбинацию горячих клавиш SHIFT+ПРОБЕЛ.
Как удалить повторяющиеся строки в Excel?
Чтобы удалить одинаковые строки в Excel, выделяем всю таблицу. Переходим на вкладку «Данные» — «Работа с данными» — «Удалить дубликаты».
В открывшемся окне выделяем те столбцы, в которых находятся повторяющиеся значения. Так как нужно удалять повторяющиеся строки, то должны быть выделены все столбцы.
После нажатия ОК Excel формирует мини-отчет вида:
Как удалить каждую вторую строку в Excel?
Проредить таблицу можно с помощью макроса. Например, такого:
А можно ручками. Предлагаем простенький способ, доступный каждому пользователю.
- В конце таблицы делаем вспомогательный столбец. Заполняем чередующимися данными. Например, «о у о у о у» и т.д. Вносим значения в первые четыре ячейки. Потом выделяем их. «Цепляем» за черный крестик в правом нижнем углу и копируем буквы до конца диапазона.
- Устанавливаем «Фильтр». Отфильтровываем последний столбец по значению «у».
- Выделяем все что осталось после фильтрации и удаляем.
- Убираем фильтр – останутся только ячейки с «о».
Вспомогательный столбец можно устранить и работать с «прореженной таблицей».
Как удалить скрытые строки в Excel?
Однажды пользователь скрыл некую информацию в строках, чтобы она не отвлекала от работы. Думал, что впоследствии данные еще понадобятся. Не понадобились – скрытые строки можно удалить: они влияют на формулы, мешают.
В тренировочной таблице скрыты ряды 5, 6, 7:
Будем их удалять.
- Переходим на «Файл»-«Сведения»-«Поиск проблем» — инструмент «Инспектор документов».
- В отрывшемся окне ставим галочку напротив «Скрытые строки и столбцы». Нажимаем «Проверить».
- Через несколько секунд программа отображает результат проверки.
- Нажимаем «Удалить все». На экране появится соответствующее уведомление.
В результате проделанной работы скрытые ячейки удалены, нумерация восстановлена.
Таким образом, убрать пустые, повторяющиеся или скрытые ячейки таблицы можно с помощью встроенного функционала программы Excel.
Как в Эксель (Excel) удалить строки по условию?
Как в Excel быстро удалить строки, содержимое которых удовлетворяет определённому условию?
Это удобно сделать с помощью фильтра.
Имеем таблицу данных с заголовком.
Щелкаем на любом месте в заголовке и выбираем на Главной вкладке пункт «Сортировка и фильтр — фильтр».
Фильтруем содержимое таблицы по требуемым условиям, по одному или нескольким столбцам.
Оставшиеся после применения фильтра ячейки / строки выделяем все вместе и выбираем пункт «Удалить строки с листа» (можно выбрать пункт «Удалить — строку» в меню после щелчка правой кнопкой мыши на выделенной ячейке).
Удалились именно те строки, которые были отфильтрованы, остальные остались на месте (нужно убрать все фильтры, чтобы их увидеть).
Я знаю 2 способа, позволяющих удалить определённые строки в Эксель (Excel).
1 способ — с помощью фильтра.
2 способ — с помощью VBA.
Расскажу о каждом способе подробно.
Если это делать с помощью фильтра, то порядок действий такой:
1) Отбираем нужные строки.
3) Убираем фильтр.
В результате в таблице останется только то, что нужно.
В таблице содержаться сведения о товарах и странах-производител ях, нужно оставить только импортные товары (то есть удалить строки, где содержится «Россия»).
1) Так как нас интересуют строки с определённым значением, то можно поставить фильтр так:
Щёлкнуть по любой ячейке с надписью «Россия» правой кнопкой мыши, а затем в контекстном меню выбрать пункт «Фильтр по значению выделенной ячейки».
2) В итоге останутся видимыми только те строки, которые требуется удалить.
Выделяем все строки и щёлкаем по выделенному правой кнопкой мыши, в контекстном меню выбираем «Удалить строки».
3) Строки удалятся, и таблица будет пустой (так как там пока стоит фильтр).
4) Снимаем фильтр с помощью кнопки на панели инструментов «Сортировка и фильтр».
Теперь можно убедиться, что в таблице остались строчки с только импортными товарами.
Нужно оставить только фрукты, стоящие > 100 рублей.
Здесь фильтр по значению ячейки уже не подойдёт, поэтому поступаем по-другому:
1) Щёлкаем левой кнопкой мыши по любой ячейке столбца с ценой и вызываем фильтр — с помощью копки «Фильтр» на вкладке «Данные» или с помощью копки «Сортировка и фильтр» на вкладке «Главная».
2) Теперь щёлкаем по специальной стрелочке на столбце с ценой, и выбираем «Числовые фильтры» -> «Меньше».
3) В появившемся окне вводим 100 и нажимаем на «OK».
4) Останутся строки с ценой < 100.
5) Теперь так же, как и в 1 примере, удаляем их и убираем фильтр.
В результате в таблице будут только те товары, у которых цена > 100.
Для удаления строк по определённому условию в VBA можно написать цикл, в котором перебираются все строки и одна (несколько) ячеек сравниваются с определённым значением.
Если условие выполняется, тогда удаляем строку с помощью команды Delete.
Создаём кнопку и привязываем к ней код (это самое простое, что можно придумать):
Dim i As Integer
If Cells(i, 3) < 100 Then Rows(i).Delete
Понятно, что если строчек будет не 10, а, например, 100, то цикл будет идти от 1 до 100.
В объекте Cells(i, 3) стоит цифра 3, так как проверяются данные у 3 по счёту столбца.
Но этот код всё же не идеален и некоторые строчки в цикле пропускаются (так как после команды Delete они смещаются) — придётся нажимать на кнопку не один раз, а несколько.
Чтобы удалить определенные строки в Excel, нажмите «надстройки» и под меню «главная» будет маленькое окошко, надо нажать на него, выпадет меню «удаление/скрытие ячеек по умолчанию», отмечаем строку «ячейки с текстом», под этой строкой есть пустая, туда вводим текст, который должен быть в удаляемых ячейках, далее выбираем «в диапазоне листа», если действие нужно на нескольких страницах, выбираем «в диапазоне листов», далее «удалить строки/ячейки» и нажимаем «пуск». Выпадет меню «обработка завершена», жмем «ок».
Второй вариант удаляем выделенные строки. Для этого выделим их мышью. И поступаем как в первом способе. Можно удалять ячейки со сдвигом и т.д.
Как в excel оставить только нужные строки
Как в excel оставить только нужные строки
20 секретов Excel, которые помогут упростить работу
Перемещение по файлам Excel
Как скрывать информацию в Excel
- ЛЕВСИМВ(Строка; Количество_символов) – выводит заданное количество символов с левого края. Например, =ЛЕВСИМВ(А1;10) выведет 10 первых символов строки в ячейке А1 . Функция имеет 2 обязательных аргумента – Строка-источник и количество выводимых символов;
Функция ЛЕВСИМВ в Эксель
- ПРАВСИМВ(Строка; Количество_символов) – функция схожа с предыдущей, она выводит заданное количество символов справа. То есть, =ПРАВСИМВ(А1;10) в результате выдаст 10 последних символов из строки А1 .
Функция ПРАВСИМВ в Excel
- ПСТР(Строка; Начальный_символ; Количество символов) – выбирает из текста нужное количество знаков, начиная с заданного. Например, =ПСТР(А1;5;3) выведет 3 символа начиная с 5-го (5-7 символы строки).
Функция ПСТР в Эксель
Функции, которая отрезает лишнее количество символов в ячейке, найти не удается, но существует система из двух функций, которые можно применить. Это система из функции ЛЕВСИМВ (или ПРАВСИМВ) и функции ДЛСТР (длина строки).
Microsoft Excel
Как переопределить используемую область листа в Excel
- Выберите все столбцы справа от столбца G . Для этого активизируйте любую ячейку в столбце Н , нажмите Ctrl+Пробел, затем Shift+End и в конце, удерживая нажатой Shift, нажмите клавишу →.
- Выполните команду Главная → Ячейки → Удалить → Удалить столбцы с листа (или щелкните правой кнопкой мыши на заголовке любого столбца и выберите команду Удалить).
- Выделите все строки ниже строки 25. Для этого активизируйте любую ячейку в строке 26. Нажмите Shift+Пробел, затем Shift+End и в конце, удерживая нажатой Shift, нажмите клавишу ↓.
- Выполните команду Главная → Ячейки → Удалит → Удалить строки с листа(или щелкните правой кнопкой мыши на заголовке любой строки и выберите команду Удалить).
- Сохраните книгу, и Excel переопределит последнюю ячейку.
Выделение содержимого ячеек в Excel
Как в excel оставить только нужные строки
Как в Excel отображать только строки с определенным текстом?
В Excel функция «Фильтр» широко используется в нашей повседневной работе. И в этом случае я расскажу, как фильтровать строки с определенным текстом в Excel. Например, здесь два столбца, и я хочу показать строки, содержащие «KTE», только в столбце B, как показано ниже.
Показать строки содержат определенную строку Kutools for Excel
Показать строки содержат определенную строку с помощью функции фильтра
1. Выберите используемые диапазоны и нажмите Данные > Фильтр для Фильтр функции.
2. Затем щелкните значок фильтра в столбце, по которому нужно выполнить фильтрацию, и выберите Текстовые фильтры > Комплект. Смотрите скриншот:
3. в Пользовательский автофильтр в диалоговом окне вы можете указать текст, на основе которого хотите выполнить фильтрацию. Смотрите скриншот:
Показать строки содержат определенную строку Kutools for Excel
1. Выберите данные, которые вы хотите использовать, нажмите Kutools Plus > Суперфильтр. Смотрите скриншот:
2. Затем в Суперфильтр панель, проверьте Указанный , чтобы исправить диапазон фильтрации, и укажите необходимые критерии в панели. Смотрите скриншот:
3. Нажмите Фильтр для фильтрации диапазона.
4. Затем нажмите Сохранить текущие настройки фильтра кнопка , затем появится диалоговое окно, в котором можно дать этому сценарию имя и указать диапазон применения сценария.
5. Нажмите OK, и вы можете открыть сценарий, щелкнув раскрывающееся меню> Открыть сохраненный сценарий настроек фильтра, чтобы выбрать текущий сохраненный сценарий, или нажав Управление сценариями настройки фильтров кнопка , выберите нужную настройку фильтра и нажмите Откройте чтобы в следующий раз включить настройки фильтра.
Как удалить каждую вторую строку в Excel
Возможность удаления каждой второй строки в Excel — это часто возникающая задача, решение которой не займет более 5 минут.
Видеоинструкция
Как удалить каждую вторую строку в Excel
Для выполнения этой задачи потребуется первоначально добавить новый столбец, который можно назвать «Индикатором» и добавить в первые две строчки цифры 1 и 2.
После копируем первые две ячейки, кликнув правой клавишей мыши и нажав на «Копировать» (сочетание клавиш CTRL+C).
Далее выделяем область, в которой будет происходить удаление и нажимаем кликаем правой клавишей мыши и выбираем «Вставить скопированные ячейки» (сочетание клавиш CTRL+V).
После включаем фильтр, перейдя в «Данные»-«Фильтр».
Следующим этапом кликаем на 1 и удаляем ее из показа.
Выделяем оставшиеся четные строки и при помощи правой клавиши мыши выводим меню и выбираем «Удалить строку».
Включаем показ нечетных строк.
Все готово, остались лишь нечетные строки.
Удаление каждой третьей или любой другой строки в Эксель
Сделать это можно по той же инструкции, сменив лишь начальные цифры, например, если нужно избавиться от каждой третьей строки, то необходимо использовать повторяющуюся комбинацию 1, 2, 3.
Аналогичный образом можно обрезать не только 1 но 2 ненужные строки из списка, например, 2 и 4 из 5.
Как в Эксель (Excel) удалить строки по условию?
Как в Excel быстро удалить строки, содержимое которых удовлетворяет определённому условию?
Это удобно сделать с помощью фильтра.
Имеем таблицу данных с заголовком.
Щелкаем на любом месте в заголовке и выбираем на Главной вкладке пункт «Сортировка и фильтр — фильтр».
Фильтруем содержимое таблицы по требуемым условиям, по одному или нескольким столбцам.
Оставшиеся после применения фильтра ячейки / строки выделяем все вместе и выбираем пункт «Удалить строки с листа» (можно выбрать пункт «Удалить — строку» в меню после щелчка правой кнопкой мыши на выделенной ячейке).
Удалились именно те строки, которые были отфильтрованы, остальные остались на месте (нужно убрать все фильтры, чтобы их увидеть).
Я знаю 2 способа, позволяющих удалить определённые строки в Эксель (Excel).
1 способ — с помощью фильтра.
2 способ — с помощью VBA.
Расскажу о каждом способе подробно.
Если это делать с помощью фильтра, то порядок действий такой:
1) Отбираем нужные строки.
3) Убираем фильтр.
В результате в таблице останется только то, что нужно.
В таблице содержаться сведения о товарах и странах-производител ях, нужно оставить только импортные товары (то есть удалить строки, где содержится «Россия»).
1) Так как нас интересуют строки с определённым значением, то можно поставить фильтр так:
Щёлкнуть по любой ячейке с надписью «Россия» правой кнопкой мыши, а затем в контекстном меню выбрать пункт «Фильтр по значению выделенной ячейки».
2) В итоге останутся видимыми только те строки, которые требуется удалить.
Выделяем все строки и щёлкаем по выделенному правой кнопкой мыши, в контекстном меню выбираем «Удалить строки».
3) Строки удалятся, и таблица будет пустой (так как там пока стоит фильтр).
4) Снимаем фильтр с помощью кнопки на панели инструментов «Сортировка и фильтр».
Теперь можно убедиться, что в таблице остались строчки с только импортными товарами.
Нужно оставить только фрукты, стоящие > 100 рублей.
Здесь фильтр по значению ячейки уже не подойдёт, поэтому поступаем по-другому:
1) Щёлкаем левой кнопкой мыши по любой ячейке столбца с ценой и вызываем фильтр — с помощью копки «Фильтр» на вкладке «Данные» или с помощью копки «Сортировка и фильтр» на вкладке «Главная».
2) Теперь щёлкаем по специальной стрелочке на столбце с ценой, и выбираем «Числовые фильтры» -> «Меньше».
3) В появившемся окне вводим 100 и нажимаем на «OK».
4) Останутся строки с ценой 100.
Для удаления строк по определённому условию в VBA можно написать цикл, в котором перебираются все строки и одна (несколько) ячеек сравниваются с определённым значением.
Если условие выполняется, тогда удаляем строку с помощью команды Delete.
Создаём кнопку и привязываем к ней код (это самое простое, что можно придумать):
Dim i As Integer
Если вы хотите например удалить строки из таблицы Ексель, в которых есть некое число, или слово, то выделите одну из таких строк (с наличием этого числа или слова) Всю строку выделите а не ячейку с эти содержанием. Наверху в окнах задач ищем кнопку Сортировка и фильтр (на ней воронка нарисована) нажмите по ней, в меню выползающем выберите фильтр и установите условие сортировки, нажмите Применить.
Как удалить строки в Excel по условию? Удаление и скрытие пустых строк и строк, содержащих заданное значение
Прежде чем перейти к теме статьи, разберемся, с чем мы будем иметь дело. Посмотрим на иерархию объектов в Excel. Рабочая книга (Workbook) – это файл Excel, содержащий рабочие листы. Рабочий лист (Worksheet), в свою очередь, представляет собой электронную таблицу, основной тип документа, который используется приложением Excel для хранения и обработки данных. Рабочие листы — это таблицы, состоящие из ячеек, организованных в столбцы и строки и являются частью рабочей книги. Основным элементом электронной таблицы является ячейка. Именно в ячейках содержится информация – текст, значения, формулы. Каждая ячейка имеет свой адрес – номер строки и номер столбца, на пересечении которых находится ячейка. В этой статье более подробно остановимся на строках.
Строки в Excel и основные действия с ними
Количество строк в Excel 2003 – 65 536, а число строк в Excel 2007 и Excel 2010 – уже 1 048 576. Наиболее частыми действиями со строками являются копирование, вставка, добавление новых строк, удаление и скрытие. Без особого труда можно преобразовать Excel строку в столбец и наоборот. Такое преобразование называется транспонированием . Для преобразования строки в столбец необходимо скопировать данные строки, после чего нажать правую кнопку мыши и из контекстного меню выбрать пункт «Специальная вставка…». В появившемся диалоговом окне «Специальная вставка» поставить галочку в поле «транспонировать» и нажать кнопку ОК.
Все манипуляции со строками не представляют какой-либо особой сложности, но задача существенно усложняется, когда работать приходится с большими объемами данных и в особых условиях, когда к примеру нельзя воспользоваться стандартными средствами Excel, такими как сортировка. В таких случаях на помощь как всегда приходят макросы VBA. С помощью макросов VBA Excel строки легко поддаются обработке, можно например скрыть все пустые строк и или удалить строки содержащие заданный текст.
Далее рассмотрим инструмент, в котором реализовано программное скрытие и удаление пустых строк, а также скрытие и удаление любых строк, по заданным пользователем условиям, при этом все параметры для работы программы задаются не в редакторе программного кода, а в диалоговом окне, что очень удобно. Надстройка работает как с видимыми так и со скрытыми и отфильтрованными строками .
Надстройка для удаления и скрытия строк по условию
1) Скрывать либо удалять строки, подходящие под заданное условие;
2) скрывать либо удалять строки, находящиеся ниже или выше строк, подходящих под заданное условие;
3) скрывать либо удалять заданное количество строк для каждого действия;
4) скрывать либо удалять разное количество строк для каждого действия, если количество строк указано в отдельном столбце;
5) выбирать одно из нескольких условий для искомых значений (совпадает, не совпадает, содержит, не содержит, начинается, не начинается, заканчивается, не заканчивается);
6) находить пустые строки и строки, содержащие заданный текст (либо массив из текстовых значений);
7) осуществлять одновременный поиск различных текстовых выражений, внесенных в поле для ввода текста с использованием знака-разделителя. В качестве знака-разделителя используется (;) точка с запятой;
выбирать различные диапазоны для обработки данных;
9) ограничивать выбранные диапазоны номерами строк сверху и/или снизу для избежания повреждения шапок таблиц и строк с разного рода промежуточными итогами;
10) осуществлять поиск текста в строках как с учетом регистра, так и без.
Диалоговое окно надстройки
По изображению диалогового окна можно получить представление о том, какие возможности предоставляются надстройкой — это удаление/скрытие пустых строк и строк, подходящих под заданные условия.
Как скрыть или удалить строки по условию?
На выбор пользователя макрос может удалять/скрывать пустые строки, а может на выбор пользователя скрывать либо удалять строки, удовлетворяющие заданным условиям, например таким как содержание заданного текста, либо отсутствием такового, может учитывать регистр при поиске текста в строках, а может не учитывать. Для того, чтобы при удалении/скрытии в таблицах не пострадала шапка или промежуточные результаты, введено дополнительное ограничение по номерам строк, при помощи которого можно задавать диапазон для действия макроса. Если же диапазон не задан пользователем, то макрос работает со строками так называемого используемого диапазона, то есть со строки, в которой содержится первая заполненная информацией ячейка, до строки с последней заполненной ячейкой. Пользователю также предлагается ограничить обработку данных либо активным листом, либо всеми листами активной рабочей книги.
При помощи надстройки можно производить действия не только с самими строками, которые подходят под заданное условие, но и со строками, которые находятся выше или ниже этих строк. Кроме того, предусмотрена возможность задать количество строк для каждого действия.
Как скрывать или удалять разное количество строк?
Если в диалоговом окне надстройки установить флажок в поле «Разное количество строк», то числовое значение в поле «Для каждого действия, шт.» меняется на номер столбца, в котором содержатся значения для каждого действия. В этом случае за каждое действие будет скрыто или удалено столько строк, сколько указано в соответствующей строке заданного столбца.
Удаление (скрытие) строк по условию
макрос удалит на листе все строки, в которых содержится искомый текст:
Чтобы вместо удаления просто скрыть такие строки, замените строку
Расширенная версия этого макроса — с использованием UserForm для ввода искомого значения
Ещё один вариант кода, позволяющего выполнять поиск (с последующим удалением или скрытием строк) сразу по нескольким условиям:
- 191594 просмотра
Комментарии
Я не занимаюсь поддержкой бесплатных макросов, и модификацией их под ваши требования.
В комментариях к статье есть очень много вариантов переделки этого макроса, — полистайте комменты, может найдете подходящий вариант кода.
Если же хотите получить готовое решение, — оформляйте заказ на сайте, сделаю (платно. минимальная стоимость заказа 1500 рублей)
Добавление комментариев к данной статье на этом отключаю.
Подскажите пожалуйста. Мучаюсь уже неделю. Не могу переделать существующие макросы для скрытия строк. Имеется таблица с цифрами. Нужно что бы скрывались строки если одновременно в столбце А и В и С и D значение меньше чем 0. Было бы не плохо это значение вводить в user form и там были кнопочки скрыть и показать все. Помогите пожалуйста. Да и ещё количество строк может бить разное. А цифровые значения начинаются с второй строки.
Здравствуйте, у меня такая ситуация. Есть таблица, с 3000 строками, и примерно 25 столбиками
Первые 10 столбиков заполнены текстом, с 11 по 25 столбик бывают цифры. Как мне удалить полностью строку, если в столбики с 11 по 25 все пустые ячейки ? а если хоть одна ячейка заполнена, то строку не трогать? но на первые десять столбиков не надо обращать внимание
А как сделать такое же условие для объеденных ячеек только по нескольким значениям?
Я должен был догадаться, какие листы надо обрабатывать, а какие нет?
Чтобы обработать ВСЕ листы, — напишите
Большое спасибо, но у меня следующие листы «3», «3А», «3Б», «4».
Подскажите, как сделать этот макрос для листов «2», «2А», «2Б» и т. д.
Sub УдалениеСтрокПоУсловию()
Dim ra As Range, delra As Range, ТекстДляПоиска As String
Application.ScreenUpdating = False ‘ отключаем обновление экрана
ТекстДляПоиска = «Наименование ценности» ‘ удаляем строки с таким текстом
‘ перебираем все строки в используемом диапазоне листа
For Each ra In ActiveSheet.UsedRange.Rows
‘ если в строке найден искомый текст
If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then
‘ добавляем строку в диапазон для удаления
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
End If
Next
‘ если подходящие строки найдены — удаляем их
If Not delra Is Nothing Then delra.EntireRow.Delete
End Sub
Если необходимо наоборот отобразить строки «EntireRow.Hidden = False»
То как осуществить поиск текста в скрытых строках/столбцах?
Здравствуйте. Подскажите, пожалуйста, как прописать макрос так, чтоб он:
1. удалял все строки с заливкой цветом, или
2. удалял все строки, содержащие какую либо ячейку с заливкой цветом.
Спасибо.
Игорь,благодарю за макрос — облегчает жизнь! Вы не посоветуете как работать с этим макросом при защите листа?
Добрый день! Подскажите пожалуйста, Как сделать макрос скрывающий строки при условии что в двух подряд столбцах 0 или пусто? и чтоб он запускался не при открытии файла, а кнопкой?
у меня вариант с условием одного столбца, как его исправить
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim d As Integer
d = UsedRange.Rows.Count + 1
For rwIndex = 1 To 31
colIndex = 3
If Cells(rwIndex, colIndex).Value = 0 Then
Rows(rwIndex).Hidden = True
End If
Next
End Sub
Буду очень признательна)
Добрый день! У меня проблема с большими таблицами и с их колличеством) В одной книге у меня 25 листов на каждом большие таблицы, для удбства печати я создала макрос скрывающий ненужные строки, столбцы и ячейки во всей книге сразу, поочередно на каждом листе. Теперь хочу чтоб можно было сразу во всей книге развернуть скрытые ячейки. И не могу) Подскажите как исправить этот макрос чтоб он работал в модуле «Эта книга» для всех листов сразу
Sub Show()
Columns.Hidden = False
Rows.Hidden = False
Во — то что доктор прописал — спасибо! И извините за не корректность:)
Сандер, я написал код так, как вы просили, — если в ячейке присутствует цифра, то строка удаляется.
А вам надо было удалять только ячейки с ЧИСЛОМ (а не содержащие цифры)
Замените
Увы. работает аналогично с «Удаление (скрытие) строк по условию», т.е. если в тексте присутствует допустим «Адаптер АТ-2000 14 В22» — что там, что в вашем примере удаляет строку. Просто думал — есть что-нить персональное с цифрами.
Сандер, так попробуйте:
Здравствуйте! Пролистал, прочитал — таки не нашел ответ к своей задаче, а она такова: в столбце чередуются и текст и цифры — надо удалить строки которые содержат цифры(они естно — разные). Спасибо!
Евгений, при работе макросов, отмена действий в Excel не работает
(что сделано макросом, никак не отменить, — так устроен Excel)
Подскажите. после удаления строк с помощью макроса, нельзя почему то вернуть назад назад изменения.Что нужно сделать чтоб вернуть изменения назад.
Здравствуйте, Нурьяна.
Моя программа нормально работает, — если ей правильно настроить
(настройка под каждый конкретный сайт, — от 1500 руб, + сама программа 2500 стоит)
PS: на будущее, размещайте коммент не в первой попавшейся статье, а в статье с описанием программы-парсера
http://excelvba.ru/programmes/Parser
можете сразу оформить заказ на парсер, в таком виде:
http://excelvba.ru/programmes/Parser/order
Здравствуй Админ! Долго Вас искала. подрабатываю на СП закупках, и уже замучилась с заполнением каталогов, сил больше нет. Как-то покупала граббер у одного программиста, ну вообще не довольна , на одну закупку граббер стоит 2800, и работает через раз. Скажите как работает Ваша программа и сколько стоит, и можно ее настроить под сайт на котором я работаю и пользоваться ею постоянно один раз заплатив?
Можем сделать под заказ, — всё будет работать как надо.
Хоть убейте — не работает. Идея в том, что макрос срабатывает при нажатии на ячейку. Берет значение из текущей активной строки и 2 столбца, ищет на другом листе и должен его просто выделить. Вся идея.
В коде грешу на
«ВзятьДанные = Cells(ActiveCell.Row, 2).Value»
Он не берет значение -> не может найти его на другом листе. Как заставить его видеть значение. ( Кавычки ставил — не помогает.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim ra As Range, finra As Range
If Target.Cells.Value = «» Then Exit Sub
If Not Intersect(Target, Range(«AF3:AF5000»)) Is Nothing Then
ВзятьДанные = Cells(ActiveCell.Row, 2).Value
Sheets(«Результат»).Select
For Each cell In Range(«A3:A2000»).Cells
If cell = ВзятьДанные Then
If finra Is Nothing Then Set finra = cell Else Set finra = Union(finra, cell)
End If
Next
If Not finra Is Nothing Then finra.EntireRow.Select
Application.ScreenUpdating = True
End If
End Sub
Андрей, так попробуйте
Со скрытием строчек все отлично. но что делать, если в дальнейшем мне нужно некоторые скрытые строки вновь раскрыть (т.к. признак для скрытия для них может в будущем быть нерелевантен)?
Сделал такую билеберду, но скрытые строки он не раскрывает 🙁 Видимо не видит скрытые строки. Помогите советом пожалуйста!
Sub Макрос()
Dim ra As Range, delra As Range, ТекстДляПоиска As String
Application.ScreenUpdating = False
For Each ra In ActiveSheet.UsedRange.Rows
If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
End If
Next
If Not delra Is Nothing Then delra.EntireRow.Hidden = False
End Sub
Кирилл, так попробуйте:
УдалятьСтрокиСТекстом = Worksheets(«ИмяВторогоЛиста»).range(«a2:a10»)
или так
УдалятьСтрокиСТекстом = Worksheets(2).range(«a2:a10»)
Добрый день! Ваш макрос очень выручает, Подскажите, как сделать, чтобы слова для поиска брались не из строки = Array(«Наименование *», «Количество», «текст?», «цен*сти», «*78*»),а с другого листа
Спасибо, заработало.
Ну я и тупой.
Sub погрузка()
Dim ra As Range, delra As Range
Application.ScreenUpdating = False ‘ отключаем обновление экрана
‘ ищем и удаляем строки, содержащие заданный текст
‘ (можно указать сколько угодно значений и использовать подстановочные знаки)
УдалятьСтрокиСТекстом = Array(«ИД пункта:», «ИД маршрута:», _
«Название модели:», «Склад отгрузки:»)
‘ перебираем все строки в используемом диапозоне листа
For Each ra In ActiveSheet.UsedRange.Rows
‘ перебираем все фразы в массиве
If ra.Row >= 17 Then
For Each word In УдалятьСтрокиСТекстом
Next word
End If
‘ если в очередной строке листа найден искомый текст
If Not ra.Find(word, , xlValues, xlPart) Is Nothing Then
‘ добовляем строку в диапазон для удаления
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
End If
Next
‘ если подходящие строки найдены, то (оставте одну из следующих строк)
If Not delra Is Nothing Then delra.EntireRow.Hidden = True ‘ скрываем их
If Not delra Is Nothing Then delra.EntireRow.Delete ‘ удаляем их
End Sub
Пожалуйста, подскажите что не так, в таком исполнении не хочет удалять с 17 строки.
Gjlcrf;bnt xnj yt nfr
If ra.row >= 17 then
For Each word In УдалятьСтрокиСТекстом
.
Next word
end if
Похоже я не совсем правильно выразил свою мысль, в макросе УдалениеСтрокПоНесколькимУсловиям нужно удалять строки с определенным текстом только с 17 строки и до конца листа.
Вместо
If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
пишете
ra.Replace («Что заменить», «»)
нет, мне в этом макросе нужно что бы текст удалялся с определенной сторки.
Судя по описанию задачи, Вам нужна штатная функция Эксель — заменить. Ctrl+H. Найти — пишете нужный Вам текст, поле «Заменить на» оставляете пустым.
а можете подсказать, как можно найти и удалить текст с определенной строки.
Как удалить строки по условию?
Предположу, что почти каждый сталкивался с ситуацией, когда необходимо удалить только определенные строки: имеется большая таблица и необходимо удалить из неё только те строки, которые содержат какое-то слово (цифру, фразу). Для выполнения подобной задачи можно воспользоваться несколькими способами.
Способ первый:
Использовать встроенное средство Excel — фильтр. Сначала его необходимо «установить» на листе:
- Выделяем таблицу с данными, включая заголовки. Если их нет — то выделяем с самой первой строки таблицы, в которой необходимо удалить данные
- устанавливаем фильтр:
- для Excel 2003 : Данные—Фильтр—Автофильтр
- для Excel 2007-2010 : вкладка Данные (Data) —Фильтр (Filter)(или вкладка Главная (Home) —Сортировка и фильтр (Sort&Filter) —Фильтр (Filter) )
Теперь выбираем условие для фильтра:
- в Excel 2003 надо выбрать Условие и в появившейся форме выбрать непосредственно условие(«равно», «содержит», «начинается с» и т.д.), а напротив значение в соответствии с условием.
- Для 2007-2010 Excel нужно выбрать Текстовые фильтры (Text Filters) и либо сразу выбрать одно из предлагаемых условий, либо нажать Настраиваемый фильтр (Custom Filter) и ввести значения для отбора в форме
После этого удалить отфильтрованные строки. В 2007 Excel могут возникнуть проблемы с удалением отфильтрованных строк, поэтому рекомендую сначала так же прочитать статью: Excel удаляет вместо отфильтрованных строк — все?! Как избежать.
Способ второй:
применить код VBA, который потребует только указания значения, которое необходимо найти в строке и номер столбца, в котором искать значение.
Sub Del_SubStr() Dim sSubStr As String ‘искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim lMet As Long Dim arr sSubStr = InputBox(«Укажите значение, которое необходимо найти в строке», «Запрос параметра», «») If sSubStr = «» Then lMet = 0 Else lMet = 1 lCol = Val(InputBox(«Укажите номер столбца, в котором искать указанное значение», «Запрос параметра», 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value Application.ScreenUpdating = 0 Dim rr As Range For li = 1 To lLastRow ‘цикл с первой строки до конца If -(InStr(arr(li, 1), sSubStr) > 0) = lMet Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub
Если значение sSubStr не будет указано, то будут удалены строки, ячейки указанного столбца которых, пустые.
Данный код необходимо поместить в стандартный модуль. Вызвать с листа его можно нажатием клавиш Alt + F8 , после чего выбрать Del_SubStr и нажать Выполнить. Если в данном коде в строке
If -(InStr(Cells(li, 1), sSubStr) > 0) = lMet Then
вместо = lMet указать <> lMet , то удаляться будут строки, не содержащие указанное для поиска значение. Иногда тоже удобно.
Но. Данный код просматривает строки на предмет частичного совпадения указанного значения. Например, если Вы укажете текст для поиска «отчет», то будут удалены все строки, в которых встречается это слово(«квартальный отчет», «отчет за месяц» и т.д.). Это не всегда нужно. Поэтому ниже приведен код, который будет удалять только строки, указанные ячейки которых равны конкретно указанному значению:
Sub Del_SubStr() Dim sSubStr As String ‘искомое слово или фраза(может быть указанием на ячейку) Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim arr sSubStr = InputBox(«Укажите значение, которое необходимо найти в строке», «Запрос параметра», «») lCol = Val(InputBox(«Укажите номер столбца, в котором искать указанное значение», «Запрос параметра», 1)) If lCol = 0 Then Exit Sub lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count arr = Cells(1, lCol).Resize(lLastRow).Value Application.ScreenUpdating = 0 Dim rr As Range For li = 1 To lLastRow ‘цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If Next li If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub
Здесь так же, как и в случае с предыдущим кодом можно заменить оператор сравнения( Cells(li, lCol) = sSubStr ) с равно на неравенство( Cells(li, lCol) <> sSubStr ) и тогда удаляться будут строки, значения ячеек которых не равно указанному.
УДАЛЕНИЕ СТРОК НА ОСНОВАНИИ СПИСКА ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)
Иногда бывают ситуации, когда необходимо удалить строки не по одному значению, а по нескольким. Например, если строка содержит или Итог или Отчет. Ниже приведен код, при помощи которого можно удалить строки, указав в качестве критерия диапазон значений.
Значения, которые необходимо найти и удалить перечисляются на листе с именем «Лист2». Т.е. указав на «Лист2» в столбце А(начиная с первой строки) несколько значений — они все будут удалены. Если лист называется иначе(скажем «Соответствия») в коде необходимо будет «Лист2» заменить на «Соответствия». Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.
Sub Del_Array_SubStr() Dim sSubStr As String ‘искомое слово или фраза Dim lCol As Long ‘номер столбца с просматриваемыми значениями Dim lLastRow As Long, li As Long Dim avArr, lr As Long Dim arr lCol = Val(InputBox(«Укажите номер столбца, в котором искать указанное значение», «Запрос параметра», 1)) If lCol = 0 Then Exit Sub Application.ScreenUpdating = 0 lLastRow = ActiveSheet.UsedRange.Row — 1 + ActiveSheet.UsedRange.Rows.Count ‘заносим в массив значения листа, в котором необходимо удалить строки arr = Cells(1, lCol).Resize(lLastRow).Value ‘Получаем с Лист2 значения, которые надо удалить в активном листе With Sheets(«Лист2») ‘Имя листа с диапазоном значений на удаление avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)) End With ‘удаляем Dim rr As Range For lr = 1 To UBound(avArr, 1) sSubStr = avArr(lr, 1) For li = 1 To lLastRow ‘цикл с первой строки до конца If CStr(arr(li, 1)) = sSubStr Then If rr Is Nothing Then Set rr = Cells(li, 1) Else Set rr = Union(rr, Cells(li, 1)) End If End If DoEvents Next li DoEvents Next lr If Not rr Is Nothing Then rr.EntireRow.Delete Application.ScreenUpdating = 1 End Sub
Чтобы код выше удалял строки не по точному совпадению слов, а по частичному(например, в ячейке записано «Привет, как дела?», а в списке есть слово «привет» — надо удалить, т.к. есть слово «привет»), то надо строку:
Как в Excel удалить строки по условию
При редактировании больших таблиц в Microsoft Office Excel иногда нужно избавиться от целой группы данных, которые распределены по всему массиву. Вручную отыскивать нужные области достаточно трудоемкий процесс, требующий большого количества времени. Сегодня разберемся, как в excel удалить строки по условию.
Чтобы быстро избавиться от ненужных данных, необходимо воспользоваться фильтром. В качестве примера рассмотрим отчет о выручке с проданных фруктов. Необходимо убрать позиции, где выручка меньше 100.
- Выделяете таблицу, на главной вкладке панели инструментов ищете кнопку Сортировка и фильтр и из выпадающего списка выбираете нужную опцию.
- Щелкаете по стрелочке в столбце Выручка, переходите к строке Числовые фильтры и выбираете нужное условие. В нашем случае меньше.
- В новом окне вводите число, меньше которого будет применяться фильтрация.
- Выделяете полученный фрагмент таблицы, нажимаете правой клавишей мыши и выбираете Удалить строку.
- Снова нажимаете стрелочку вниз и щелкаете по опции снять фильтр.
- Таблица принимает вид без удаленных строк.
Чтобы автоматически убирать ненужные строки, можно воспользоваться специальным инструментом редактора – макросами. Эта функция требует знаний в области программирования и синтаксисе языка Visual Basic for Application (VBA), а также необходимо иметь идею для решения задачи по средствам подпрограммы. В интернете много готовых макросов, которые подходят для удаления строк в таблице. Достаточно их скачать и привязать к редактору.
Важно! Скачивайте файлы только с проверенных сайтов во избежание заражения компьютера вирусами.
Как видите, удалить строки по условию не трудно. Более продвинутые пользователи могут воспользоваться макросами, а для остальных отлично подойдет фильтрация данных по заданному критерию.
Жми «Нравится» и получай только лучшие посты в Facebook ↓
Skip to content
Это руководство научит вас нескольким простым приемам безопасного удаления нескольких пустых строк в Excel без потери информации.
Пустые строки в таблице — это проблема, с которой мы все время от времени сталкиваемся, особенно при объединении данных из разных источников или импорте информации из каких-то отчетов. Они могут мешать вашим расчетам, портить внешний вид таблицы, а их удаление вручную может быть длительным и подверженным ошибкам процессом.
В этой статье вы узнаете несколько простых и надежных методов удаления “белых пятен” на листах Excel.
- Как НЕ НАДО удалять пустые строки в Excel
- Как удалить пустые строки при помощи формул
- Использование Power Query
- Удаляем строки с определенными пустыми ячейками
- Как убрать или скрыть лишние строки под данными
- Как быстро удалить пустые строки при помощи VBA
- Макрос 1. Удаление в выбранном диапазоне
- Макрос 2. Удаляем все пустые строки
- Макрос 3. Критерий удаления — пустая ячейка
- Самый быстрый способ удалить пустые строки в Excel
Как НЕ НАДО удалять пустые строки в Excel
Есть несколько различных способов удаления пустых строк в Microsoft Excel. Но на удивление многие онлайн-ресурсы придерживаются в своих рекомендациях наиболее опасных из них.
Пожалуй, самый популярный совет – использовать инструмент «Найти и выделить» > «Перейти к специальному» > «Пробелы» .
Что плохого в этой технике? Она выбирает все пустоты в диапазоне данных. Но ведь в строке может быть, к примеру, только одна пустая ячейка, а в остальных будет записаны какие-то данные. И, следовательно, вы в итоге удалите множество строчек, которые содержат хотя бы одну пустую ячейку. Некоторые нужные данные, естественно, будут утеряны.
Специально не буду подробно описывать последовательность действий в этом методе, чтобы вы случайно его не повторили.
И ключевым в данном случае является вопрос: «Вы уверены, что все ячейки в вашей строке пустые? У вас точно нет таких, в которых по какой-то причине не заполнены одна или несколько ячеек, а остальные содержат данные?»
Просто запомните: «Не следует использовать метод поиска пустых ячеек, чтобы выделить и удалить пустые строки».
В качестве иллюстрации на изображении ниже слева показана исходная таблица, а справа — итоговая таблица. И в результирующей таблице все неполные строки пропали, даже 4,6 и 10, которые были частично заполнены:
Встречаются также предложения удалять незаполненные строки при помощи сортировки таблицы или установления фильтра.
Но здесь мы сталкиваемся с той же опасностью. Если вы упорядочите данные по какому-то столбцу, к примеру, от меньшего к большему, то строчки с пустыми ячейками в этом столбце окажутся в самом низу. Но где гарантия того, что в других столбцах правее или левее также отсутствует информация? А если таблица достаточно большая, то и проверить это не так просто.
В итоге вы опять же рискуете удалить данные, в которых случайно оказался пропуск именно в этом столбце.
С фильтрацией примерно та же история. Вы можете установить фильтр по пустым ячейкам в каком-то конкретном столбце. Далее все может произойти так же, как в истории с сортировкой. Какие-то из ячеек могут оказаться заполнены нужной информацией. Чтобы обезопасить себя от случайной её потери, такой фильтр по пустым ячейкам нужно установить в каждом столбце. Хорошо, если их в вашей таблице штук 5. А если 20? А 30? Вряд ли у вас есть желание устанавливать, а затем снимать даже 10 фильтров.
Поэтому эти методы – это также не наш выбор.
Итог: если вы не хотите испортить или потерять данные, никогда не удаляйте пустые строки, выбирая каким-то способом отдельные пустые ячейки в вашей таблице. Вместо этого используйте один из наиболее продуманных подходов, обсуждаемых ниже.
Формула для удаления пустых строк в Excel
Формулу мы будем использовать в дополнительном столбце, который лучше всего расположить справа от вашей таблицы. Поясним на примере.
У нас имеется таблица с заказами от различных покупателей. В ней имеются пропуски. Часть ячеек не заполнена. Давайте избавимся от пустых строк, но при этом сохраним все прочие данные.
Если вы хотите точно знать, что удаляете, то используйте следующую формулу:
=ЕСЛИ(СЧЁТЗ(A2:E2)=0;»Пусто»;»»)
Где A2 — первая, а E2 — последняя использованная ячейка первой строки данных.
Введите эту формулу в F2 или любой другой свободный столбец в строке 2 и перетащите маркер заполнения, чтобы скопировать формулу вниз.
В результате у вас будет записано «Пусто» в незаполненных строках и ничего, если есть хотя бы одна ячейка с данными:
Логика формулы очевидна: вы подсчитываете заполненные ячейки с помощью функции СЧЁТЗ и используете оператор ЕСЛИ для возврата «Пусто» для нулевого результата. Если же найдена хоть какая-то информация в нужном диапазоне, то не возвращаем ничего.
Фактически, вы можете обойтись без ЕСЛИ:
=СЧЁТЗ(A2:Е2)=0
В этом случае формула вернет ИСТИНА для пустых и ЛОЖЬ для заполненных строк.
Встречаются также аналогичные решения с использованием функции СЧИТАТЬПУСТОТЫ. В ней указываем диапазон ячеек и затем сравниваем с количеством столбцов.
=ЕСЛИ(СЧИТАТЬПУСТОТЫ(A2:E2)=ЧИСЛСТОЛБ(A2:E2);»Пусто»;»»)
Если достигнуто равенство, значит, число незаполненных клеток равно числу столбцов и данных в строке нет. Поэтому её можно пометить на удаление.
Как мы это удаление сделаем?
Разберем пошагово действия, как быстро удалить пустые строки:
- Выберите любую ячейку в заголовке и нажмите «Фильтр» на вкладке «Данные». Это добавит стрелки раскрывающегося списка фильтрации ко всем ячейкам заголовка.
- Щелкните стрелку в заголовке столбца формулы, снимите флажок (Выбрать все), выберите «Пусто» и нажмите ОК:
- Выделите всё отфильтрованное. Для этого щелкните самую верхнюю ячейку и нажмите Ctrl + Shift + End, чтобы расширить выделение до последней ячейки отфильтрованной области.
Или же щелкните по номеру первой незаполненной строки на вертикальной шкале координат. При этом вся она должна подсветиться. Затем наберите на клавиатуре комбинацию Ctrl
+ Shift
+
(стрелка вниз). При этом будет выделена вся область до конца таблицы. Поле этого кликните по выделению правой кнопкой мыши и выберите из контекстного меню пункт «Удалить». Все выделенные строки будут удалены.
Можно не вызывать контекстное меню, а просто набрать на клавиатуре сочетание клавиш Ctrl
и -
.
- Снимите фильтр, нажав
Ctrl
+Shift
+L
. Или же поставьте курсор в самую верхнюю позицию и вновь нажмите на иконку фильтра в меню «Данные». - Удалите столбец с формулой проверки, поскольку он вам больше не нужен.
В результате мы имеем чистую таблицу без пробелов, но с сохранением всей информации. Частично заполненные строки остались в таблице, мы их не потеряли.
Совет. Вместо удаления, вы можете скопировать непустые строки в другое место. Для этого отфильтруйте всё, кроме «Пусто», выделите и нажмите Ctrl
+ C
. Затем переключитесь на другой лист, выберите верхнюю левую ячейку целевого диапазона и нажмите Ctrl
+ V
.
Как удалить пустые строки в Excel с помощью Power Query
В Excel 2016 и Excel 2019 есть еще один способ удалить незаполненные строки — с помощью инструмента Power Query. В Excel 2010 и 2013 его можно загрузить как надстройку.
Важное примечание! Этот метод работает со следующим предостережением: Power Query преобразует ваши данные в таблицу Excel и изменяет форматирование, такое как цвет заливки, границы и некоторые числовые форматы. Если для вас важно форматирование исходных данных, то лучше выбрать другой способ удаления.
Итак, давайте по порядку.
- Выберите диапазон, в котором вы хотите заняться удалением.
- Перейдите на вкладку «Данные» и нажмите Получить данные — Из других источников — Из таблицы/диапазона . Это загрузит вашу таблицу в редактор Power Query.
- На вкладке Главная в редакторе Power Query щелкните Удалить строки > Удалить пустые …. (как на рисунке).
- Нажмите кнопку «Закрыть и загрузить». Полученная таблица загрузится на новый лист и закроется редактор запросов.
В результате этих манипуляций я получил следующую таблицу без прежних белых полос посреди данных, но с парой неприятных изменений — формат чисел утерян и даты отображаются в формате по умолчанию вместо пользовательского.
Как удалить строки, если ячейка в определенном столбце пуста
В начале этого урока мы предостерегали вас от удаления пустых строк путем выбора пробелов. Однако этот метод пригодится, если вы хотите удалить строки на основе пробелов в определенном столбце.
В качестве примера удалим все строки, в которых ячейка в столбце A не содержит никакой информации:
- Выберите ключевой столбец, в нашем случае столбец A.
- На вкладке «Главная» нажмите Найти и выделить > Перейти… > Выделить. Или просто нажмите
F5
и затем — Выделить… .
- В диалоговом окне выберите «Пробелы» и затем — «ОК». Это выделит все пустоты в столбце A.
- Щелкните правой кнопкой мыши любую выделенную ячейку и выберите «Удалить…» из контекстного меню.
- В диалоговом окне «Удалить» кликните «Строку» и нажмите «ОК».
Готово! Строки, которые не имеют данных в столбце A, больше не существуют.
Такого же результата можно добиться, отфильтровав пробелы в ключевом столбце.
Как удалить лишние строки под данными или скрыть их.
Иногда строки, которые выглядят совершенно пустыми, на самом деле могут содержать пробелы, перевод строки или непечатаемые символы. Чтобы проверить, действительно ли последняя ячейка с данными является последней использованной ячейкой на листе, нажмите Ctrl + End. Если это привело вас к визуально свободной от данных строке под вашими данными, то с точки зрения Excel, в ней на самом деле что-то записано. Чтобы удалить эти лишние строки под таблицей, сделайте следующее:
- Щелкните заголовок первой свободной строки под данными, чтобы выбрать ее целиком.
- Нажмите
Ctrl
+Shift
+End
. Это выберет все строчки ниже, которые содержат что-либо, включая пробелы и непечатаемые символы. - Щелкните выделение правой кнопкой мыши, как это мы уже делали ранее, и выберите «Удалить…».
Однако, удаление — это достаточно радикальный шаг. Поэтому, думаю, стоит поискать более «мягкие» варианты. К примеру, нет ничего, что могло бы помешать вам незаполненные строки либо столбцы просто скрыть. Вот простая инструкция:
- Выберите строку под последней строкой с данными, щелкнув ее заголовок.
- Нажмите
Ctrl
+Shift
+ , чтобы расширить выделение до конца вниз. - Нажмите
Ctrl
+9
чтобы скрыть выбранные строки. Или щелкните выделение правой кнопкой мыши и выберите «Скрыть».
Чтобы вновь показать ранее скрытое, нажмите Ctrl
+ A
, чтобы выделить весь лист, а затем нажмите Ctrl
+ Shift
+ 9
, чтобы снова сделать все видимым.
Аналогичным образом вы можете скрыть неиспользуемые столбцы справа от ваших данных.
Как быстро удалить пустые строки в Excel с помощью VBA
Excel VBA может исправить множество вещей, включая и несколько пустых строк. Лучшее в предлагаемом подходе — то, что он не требует никаких навыков программирования. Просто возьмите один из приведенных ниже кодов и запустите его в своем Excel.
Макрос 1. Удалить пустые строки в выбранном диапазоне.
Этот код VBA автоматически удаляет все пустые строки в выбранном диапазоне, не показывая пользователю никаких сообщений или диалоговых окон.
Макрос удаляет строку, только если вся она пуста . Он определяет количество ячеек с данными в каждой строке, а затем удаляет строки с нулевым результатом.
Public Sub DeleteBlankRows()
Dim SourceRange As Range
Dim EntireRow As Range
Set SourceRange = Application.Selection
If Not (SourceRange Is Nothing) Then
Application.ScreenUpdating = False
For I = SourceRange.Rows.Count To 1 Step -1
Set EntireRow = SourceRange.Cells(I, 1).EntireRow
If Application.WorksheetFunction.CountA(EntireRow) = 0 Then
EntireRow.Delete
End If
Next
Application.ScreenUpdating = True
End If
End Sub
Чтобы дать пользователю возможность выбрать целевой диапазон после запуска макроса, используйте этот код:
Public Sub RemoveBlankLines()
Dim SourceRange As Range
Dim EntireRow As Range
On Error Resume Next
Set SourceRange = Application.InputBox( _
"Выберите диапазон:", "Удалить пустые строки", _
Application.Selection.Address, Type:=8)
If Not (SourceRange Is Nothing) Then
Application.ScreenUpdating = False
For I = SourceRange.Rows.Count To 1 Step -1
Set EntireRow = SourceRange.Cells(I, 1).EntireRow
If Application.WorksheetFunction.CountA(EntireRow) = 0 Then
EntireRow.Delete
End If
Next
Application.ScreenUpdating = True
End If
End Sub
После запуска макрос показывает вам поле ввода, вы указываете целевой диапазон и нажимаете OK:
Через мгновение все лишние строки в выбранном диапазоне будут удалены, а оставшиеся сдвинутся вверх.
Макрос 2. Удалить все пустые строки в Excel
Чтобы массово удалить все пустые строки на активном листе, макрос находит последнюю строку используемого диапазона (т.е. содержащую последнюю ячейку с данными), а затем переходит вверх, удаляя строчки, в которых нет никакой информации:
Sub DeleteAllEmptyRows() Dim LastRowIndex As Integer Dim RowIndex As Integer Dim UsedRng As Range Set UsedRng = ActiveSheet.UsedRange LastRowIndex = UsedRng.Row - 1 + UsedRng.Rows.Count Application.ScreenUpdating = False For RowIndex = LastRowIndex To 1 Step -1 If Application.CountA(Rows(RowIndex)) = 0 Then Rows(RowIndex).Delete End If Next RowIndex Application.ScreenUpdating = True End Sub
Макрос 3. Удалить строку, если ячейка пуста.
С помощью этого макроса вы можете удалить всю строку, если ячейка в указанном столбце не содержит данных.
Этот код проверяет столбец A на наличие пробелов. Чтобы удалить строки на основе другого столбца, замените «A» другой соответствующей буквой.
Sub DeleteRowIfCellBlank()
On Error Resume Next
Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Важно! Макрос удаляет неиспользуемые строки со всего листа , поэтому будьте очень осторожны при его использовании. В качестве меры предосторожности может быть целесообразно создать резервную копию рабочего листа перед запуском этого макроса.
Чтобы удалить незаполненные строки в Excel с помощью макроса, вам нужно вставить код VBA в свою книгу.
Как добавить макрос в свою книгу?
Чтобы вставить макрос в книгу, выполните следующие действия:
- Откройте лист, на котором вы хотите произвести удаление.
- Нажмите
Alt
+F11
, чтобы открыть редактор Visual Basic. - На левой панели щелкните правой кнопкой мыши и выберите Insert > Module. Те же пункты можно выбрать вверху через главное меню.
- Вставьте код в появившееся окно кода.
- Нажмите F5 для запуска макроса (но вы можете сделать это и позже прямо из вашей книги).
- Нажмите кнопку «Сохранить». При этом вам будет предложено изменить формат вашей книги. Впрочем, запустить макрос на выполнение можно и без сохранения. Просто закройте окно Visual Basic и вернитесь к вашей таблице. Переходите сразу к пункту 3 ниже.
Чтобы выполнить макрос в рабочей книге Excel, сделайте следующее:
- Откройте свою собственную книгу и включите макросы, если будет предложено.
- Перейдите к нужной таблице.
- На листе нажмите
Alt
+F8
, выберите макрос и нажмите «Выполнить».
Вы можете запустить один из следующих макросов:
DeleteBlankRows — удаляет строки без данных в текущем выбранном диапазоне.
RemoveBlankLines — удаляет чистые строки и перемещается вверх в диапазоне, выбранном вами после запуска макроса.
DeleteAllEmptyRows — удаляет все незаполненные строки на активном листе.
DeleteRowIfCellBlank — удаляет строку, если ячейка в определенном столбце пуста.
Имейте в виду, что отменить удаление при помощи меню или же комбинации клавиш Ctrl+Z
в данном случае будет невозможно. Поэтому рекомендую перед использованием макросов позаботиться о сохранении резервной копии ваших данных.
Самый быстрый способ удалить пустые строки в Excel
Читая предыдущие примеры, разве не казалось, что мы используем кувалду, чтобы расколоть орех? Существует способ буквально в два клика мышки удалить пустые строки в Excel.
При помощи надстройки Ultimate Suite вы можете удалить все пустые строки на листе:
- На вкладке Ablebits Tools в группе Преобразование (Transform) нажмите Удалить пробелы (Delete Blanks) > Пустые строки (Empty Rows) :
- Надстройка сообщит вам, что все пустые строки будут удалены из активного листа, и попросит подтвердить. Нажмите ОК, и через мгновение все строки без данных будут удалены.
Как показано на скриншоте ниже, мы удалили только абсолютно пустые строки , в которых нет ни одной ячейки с данными:
Сравните это с первым рисунком, и вы без труда заметите те 3 строки, которые были удалены одним нажатием мышки. Согласитесь: это самый простой и быстрый способ удаления пустых строк среди всех прочих, рассмотренных в этой статье. Подробнее об инструменте удаления пустот в таблице вы можете прочитать здесь.
Чтобы узнать о других полезных функциях, включенных в надстройку Ultimate Suite, вы можете загрузить пробную версию.
Благодарю вас за чтение.
Обзор способов, позволяющих быстро обрезать значения ячеек и удалить лишний текст. Обрезка текста формулами слева и справа, быстрая обрезка строк надстройкой VBA, удаление лишнего текста до определенного символа, разбиение текста по столбцам.
Как обрезать символы при помощи формул?
Как оставить заданное количество символов в начале строки, остальные удалить?
Ввести в ячейку стандартную текстовую функцию Excel «ЛЕВСИМВ», которая возвращает заданное количество знаков с начала строки.
=ЛЕВСИМВ(текст, число_знаков)
Как удалить заданное количество знаков в начале строки, остальные оставить?
Ввести в ячейку комбинацию стандартных функций Excel «ПРАВСИМВ» и «ДЛСТР», которая определяет длину строки, то есть количество символов в значении указанной ячейки.
=ПРАВСИМВ(текст;ДЛСТР(текст)-ДЛСТР(ЛЕВСИМВ(текст; число_знаков)))
Как оставить заданное количество символов в конце строки, остальные удалить?
Ввести в ячейку стандартную текстовую функцию Excel «ПРАВСИМВ», которая возвращает заданное количество знаков с конца строки.
=ПРАВСИМВ(текст, число_знаков)
Как удалить заданное количество знаков в конце строки, остальные оставить?
Ввести в ячейку комбинацию стандартных функций Excel «ЛЕВСИМВ» и «ДЛСТР»
=ЛЕВСИМВ(текст;ДЛСТР(текст)-ДЛСТР(ПРАВСИМВ(текст; число_знаков)))
Как видно из приведенных примеров, оставить текстовые строки заданной длины достаточно просто при помощи формулы в одно действие. Чтобы обрезать определенное количество знаков с начала или с конца строки, необходимо вносить в ячейки достаточно громоздкие формулы, что достаточно неудобно.
Как обрезать символы без ввода формул?
Надстройка для быстрой обрезки текста
Все описанные выше манипуляции с текстовыми значениями можно производить и без использования формул, что гораздо быстрее. Для этого нужно лишь вызвать диалоговое окно надстройки и задать в нем диапазон ячеек, подходящую функцию и количество знаков, которые необходимо удалить либо оставить.
Надстройка позволяет:
1. обрезать заданное количество символов слева;
2. обрезать заданное количество символов справа;
3. обрезать значения ячеек до первого попавшегося заданного символа (сочетания символов);
4. обрезать значения ячеек до последнего попавшегося символа (сочетания символов).
надстройка для быстрой обрезки значений
В надстройку зашиты функции, аналогичные тем, которые описаны выше, что сокращает время на:
— ввод формул;
— выделение диапазона ячеек.
В программе предусмотрена возможность вместо выделения диапазона ячеек выделять целиком строки/столбцы. Программа автоматически сокращает выделенный диапазон до границы используемого диапазона, при этом на листе не должно быть отфильтрованных строк.
Разбиение текста по столбцам
Для обрезания значений ячеек можно использовать «Текст по столбцам». Это стандартное средство Excel не удаляет и не обрезает символы, а распределяет содержимое ячеек по разным столбцам при помощи мастера текстов. Кнопка вызова диалогового окна находится на вкладке «Данные» в группе кнопок «Работа с данными». Этот инструмент можно использовать в двух режимах работы, разделять исходные данные при помощи разделителей либо при помощи настраиваемых полей, когда можно вручную указать границы раздела значений.
Шаг1. Выбор формата исходных данных.
Шаг2. Установка нужной ширины полей.
Количество полей при этом не ограничено.
Шаг 3. Просмотр и получение результатов.
В результате таких манипуляций исходные значения нарезаются в соответствии с установленными полями и разносятся по различным столбцам.