Иногда вам может потребоваться очистить содержимое ячейки на основе условий в Excel, например очистка содержимого ячейки, если ячейка содержит определенное значение, очистка содержимого ячейки, если в другом столбце есть пустые ячейки, или очистка содержимого ячейки с определенным цветом фона и т. д. , Эта статья познакомит вас с некоторыми приемами для быстрого и легкого решения этих задач.
Очистить содержимое ячейки на основе значения ячейки с кодом VBA
Очистить целые строки, если значение больше или меньше определенного значения с кодом VBA
Очистить содержимое ячейки или строки на основе значения ячейки с помощью удобной функции
Очистить целые строки, если другая ячейка пуста с кодом VBA
Очистить содержимое ячейки на основе цвета фона с помощью кода VBA
Очистить содержимое ячейки на основе значения ячейки с кодом VBA
Например, у вас есть следующий диапазон данных, теперь вы хотите очистить содержимое ячейки «Толстовка», приведенный ниже код VBA может оказать вам услугу.
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.
Код VBA: очистить содержимое ячейки, если ячейка равна определенному значению
Sub ClearContents()
'Updateby ExtendOffice
Dim xRng As Range
Dim xCell As Range
Dim xText As String
Set xRng = Application.Range("A2:A12")
xText = "Hoodie" 'Change this text to your own
For Each xCell In xRng
If xCell.Value = xText Then
xCell.clearContents
End If
Next xCell
End Sub
Внимание: В приведенном выше коде A2: A12 это диапазон данных, из которого вы хотите очистить содержимое ячейки, текст «Толстовка с капюшоном” — это конкретное значение, которое вы хотите очистить. Пожалуйста, измените их на свои.
3, Затем нажмите F5 key для запуска этого кода, и все ячейки с текстом «Толстовка» сразу очищаются, см. скриншот:
Очистить целые строки, если значение больше или меньше определенного значения с кодом VBA
Предположим, у вас есть приведенный ниже диапазон данных, чтобы очистить все содержимое строки, если значение в столбце D больше или меньше 300. Здесь я создам код VBA для его завершения.
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.
Код VBA: очистить целые строки, если значение ячейки больше или меньше определенного значения
Sub ClearRowInValue()
'Updateby ExtendOffice
Dim xRg As Range
Dim xStrAddress As String
Dim xStrValue As Integer
Dim xCell As Range
Dim xRowRg As Range
Dim xF As Integer
Dim xBol As Boolean
xStrAddress = "D2:D12" 'Change cell range
xStrValue = 300 'change the value
Set xRg = Range(xStrAddress)
For xF = xRg.Rows.Count To 1 Step -1
Set xRowRg = xRg.Rows.Item(xF)
xBol = False
For Each xCell In xRowRg.Cells
If Application.IsNumber(xCell.Value) Then
If xCell.Value > xStrValue Then
xBol = True
Exit For
End If
End If
Next
If xBol Then
xRowRg.EntireRow.clearContents
End If
Next
End Sub
Внимание: В приведенном выше коде D2: D12 содержит ли диапазон данных конкретное значение, на основе которого вы хотите очистить строки; 300 конкретное значение; в > персонаж в сценарии Если xCell.Value > xStrValue Тогда означает больше чем, используйте меньше чем, измените его на < характер, как вам нужно.
3, Затем нажмите F5 ключ для запуска этого кода, и все содержимое строки очищается, если значение в столбце D больше 300, см. снимок экрана:
Очистить содержимое ячейки или строки на основе значения ячейки с помощью удобной функции
Если у вас есть Kutools for Excel, С его Выбрать определенные ячейки функцию, вы можете выбрать ячейки или строки на основе определенного значения, а затем сразу удалить содержимое ячейки.
После установки Kutools for Excel, пожалуйста, сделайте так:
1. Выберите диапазон данных со значениями, на основе которых вы хотите очистить содержимое ячейки или строки, а затем щелкните Кутулс > Выберите > Выбрать определенные ячейки, см. снимок экрана:
2. В открытом Выбрать определенные ячейки диалоговом окне выполните следующие операции:
- Нажмите Ячейка or Весь ряд что вы хотите выбрать;
- Укажите критерии под Конкретный тип раздел, как вам нужно. Здесь я хочу выбрать строки, значение которых в столбце D больше 300.
3. Затем нажмите Ok кнопка, и будут выбраны все строки со значением больше 300. Теперь вам просто нужно нажать клавишу Delete на клавиатуре, чтобы удалить содержимое ячейки, см. снимок экрана:
Tips: Есть много других критериев, которые вы можете использовать, пожалуйста, укажите свое собственное условие в диалоговом окне, как показано ниже:
Очистить данные строк в диапазоне, если он содержит пустую ячейку с кодом VBA
В этом случае, если ячейка в диапазоне данных содержит пробел, я хочу очистить данные строк из диапазона, как показано ниже.
Чтобы завершить эту задачу, примените следующий код VBA:
1. Удерживая нажатой ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули, а затем вставьте следующий код в Модули Окно.
Код VBA: очистить данные строк, если они содержат пустую ячейку
Sub ClearContents()
'Updateby ExtendOffice
Dim xcell As Range
Set xrng = Application.Range("A2:D12")
For Each xcell In xrng
If xcell.Value = "" Then
Intersect(xcell.EntireRow, xrng).ClearContents
End If
Next
End Sub
Внимание: В приведенном выше коде A2: D12 диапазон данных содержит пустые ячейки, из которых вы хотите очистить содержимое ячеек.
3, Затем нажмите F5 ключ для запуска этого кода, и данные строк с пустыми ячейками очищаются сразу в определенном диапазоне, как вам нужно.
Очистить содержимое ячейки на основе цвета фона с помощью кода VBA
Чтобы очистить ячейки, заполненные определенным цветом фона, вы можете использовать следующий код VBA.
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модули, а затем вставьте следующий код в Модули Окно.
Код VBA: очистить содержимое ячейки на основе цвета фона
Sub Clearcontents()
'Updateby ExtendOffice
Dim xcell As Range
Dim xrng As Range
Set xrng = Application.Range("A2:D12")
For Each xcell In xrng
If xcell.Interior.Color = RGB(252, 228, 214) Then
xcell.Clearcontents
End If
Next
End Sub
Внимание: В приведенном выше коде A2: D12 диапазон данных, который вы хотите использовать, RGB (252, 228, 214) — это конкретный цвет, на основе которого вы хотите очистить ячейки, вы можете извлечь режим RGB цвета фона, используя Рисовать программа на вашем компьютере.
3. А затем нажмите F5 для запуска этого кода, и содержимое ячейки с указанным цветом фона немедленно очищается. Смотрите скриншот:
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы и хранение данных; Разделить содержимое ячеек; Объедините повторяющиеся строки и сумму / среднее значение… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Избранные и быстро вставляйте формулы, Диапазоны, диаграммы и изображения; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Группировка сводной таблицы по номер недели, день недели и другое … Показать разблокированные, заблокированные ячейки разными цветами; Выделите ячейки, у которых есть формула / имя…
Вкладка Office — предоставляет интерфейс с вкладками в Office и значительно упрощает вашу работу
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
На чтение 7 мин Просмотров 1к. Опубликовано 18.11.2020
Содержание
- Как очистить ячейки стандартными средствами Excel?
- Как очистить все в выделенном диапазоне ячеек?
- Как очистить только форматы в выбранном диапазоне ячеек?
- Как очистить ячейки от содержимого?
- Как очистить ячейки от примечаний?
- Как очистить ячейки средствами VBA?
- Excel works!
- Как правильно и быстро очистить ячейки в Excel?
- Как быстро очистить ячейки в Excel от форматов?
- Как очистить данные в ячейках Excel? Очистка данных по условиям
- Удаление объектов, очистка листов от диаграмм или прочих добавленных объектов
- Методы очистки ячеек
- Примеры использования
Кроме того, что в ячейках может содержаться информация, к ним также могут быть применены специальные форматы, различные рамки, заливки, примечания, могут быть изменены шрифты, их цвета и размеры. Как очистить ячейки от всего этого, оставив информацию в ячейках нетронутой?
Ранее рассматривались вопросы о том, как полностью удалить ячейки вместе со всей информацией, содержащейся в них и о том, как удалить значения из ячеек с определенными параметрами. В этой статье решим задачу очистки ячеек как от значений, так и от специальных форматов, шрифтов, заливок, рамок, примечаний, гиперссылок и объединения ячеек.
Как очистить ячейки стандартными средствами Excel?
Для очистки ячеек от информации в Excel предусмотрено несколько режимов. Для того, чтобы их увидеть, выделяем диапазон, который будет подвергнут очистке и на вкладке «Главная» в группе кнопок «Редактирование» заходим в меню кнопки «Очистить».
Рассмотрим пункты меню кнопки «Очистить» более детально.
Как очистить все в выделенном диапазоне ячеек?
При выборе первого пункта «Очистить все», из ячеек выделенного диапазона будет удалена абсолютно вся информация.
Как очистить только форматы в выбранном диапазоне ячеек?
При выборе второго пункта «Очистить форматы» из выделенного даипазона будет удалена информация, связанная с форматом, то есть информация о шрифтах, их размерах, цветах, способах начертания и так далее, а точнее говоря, все эти параметры будут приведены к параметрам, используемым по умолчанию.
Как очистить ячейки от содержимого?
При выборе третьего пункта «Очистить содержимое» из выделенного диапазона будет удалена только та часть информации, которую вы можете видеть в строке формул, то есть удалены будут только значения ячеек.
Как очистить ячейки от примечаний?
Выбрав пункт четвертый «Очистить примечания», из выделенного диапазона будут удалены только примечания, вся остальная информация сохранится.
Как очистить ячейки средствами VBA?
Для более гибкой очистки ячеек создана надстройка, позволяющая очистить диапазон по выбранным параметрам. Диалоговое окно этой надстройки можно увидеть на скриншоте ниже. С ее помощью пользователи могут выбрать диапазон для очистки, а также выбрать параметр, либо сочетание параметров, от которых будет очищен выбранный диапазон.
Использование надстройки позволяет:
1. Одним кликом мыши вызывать диалоговое окно макроса прямо из панели инструментов Excel;
2. на выбор пользователя удалять значения ячеек, примечания, гиперссылки, форматы, шрифты, заливки, рамки и объединения ячеек;
3. выбирать по своему усмотрению один из четырех режимов обработки данных (смотри скриншот).
Отличия от стандартной очистки состоят в том, что дополнительно можно производить очистку ячеек от гиперссылок и от объединения ячеек, кроме того, предусмотрена более тонкая очистка по параметрам, связанным с форматированием ячеек. Еще одним отличием является возможность очищать ячейки на всех листах.
Надстройка легко устанавливается и запускается одним нажатием кнопки, выведенной прямо в главное меню Excel.
Excel работает за вас
Excel works!
Thanks for Visiting
Как правильно и быстро очистить ячейки в Excel?
Столкнувшись снова, с тем что люди тратят много времени на очистку ячеек, поймал себя на мысли, что действий по очистке данных, ячеек, таблиц довольно много. Как очистить все данные на листе? Как удалить только форматы? Как убрать формулы? Или может быть вам нужно очистить данные по условию? Действительно, действий много. Наверное стоит подробно описать большинство способов. Как правильно и быстро очистить ячейки в Excel?
На самом деле, я бы разделил вопрос статьи на 3 части
- Как очистить форматы ячеек?
- Как очистить данные в ячейках Excel?
- Очистка/удаление прочих объектов, таких как диаграммы, автофигуры или сводные таблицы
Как быстро очистить ячейки в Excel от форматов?
Вам прислали файл сильно разукрашенный по цветам и его нужно очистить от форматов? Сделать это очень просто, выделяете нужный вам диапазон данных или весь лист сразу (нажав на уголок в левом верхнем углу таблиц).
Теперь ищите на ленте задач на вкладке Главная раздел Редактирование — в нем жмите кнопку Очистить
На выбор у вас будет несколько пунктов. Вы сможете
- Очистить все — т.е. удалить все данные на листе и форматы в том числе
- Очистить форматы — это как раз, то что нужно для примера
- Очистить содержимое — очищаем данные в ячейках, не трогая форматы
- Очистить примечания — удобная функция, если кто-то сильно зарецензировал ваш лист и оставил много примечаний. Появилась относительно недавно.
- Очистить гиперссылки — совсем новая возможность, появившаяся в 2016 версии. Позволяет очистить все ссылки на листе. Очень удобно если вы скопировали данные из интернета, например с Википедии, почти всегда копируется множество гиперссылок.
Если вы уже нажали пункт 2, то все ваши форматы очистились.
Но часто к форматам причисляют и условное форматирование . Мы знаем, что такое форматирование очень сильно грузит действия на листе, поэтому я не советую делать слишком много условий при помощи этой функции. Но если вы получили переформатированную книгу (как правило за счет копирования данных с условным форматированием много раз), то нужно знать как его удалить.
Опять выделяете нужную область или лист. Идете Главная — раздел Стили — Условное форматирование — Удалить правила и например Удалить правила со всего листа.
Все, условные форматирования тоже удалились!
Как очистить данные в ячейках Excel? Очистка данных по условиям
Как вы знаете удалить данные/информацию в ячейках Excel можно:
- нажатием кнопки Delete на клавиатуре, после выделения нужной области
- нажатием кнопки Удалить содержимое Главная — раздел Редактирование — в нем жмите кнопку Очистить содержимое (см. описание выше)
- можно удалить не только данные, но и сами ячейки. Выделив к примеру строку, кликнуть правой кнопкой мыши и нажав кнопку Удалить (она же Ctrl + кнопка минус )
Помимо этого можно удалить данные и по нужным условиям.
Самое простое решение — сперва отобрать данные для удаления автофильтром . После чего вы можете удалить в выбранных ячейках все что вам нужно — формат, данные или даже сами ячейки ( Ctrl + кнопка минус )
Если вам необходимо убрать формулы в имеющихся вычислениях, то воспользуйтесь специальной вставкой и скопируйте только значения ячеек туда же.
Удаление объектов, очистка листов от диаграмм или прочих добавленных объектов
Чтобы удалить диаграмму, или автофигуры, нужно сперва ее выбрать, а затем удалить кнопкой Delete или через правую кнопку мыши — Удалить (см. выше). Но как быть, если вам необходимо удалить сразу несколько объектов — зажмите Ctrl и выберите нужные объекты. Если объектов очень много, то придется воспользоваться макросом, например, предложенном в пункте 4, этой статьи .
Так же объекты можно удалить если вы перейдете в меню Главная — раздел Редактирование — Найти и выделить — пункт Выделение группы ячеек — Объекты. Так можно очистить ячейки в Excel от объектов.
Напомню, что объекты могут значительно замедлять работу файла. Особенно если данные копировались из внешнего источника.
Если же вам необходим специальный макрос для удаления специфических объектов, то пишите в комментариях или мне на почту!
Метод Range.Clear для полной очистки диапазона из кода VBA Excel. Методы очистки отдельных свойств и их групп в ячейках. Примеры использования.
Методы очистки ячеек
Метод | Очищаемые свойства | Примечание |
Range.Clear | Почти все свойства | Ширина и высота ячеек не изменяются |
Range.ClearComments | Комментарии | Для Excel в составе Office 365 |
Range.ClearContents | Формулы и значения | Исходное форматирование сохраняется |
Range.ClearFormats | Свойства, задающие форматы | В том числе отмена объединения ячеек |
Range.ClearHyperlinks | Гиперссылки | Текст и форматирование сохраняются |
Range.ClearNotes | Примечания и заметки | Примечания – для локальных программ Excel, заметки – для Excel в составе Office 365 |
Range.ClearOutline | Структура данных | Смотрите, что такое — структурирование данных |
Range – выражение, возвращающее диапазон ячеек.
Примеры использования
1. Удаление гиперссылки из ячейки A1
Cells(1, 1).ClearHyperlinks
2. Очистка диапазона A1:L50 от формул и значений
Range(«A1:L50»).ClearContents
3. Очистка всех свойств ячеек в столбцах A:K
Columns(«A:K»).Clear
4. Очистка форматирования ячеек в строках 1:20
Rows(«1:20»).ClearFormats
Методы очистки диапазонов ячеек в VBA Excel возвращают очищаемые свойства ячеек к значениям по умолчанию. К таким, как на вновь созданном стандартном рабочем листе. При любых методах очистки высота строк и ширина столбцов не изменяются.
17 авг. 2022 г.
читать 2 мин
Вы можете использовать следующие основные формулы для удаления определенного текста из ячеек в Excel:
Способ 1: удалить один конкретный текст
=SUBSTITUTE( A1 ,"text1","")
Эта конкретная формула удаляет «text1» из ячейки A1 .
Способ 2: удалить несколько определенных текстов
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( A1 ,"text1",""),"text2",""),"text3","")
Эта конкретная формула удаляет «текст1», «текст2» и «текст3» из ячейки A1 .
В следующих примерах показано, как использовать каждый метод на практике.
Пример 1: удалить один конкретный текст
Предположим, у нас есть следующий столбец в Excel, в котором показаны позиции 15 разных баскетболистов:
Мы можем использовать следующую формулу, чтобы удалить «r» из каждого имени позиции:
=SUBSTITUTE( A2 ,"r","")
Мы можем ввести эту формулу в ячейку B2 , а затем скопировать и вставить ее в каждую оставшуюся ячейку в столбце B:
Обратите внимание, что буква «r» была удалена из всех названий позиций.
Пример 2. Удаление нескольких определенных текстов
Предположим, у нас есть следующий столбец в Excel, который показывает имя пользователя для 10 разных людей на каком-то веб-сайте:
Предположим, мы хотим удалить следующий конкретный текст из каждого имени пользователя:
- тире ( — )
- восклицательные знаки ( ! )
- число 5 ( 5 )
Для этого мы можем использовать следующую формулу:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( A2 ,"-",""),"!",""),"5","")
Мы можем ввести эту формулу в ячейку B2 , а затем скопировать и вставить ее в каждую оставшуюся ячейку в столбце B:
Обратите внимание, что все «-», «!» и «5» были удалены из каждого имени пользователя.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в Excel:
Excel: как проверить, содержит ли ячейка частичный текст
Excel: как проверить, содержит ли ячейка текст из списка
Excel: как рассчитать среднее значение, если ячейка содержит текст
Excel: как подсчитать частоту текста
Skip to content
В этом руководстве вы узнаете, как правильно и безопасно удалять пустые ячейки в таблицах Excel, чтобы они выглядели четкими и профессиональными.
Пустые ячейки – это неплохо, если вы намеренно оставляете их в нужных местах по эстетическим соображениям. Но в неправильных местах, они, безусловно, нежелательны. К счастью, есть относительно простой способ удалить пустоты в таблицах Excel, и сейчас вы узнаете все подробности этого метода.
- Самый простой способ — используем стандартные инструменты.
- Когда не следует удалять пустые ячейки?
- 5 способов избавиться от пустых ячеек при помощи формул.
- Как удалить пустые ячейки ниже и правее таблицы с данными?
Удалить пустые ячейки в Excel очень просто. Однако этот подход применим не во всех ситуациях. О возможных неприятных неожиданностях мы расскажем в этой статье. Чтобы обезопасить себя, обязательно сделайте резервную копию своего рабочего листа и прочтите эти предостережения, прежде чем действовать.
Удаляем пустые ячейки стандартными инструментами Excel.
Ну а теперь, когда вы предупреждены о возможных неприятных последствиях:
- Выберите диапазон, в котором вы хотите убрать пустоты. Чтобы быстро выбрать всю таблицу с данными, щелкните верхнюю левую позицию и затем нажмите
Ctrl + Shift + End
. Это сразу расширит выделение до последней использованной клетки. - Нажмите F5 и щелкните Выделить… . Или перейдите на вкладку «Главная» и нажмите Найти…> Выделить группу ячеек.
- В диалоговом окне выберите «Пустые ячейки» и нажмите ОК. Это выделит все незаполненные позиции в вашем диапазоне.
- Щелкните правой кнопкой мыши на выделенном и выберите Удалить… из контекстного меню:
- В зависимости от макета ваших данных выберите сдвиг влево или вверх и нажмите кнопку «ОК». В этом примере мы используем второй вариант.
Вот и все. Вы успешно удалили пустоты в своей таблице:
Примечание. Если что-то пошло не так, не паникуйте и сразу нажмите Ctrl + Z
, чтобы вернуть свои данные в исходное состояние.
Думаю, вы понимаете, что такой метод подходит для перечней данных, в которых нет формул. Ведь ссылки в формулах в результате таких действий скорее всего поломаются, и вы получите искаженные данные либо вовсе ошибки.
Когда не следует удалять пустые ячейки.
Техника, описанная выше, отлично подходит для одного столбца или строки. Он также может успешно удалять пустые клетки в диапазоне независимых строк или столбцов, как в приведенном выше примере. Однако это может нанести ущерб данным, которые связаны друг с другом при помощи формул. Чтобы этого не произошло, будьте очень осторожны при удалении пробелов в рабочих листах и помните о следующих предостережениях:
- Удаляйте пустые строки и столбцы вместо отдельных ячеек.
Если ваши данные организованы в виде таблицы, в которой элементы содержат связанную информацию, удаление отдельных пустых ячеек с большой вероятностью приведет к искажению данных. В этом случае следует удалять только незадействованные строки и столбцы целиком. Рекомендуем ознакомится с рекомендациями, как можно и как нельзя удалять пустые строки в Excel.
- Удаление не работает для таблиц Excel.
Невозможно удалить отдельные ячейки в таблице Excel (но не в диапазоне данных). Вам разрешено удалять только целые строки таблицы. Или вы можете сначала преобразовать таблицу в диапазон, а затем заняться удалением.
- Вашими действиями могут быть повреждены формулы и именованные диапазоны.
Формулы Excel могут адаптироваться ко многим изменениям, внесенным в данные, которые они используют. Многим, но не всем. В некоторых случаях формулы, ссылающиеся на удалённые вами ячейки, перестают работать. Поэтому после удаления незаполненных ячеек взгляните внимательно на соответствующие формулы и именованные диапазоны, чтобы убедиться, что они работают нормально.
Как извлечь список данных без пустот.
Этот метод удобен, когда вы создаете собственный список или раскрывающийся список проверки данных и хотите убедиться, что в нем нет пустот.
Итак, наш список находится в диапазоне A2:A12. Причем, в A4 записано пустое значение «». Рассмотрим 5 методов, при помощи которых мы попытаемся избавиться от пустых ячеек и сформировать в нужном нам месте новый список без пробелов.
Способ 1.
Введите приведенную ниже формулу массива в C2, нажмите Ctrl + Shift + Enter
, чтобы заполнить ее правильно, а затем скопируйте формулу в еще несколько ячеек вниз по столбцу. Количество ячеек, в которые вы копируете формулу, должно быть не меньше, чем количество элементов в вашем исходном списке.
Формулы для извлечения заполненных позиций:
=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$12; НАИМЕНЬШИЙ(ЕСЛИ(НЕ(ЕПУСТО($A$2:$A$12)); СТРОКА($A$1:$A$11);»»); СТРОКА(A1)));»»)
Обратите внимание, что диапазон в функции СТРОКА($A$1:$A$11) должен всегда начинаться с $A$1. И включать в себя он должен столько же позиций, сколько их в нашей области поиска. Иначе говоря, если в $A$2:$A$12 — 11 позиций, значит столько же их нужно указать и в $A$1:$A$11.
На скриншоте ниже показан результат:
Сразу отметим, что пустые значения «» здесь не исключаются из списка.
Сложную, на первый взгляд, логику формулы легко понять при ближайшем ее рассмотрении.
Итак, наша задача: вернуть первое значение, которое встретится в диапазоне A2:A12. В случае ошибки возвращаем пустоту («»).
Для вдумчивых пользователей Excel, которым интересно разбираться в деталях каждой новой формулы, вот пошаговое описание:
У вас есть функция ИНДЕКС, возвращающая значение из $A$2:$A$12 на основе порядкового номера строки (не реального номера, а относительного номера в этом диапазоне). При этом нам нужно учесть еще 2 вещи:
- Убедиться, что A2 не пустая
- Вернуть второе непустое значение в C3, третье непустое значение в C4 и так далее.
Обе эти задачи выполняются функцией НАИМЕНЬШИЙ:
НАИМЕНЬШИЙ(ЕСЛИ(НЕ(ЕПУСТО($A$2:$A$12)); СТРОКА($A$1:$A$11);»»); СТРОКА(A1)))
В нашем случае аргумент массива генерируется динамически следующим образом:
- НЕ(ЕПУСТО($A$2:$A$12)) определяет, какие позиции в целевом диапазоне заполнены, и для них возвращается ИСТИНА, в противном случае — ЛОЖЬ. Результирующий массив ИСТИНА и ЛОЖЬ проходит логическую проверку функции ЕСЛИ.
- ЕСЛИ оценивает каждый элемент массива ИСТИНА / ЛОЖЬ и возвращает соответствующий номер позиции для ИСТИНА, и ничего — для ЛОЖЬ:
В результате мы получаем массив {1; 2; «»; 4; «»; “”; 7; 8; «»; 10; 11} и наша сложная функция преобразуется:
НАИМЕНЬШИЙ({1; 2; «»; 4; «»; “”; 7; 8; «»; 10; 11}; СТРОКА(A1))
Как видите, аргумент массива содержит только номера непустых ячеек (заметьте, это относительные положения элементов в массиве, т.е. A2 – имеет порядковый номер 1, A3 — это 2 и так далее).
Во втором аргументе мы имеем СТРОКА(A1), что указывает функции НАИМЕНЬШИЙ вернуть самое маленькое число. Из-за использования относительной ссылки номер увеличивается с шагом 1 при копировании формулы вниз. Итак, в C3 формула вернет номер второй по величине минимальный номер заполненной позиции в диапазоне (то есть, 2) и так далее.
Однако на самом деле нам не нужны номера позиций, а нужны их значения. Итак, мы вкладываем функцию НАИМЕНЬШИЙ в аргумент функции ИНДЕКС, заставляя возвращать значение из соответствующей позиции в диапазоне.
В качестве последнего штриха мы заключаем всю конструкцию в функцию ЕСЛИОШИБКА, чтобы заменить ошибки пустотами. Ошибки будут неизбежны, потому что вы не можете заранее знать, сколько непустых ячеек находится в целевом диапазоне, и копируете формулу вниз по столбцу в заведомо большее количество ячеек, чем это необходимо.
Способ 2.
Если нужно избавиться и от пустых ячеек, и от пустых значений, то можно использовать приведённую ниже формулу массива.
=ЕСЛИ(СТРОКА() -СТРОКА($C$2:$C$12)+1>ЧСТРОК($A$2:$A$12) -СЧИТАТЬПУСТОТЫ($A$2:$A$12);»»;ДВССЫЛ(АДРЕС(НАИМЕНЬШИЙ((ЕСЛИ($A$2:$A$12<>»»;СТРОКА($A$2:$A$12);СТРОКА()+ЧСТРОК($A$2:$A$12)+1));СТРОКА() -СТРОКА($C$2:$C$12)+1);СТОЛБЕЦ($A$2:$A$12);4)))
Как и в предыдущем случае, вы вводите выражение в первую позицию вашей области с результатами, а затем копируете вниз по столбцу, насколько это необходимо.
Естественно, не забываем ввод заканчивать комбинацией Ctrl + Shift + Enter
.
Недостатком здесь является то, что нужно точно указывать размеры исходного и результирующего диапазонов. Причем, с абсолютными ссылками.
Способ 3.
Это тоже формула массива. Но, в отличие от предыдущих двух, ее нужно вводить сразу в диапазон. Если основываться на наших условных данных, то выделяем при помощи мыши диапазон C2:C12, а затем в строку формул записываем следующее выражение:
=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$12;НАИМЕНЬШИЙ(ЕСЛИ($D$1<>$A$2:$A$12;СТРОКА(ДВССЫЛ(«1:»&ЧСТРОК($A$2:$A$12)));»»);СТРОКА(ДВССЫЛ(«1:»&ЧСТРОК($A$2:$A$12)))));»»)
Естественно, заканчиваем всё нажатием Ctrl + Shift + Enter
.
Еще одной особенностью этого метода является то, что мы сравниваем каждую позицию с эталоном — с совершенно пустой ячейкой. В нашей формуле это D1.
Сравниваем значение D1 с каждым элементом исходного диапазона $A$2:$A$12.
СТРОКА(ДВССЫЛ(«1:»&ЧСТРОК($A$2:$A$12))))) — счетчик массива от первого до его последнего элемента.
При помощи функции ИНДЕКС выводим только непустые элементы.
При сравнении ячейки с нулями и нулевой длиной приравниваются к пустым.
НАИМЕНЬШИЙ позволяет выводить значения по порядку — с 1 до конца массива.
Способ 4.
Несомненным достоинством трёх описанных выше формул является то, то не нужно вносить никаких дополнительных изменений в данные, делать какие-то промежуточные расчеты.
Однако, формулы массива с большими объемами данных работают довольно медленно. А на особо больших массивах в несколько тысяч строк Эксель и вовсе может «зависнуть». Поэтому в таких случаях проще и быстрее будет создать на листе дополнительный столбец для промежуточных вычислений. Зато быстродействие вырастет многократно.
Создаем дополнительный столбец А. В нем будем нумеровать непустые ячейки.
Для этого проверяем выполнение 2 условий:
- ячейка в столбце В непустая,
- она не равна 0.
=ЕСЛИ((B3<>»»)+(B3<>0)=2;СЧЁТ(A$2:A2)+1;»»)
Если условия выполнены, считаем количество чисел, находящихся в этом столбце выше текущей позиции, и увеличиваем результат на 1 (своего рода счётчик). То есть, записываем, какая по счету непустая позиция найдена. Если же клетка в столбце В пустая, то ставим «».
Копируем эту формулу вниз по столбцу. Получаем последовательную нумерацию непустых ячеек.
Переходим ко второму шагу. Функция ВПР (VLOOKUP) последовательно ищет значения начиная с 1 в столбце А и выводит соответствующие им значения из В.
=ЕСЛИОШИБКА(ВПР(СТРОКА(A1);A$3:B$16;2;0);»»)
Для получения последовательности чисел используем СТРОКА().
Копируем формулу вниз, получаем список без пустот. Работает такая конструкция быстро, независимо от количества данных. Да и сами формулы просты и вполне доступны для понимания, в отличие от формул массива. Так что можете взять на вооружение и этот способ.
Способ 5.
Предвидя то, что многим может не понравиться торчащий на самом виду вспомогательный столбец А с цифрами, предлагаю еще один метод избавления от пустых ячеек. Здесь мы используем так называемый «левый ВПР». Поэтому вспомогательный столбец можно размещать в любом месте, где он не будет мешать. Чтобы не портить внешний вид вашей таблицы, можно использовать любой другой столбец, находящийся правее (например — Z). Мы же используем B для наглядности результатов.
В позиции B2 записываем вспомогательную формулу
=ЕСЛИ(A2<>$D$1;1;»»)
D1 будет служить нам эталоном как абсолютно пустая. Последовательно сравниваем столбец А с ней. При этом игнорируются нули, а также содержимое нулевой длины «».
В С2 записываем:
=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$21;ПОИСКПОЗ(СТРОКА(1:1);$B$2:$B$21;0);1);»»)
При помощи ПОИСКПОЗ ищем в столбце B порядковые номера от 1 и далее, и функцией ИНДЕКС выводим соответствующее значение из столбца A. В результате в столбце С мы избавились от пустых ячеек в списке. При этом исходные данные мы не меняли, чем гарантировали себя от возможных ошибок.
Как удалить пустые ячейки после последней позиции с данными.
Пустые ячейки, содержащие форматирование или непечатаемые символы, могут вызвать множество проблем в Excel. Например, вы можете получить гораздо больший размер файла, чем необходимо, или напечатать несколько чистых страниц. Чтобы избежать этих проблем, мы удалим (или очистим) пустые строки и столбцы, содержащие форматирование, пробелы или неизвестные невидимые символы.
Как найти последнюю использованную ячейку на листе
Чтобы перейти к последней ячейке на листе, содержащей данные или форматирование, щелкните в любом месте вашей таблицы и нажмите Ctrl + End
.
Если в результате этого действия выбрана последняя ячейка с вашими данными, это означает, что оставшиеся строки и столбцы действительно не используются и никаких дополнительных манипуляций не требуется.
Но если вы оказались в визуально пустой клетке, знайте, что Excel не считает её таковой. Это может быть простой пробел, созданный случайным нажатием клавиши, пользовательский формат чисел, установленный для неё, или непечатаемый символ, импортированный из внешней базы данных. Какой бы ни была причина, она не пуста.
Как удалить ячейки после последней позиции с данными.
Чтобы очистить все содержимое и форматирование после последней заполненной ячейки, выполните следующие действия:
- Щелкните заголовок первого незаполненного столбца справа от вашей таблицы и нажмите
Ctrl + Shift + End
. Это позволит выбрать диапазон справа между вашими данными и последней использованной позицией на листе. - На вкладке «Главная» нажмите «Очистить». Или щелкните на выделении правой кнопкой мыши и выберите Удалить.
- Щелкните заголовок первой чистой строчки под данными и нажмите
Ctrl + Shift + End
. - Выполните те же действия, которые выполнялись в п.2.
- Нажмите
Ctrl + S
, чтобы сохранить книгу.
Проверьте используемый диапазон, чтобы убедиться, что он теперь содержит только ячейки с данными и без пробелов. Когда вы снова откроете файл, последняя использованная ячейка должна быть последней заполненной.
Если у вас есть небольшая рабочая область на листе и много ненужных чистых строк и столбцов, вы можете скрыть неиспользуемые строки следующим образом:
- Выберите строчку под последней позицией с данными (чтобы выделить её целиком, щелкните заголовок).
- Нажмите
Ctrl + Shift + ↓
(стрелка вниз), чтобы расширить выделение до нижней части листа. - Нажмите
Ctrl + 9
, чтобы скрыть выбранные строки.
Думаю, это лучше, чем удалять ненужные строки, поскольку их в любой момент можно вернуть обратно.
Подобным же образом вы скрываете неиспользуемые столбцы:
- Выберите чистый столбец после последнего столбца с данными.
- Нажмите
Ctrl + Shift + →
(стрелка вправо), чтобы выделить все остальные неиспользуемые столбцы до конца листа. - Нажмите
Ctrl + 0
, чтобы скрыть выбранные колонки. Готово!
Если позже вы решите отобразить все ячейки, выберите весь лист (можно при помощи Ctrl + A
), затем нажмите Ctrl + Shift + 9
, чтобы показать все строки, и Ctrl + Shift + 0
, чтобы показать все столбцы.
Вот как вы можете избавиться от пустых ячеек в Excel. Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!
Удаление пустых ячеек из диапазона
Постановка задачи
Имеем диапазон ячеек с данными, в котором есть пустые ячейки:
Задача — удалить пустые ячейки, оставив только ячейки с информацией.
Способ 1. Грубо и быстро
- Выделяем исходный диапазон
- Жмем клавишу F5, далее кнопка Выделить (Special). В открывшмся окне выбираем Пустые ячейки (Blanks) и жмем ОК.
Выделяются все пустые ячейки в диапазоне.
- Даем в меню команду на удаление выделенных ячеек: правой кнопкой мыши — Удалить ячейки (Delete Cells) со сдвигом вверх.
Способ 2. Формула массива
Для упрощения дадим нашим рабочим диапазонам имена, используя Диспетчер Имен (Name Manager) на вкладке Формулы (Formulas) или — в Excel 2003 и старше — меню Вставка — Имя — Присвоить (Insert — Name — Define)
Диапазону B3:B10 даем имя ЕстьПустые, диапазону D3:D10 — НетПустых. Диапазоны должны быть строго одного размера, а расположены могут быть где угодно относительно друг друга.
Теперь выделим первую ячейку второго диапазона (D3) и введем в нее такую страшноватую формулу:
=ЕСЛИ(СТРОКА()-СТРОКА(НетПустых)+1>ЧСТРОК(ЕстьПустые)-СЧИТАТЬПУСТОТЫ(ЕстьПустые);»»;ДВССЫЛ(АДРЕС(НАИМЕНЬШИЙ((ЕСЛИ(ЕстьПустые<>»»;СТРОКА(ЕстьПустые);СТРОКА()+ЧСТРОК(ЕстьПустые)));СТРОКА()-СТРОКА(НетПустых)+1);СТОЛБЕЦ(ЕстьПустые);4)))
В английской версии это будет:
=IF(ROW()-ROW(НетПустых)+1>ROWS(ЕстьПустые)-COUNTBLANK(ЕстьПустые),»»,INDIRECT(ADDRESS(SMALL((IF(ЕстьПустые<>»»,ROW(ЕстьПустые),ROW()+ROWS(ЕстьПустые))),ROW()-ROW(НетПустых)+1),COLUMN(ЕстьПустые),4)))
Причем ввести ее надо как формулу массива, т.е. после вставки нажать не Enter (как обычно), а Ctrl+Shift+Enter. Теперь формулу можно скопировать вниз, используя автозаполнение (потянуть за черный крестик в правом нижнем углу ячейки) — и мы получим исходный диапазон, но без пустых ячеек:
Способ 3. Пользовательская функция на VBA
Если есть подозрение, что вам часто придется повторять процедуру удаления пустых ячеек из диапазонов, то лучше один раз добавить в стандартный набор свою функцию для удаления пустых ячеек, и пользоваться ей во всех последующих случаях.
Для этого откройте редактор Visual Basic (ALT+F11), вставьте новый пустой модуль (меню Insert — Module) и скопируйте туда текст этой функции:
Function NoBlanks(DataRange As Range) As Variant() Dim N As Long Dim N2 As Long Dim Rng As Range Dim MaxCells As Long Dim Result() As Variant Dim R As Long Dim C As Long MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) ReDim Result(1 To MaxCells, 1 To 1) For Each Rng In DataRange.Cells If Rng.Value <> vbNullString Then N = N + 1 Result(N, 1) = Rng.Value End If Next Rng For N2 = N + 1 To MaxCells Result(N2, 1) = vbNullString Next N2 If Application.Caller.Rows.Count = 1 Then NoBlanks = Application.Transpose(Result) Else NoBlanks = Result End If End Function
Не забудьте сохранить файл и вернитесь из редактора Visual Basic в Excel. Чтобы использовать эту функцию в нашем примере:
- Выделите достаточный диапазон пустых ячеек, например F3:F10.
- Идем в меню Вставка — Функция (Insert — Function) или жмем на кнопку Вставить функцию (Insert Function) на вкладке Формулы (Formulas) в новых версиях Excel. В категории Определенные пользователем (User Defined) выберите нашу функцию NoBlanks.
- В качестве аргумента функции укажите исходный диапазон с пустотами (B3:B10) и нажмите Ctrl+Shift+Enter, чтобы ввести функцию как формулу массива.
Ссылки по теме:
- Удаление сразу всех пустых строк в таблице простым макросом
- Удаление сразу всех пустых строк на листе с помощью надстройки PLEX
- Быстрое заполнение всех пустых ячеек
- Что такое макросы, куда вставлять код макросов на VBA