Как пропустить пустые ячейки в excel
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Excel: Удаление пустых ячеек из диапазона
Часто при работе с большими таблицами данных необходимо удалить пустые ячейки, оставив только ячейки с информацией.
Имеем диапазон ячеек с данными, в котором есть пустые ячейки.

Задача — удалить пустые ячейки.
1.Выделяем исходный диапазон

2. Для Excel 2003
Выбираем в меню команду Правка – Перейти — далее кнопку Выделить


Для Excel 2007 и выше
Выбираем на вкладке Главная команду Найти и выделить и далее Выделение группы ячеек


3. В открывшемся окне Выделение группы ячеек выбираем Пустые ячейки и нажимаем ОК.

В результате будут выделены все пустые ячейки в диапазоне.

4. Удаляем выделенные ячейки (Правка — Удалить ячейки) со сдвигом вверх


В итоге, в диапазоне остались только ячейки, содержащие информацию.
Как игнорировать пустые ячейки при использовании формул в Excel

Вы можете использовать следующие формулы в Excel, чтобы игнорировать пустые ячейки при выполнении вычислений:
Формула 1: игнорировать пустые ячейки в одном столбце
=IF( A2 <>"", A2 +10, "")
Эта конкретная формула добавляет 10 к значению в ячейке A2 , только если значение в ячейке A2 не является пустым.
Формула 2: игнорировать пустые ячейки в нескольких столбцах
=IF(AND( A2 <>"", B2 <>""), A2 + B2 , "")
Эта конкретная формула добавляет значения в ячейки A2 и B2 , только если обе ячейки не пусты.
В следующих примерах показано, как использовать каждую формулу на практике.
Пример 1: игнорировать пустые ячейки в одном столбце
Предположим, у нас есть следующие данные в Excel, которые показывают очки, набранные различными баскетболистами:

Теперь предположим, что мы используем следующую формулу, чтобы добавить 10 к каждому из значений в столбце A:
= A2 +10
На следующем снимке экрана показано, как использовать эту формулу:

Обратите внимание, что 10 добавляется к каждой ячейке в столбце А, даже если ячейка в столбце А пуста.
Вместо этого мы можем использовать следующую формулу, чтобы добавить 10 к каждой из ячеек в столбце A и полностью игнорировать пустые ячейки:
=IF( A2 <>"", A2 +10, "")
На следующем снимке экрана показано, как использовать эту формулу:

Обратите внимание, что 10 добавляется только к каждой ячейке в столбце A, которая не пуста.
Пример 2. Игнорирование пустых ячеек в нескольких столбцах
Предположим, у нас есть следующие данные в Excel, которые показывают набранные очки и подборы, собранные различными баскетболистами:

Мы можем использовать следующую формулу, чтобы сложить значения в столбцах очков и подборов только для строк, где оба значения не пусты:
=IF(AND( A2 <>"", B2 <>""), A2 + B2 , "")
На следующем снимке экрана показано, как использовать эту формулу:

Обратите внимание, что значения очков и подборов добавляются только для тех строк, где оба значения не являются пустыми.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в Excel:
Удаление пустых ячеек из диапазона
Имеем диапазон ячеек с данными, в котором есть пустые ячейки: Задача — удалить пустые ячейки, оставив только ячейки с информацией.
Способ 1. Грубо и быстро
- Выделяем исходный диапазон
- Жмем клавишу F5, далее кнопка Выделить(Special) . В открывшмся окне выбираем Пустые ячейки(Blanks) и жмем ОК.

Способ 2. Формула массива
Для упрощения дадим нашим рабочим диапазонам имена, используя Диспетчер Имен (Name Manager) на вкладке Формулы (Formulas) или — в Excel 2003 и старше — меню Вставка — Имя — Присвоить (Insert — Name — Define)
Диапазону B3:B10 даем имя ЕстьПустые, диапазону D3:D10 — НетПустых. Диапазоны должны быть строго одного размера, а расположены могут быть где угодно относительно друг друга.
Теперь выделим первую ячейку второго диапазона (D3) и введем в нее такую страшноватую формулу:
В английской версии это будет:
=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