Заполнить пустые ячейки в excel vba
Наличие в таблицах ячеек с отсутствующими значения приводит к некорректной сортировке и фильтрации, а также к проблемам при создании сводных таблиц. Для устранения таких проблем необходимо заполнить пустые ячейки значениями, создав непрерывный список. Чаще всего требуется заполнение ячеек, в которых отсутствуют значения, нулями или значениями верхних, нижних, левых или правых ближайших заполненных ячеек.
Заполнение ячеек с отсутствующими значениями стандартными средствами Excel
Заполнение пустых ячеек нулями (Поиск и замена)
1. Выделение пустых ячеек в нужном диапазоне: Вкладка «Главная», группа кнопок «Редактирование», меню кнопки «Найти и выделить», пункт меню «Выделить группу ячеек». В диалоговом окне «Выделить группу ячеек» выбирается опция «Пустые ячейки»;
2. Когда пустые ячейки выделены, вызывается диалоговое окно «Найти и заменить» либо через меню этой же кнопки «Найти и выделить», либо сочетанием горячих клавиш Ctrl+F и перейти на вкладку «Заменить».
3. Поле «Найти» остается пустым, в поле «Заменить на» вписывается нуль, либо другое необходимое значение. После этого нажимается кнопка «Заменить все».
Заполнение пустых ячеек нулями (Ctrl+Enter)
1. По аналогии с предыдущим пунктом предварительно выделяются пустые ячейки в нужном диапазоне;
2. Курсор помещается в строку формул и вписывается необходимое значение, например, нуль;
3. Зажимается клавиша Ctrl на клавиатуре, после чего нажимается клавиша Enter.
В результате все выделенные пустые ячейки заполняются значением, введенным в строку формул.
Заполнение пустых ячеек верхними значениями (формула)
1. Пустые ячейки можно заполнить значениями предыдущих ячеек.
2. Выделяются пустые ячейки (также как это описано выше);
3. Курсор помещается в строку формул и ставится знак «равно», после этого указывается адрес вышестоящей ячейки (можно просто кликнуть по нужной ячейке левой кнопкой мыши);
4. Удерживая клавишу Ctrl на клавиатуре нажимается клавиша Enter.
В этом случае пустые ячейки заполняются не значениями, а формулами. Если применить к таким значениям сортировку, добавить новые строки, либо удалить существующие, формулы могут сбиться, поэтому для корректной дальнейшей работы желательно заменить формулы результатами их вычислений. Для этого можно скопировать диапазон заполненных ячеек и вставить только значения.
Быстрое заполнение пустых ячеек верхними значениями при помощи макроса
Надстройка для быстрого заполнения пустых ячеек верхними, нижними, левыми или правыми значениями
Максимально быстро, не делая лишних манипуляций, буквально за пару кликов можно осуществить заполнение пустых ячеек значениями соседних ячеек при помощи надстройки для Excel. Достаточно только вызвать диалоговое окно надстройки, указать диапазон ячеек и выбрать одну из доступных опций: заполнить верхними значениями, заполнить нижними значениями, заполнить левыми значениями, заполнить правыми значениями после чего нажать кнопку «Пуск».
Надстройка позволяет:
1. Выделять необходимый диапазон для заполнения пустых ячеек значениями соседних ячеек;
Как известно, для полноценной работы с данными (фильтрации, сортировки, подведения итогов и т.д.) нужен непрерывный список, т.е. таблица без разрывов (пустых строк и ячеек - по возможности). На практике же часто мы имеем как раз таблицы с пропущенными пустыми ячейками - например после копирования результатов сводных таблиц или выгрузок в Excel из внешних программ. Таким образом, возникает необходимость заполнить пустые ячейки таблицы значениями из верхних ячеек, то бишь.
из | сделать |
В общем случае, может возникнуть необходимость делать такое заполнение не только вниз, но и вверх, вправо и т.д. Давайте рассмотрим несколько способов реализовать такое.
Способ 1. Без макросов
Выделяем диапазон ячеек в первом столбце, который надо заполнить (в нашем примере, это A1:A12).
Нажимаем клавишу F5 и затем кнопку Выделить (Special) и в появившемся окне выбираем Выделить пустые ячейки (Blanks) :
Не снимая выделения, вводим в первую ячейку знак "равно" и щелкаем по предыдущей ячейке или жмём стрелку вверх (т.е. создаем ссылку на предыдущую ячейку, другими словами):
И, наконец, чтобы ввести эту формулу сразу во все выделенные (пустые) ячейки нажимаем Ctrl + Enter вместо обычного Enter . И все! Просто и красиво.
В качестве завершающего мазка я советовал бы заменить все созданные формулы на значения, ибо при сортировке или добавлении/удалении строк корректность формул может быть нарушена. Выделите все ячейки в первом столбце, скопируйте и тут же вставьте обратно с помощью Специальной вставки (Paste Special) в контекстом меню, выбрав параметр Значения (Values) . Так будет совсем хорошо.
Способ 2. Заполнение пустых ячеек макросом
Если подобную операцию вам приходится делать часто, то имеем смысл сделать для неё отдельный макрос, чтобы не повторять всю вышеперечисленную цепочку действий вручную. Для этого жмём Alt + F11 или кнопку Visual Basic на вкладке Разработчик (Developer) , чтобы открыть редактор VBA, затем вставляем туда новый пустой модуль через меню Insert - Module и копируем или вводим туда вот такой короткий код:
Как легко можно сообразить, этот макрос проходит в цикле по всем выделенным ячейкам и, если они не пустые, заполняет их значениями из предыдущей ячейки.
Для удобства, можно назначить этому макросу сочетание клавиш или даже поместить его в Личную Книгу Макросов (Personal Macro Workbook), чтобы этот макрос был доступен при работе в любом вашем файле Excel.
Способ 3. Power Query
Power Query - это очень мощная бесплатная надстройка для Excel от Microsoft, которая может делать с данными почти всё, что угодно - в том числе, легко может решить и нашу задачу по заполнению пустых ячеек в таблице. У этого способа два основных преимущества:
- Если данных много, то ручной способ с формулами или макросы могут заметно тормозить. Power Query сделает всё гораздо шустрее.
- При изменении исходных данных достаточно будет просто обновить запрос Power Query. В случае использования первых двух способов - всё делать заново.
Для загрузки нашего диапазона с данными в Power Query ему нужно либо дать имя (через вкладку Формулы - Диспетчер имен), либо превратить в "умную" таблицу командой Главная - Форматировать как таблицу (Home - Format as Table ) или сочетанием клавиш Ctrl + T :
После этого на вкладке Данные (Data) нажмем на кнопку Из таблицы / диапазона (From Table/Range) . Если у вас Excel 2010-2013 и Power Query установлена как отдельная надстройка, то вкладка будет называться, соответственно, Power Query.
В открывшемся редакторе запросов выделим столбец (или несколько столбцов, удерживая Ctrl ) и на вкладке Преобразование выберем команду Заполнить - Заполнить вниз (Transform - Fill - Fill Down) :
Вот и всё :) Осталось готовую таблицу выгрузить обратно на лист Excel командой Главная - Закрыть и загрузить - Закрыть и загрузить в. (Home - Close&Load - Close&Load to. )
В дальнейшем, при изменении исходной таблицы, можно просто обновлять запрос правой кнопкой мыши или на вкладке Данные - Обновить всё (Data - Refresh All) .
Имеем диапазон ячеек с данными, в котором есть пустые ячейки:
Задача - удалить пустые ячейки, оставив только ячейки с информацией.
Способ 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) и скопируйте туда текст этой функции:
Не забудьте сохранить файл и вернитесь из редактора Visual Basic в Excel. Чтобы использовать эту функцию в нашем примере:
Заполнять пустоты или нет? Этот вопрос часто касается пустых ячеек в таблицах Excel. С одной стороны, ваша таблица выглядит аккуратнее и читабельнее, если вы не загромождаете ее повторяющимися значениями. С другой стороны, пустые ячейки могут вызвать проблемы при сортировке, фильтрации данных или создании сводной таблицы. В этом случае вам желательно заполнить все поля.
Таким образом, мой ответ - «Заполнить». А теперь посмотрим, как это сделать.
Есть разные способы решения этой проблемы. Я покажу вам несколько быстрых и один ОЧЕНЬ быстрый способ заполнить пустые ячейки значениями.
Как выделить пустые ячейки на листах Excel.
Перед тем, как заполнить пустоты в таблице Excel, сначала нужно их выделить. Если у вас большая таблица с десятками незаполненных областей, разбросанными по ней, то потребуется много времени, чтобы сделать это вручную. Вот быстрый приём для выбора пустых ячеек.
- Выберите столбцы или строки, в которых вы хотите заполнить пустоты.
- Нажмите Ctrl + G или же F5 для отображения диалогового окна “Перейти”.
- Щелкните по кнопке «Выделить».
- Выберите «Пустые ячейки».
Совет. Если вы забыли сочетания клавиш, перейдите в группу «Найти и выделить» на вкладке Главная и выберите команду «Выделить группу ячеек» в раскрывающемся меню. Появится то же самое диалоговое окно.
- Далее выберите, что будем выделять. Например, формулы, комментарии, константы, пробелы и т. д.
- Установите переключатель «Пустые ячейки» и нажмите «ОК».
Теперь выделены только пустые ячейки из выбранного диапазона, и вы готовы к следующему шагу.
Формула Excel для заполнения пустых ячеек значениями, стоящими выше / ниже
Выбрав пустые ячейки в таблице, вы можете заполнить их значениями, стоящими сверху или снизу, или же просто вставить какое-то определенное содержимое.
Если вы собираетесь заполнить пробелы значением из ближайшей заполненной ячейки выше или ниже, вам нужно ввести очень простую формулу в одну из пустых ячеек. Затем просто скопируйте ее во все остальные. Вот как это сделать.
- Выделите все незаполненные ячейки, как описано выше.
- Нажмите F2 или просто поместите курсор в строку формул, чтобы начать писать формулу в активной ячейке.
Как видно на скриншоте ниже, активная ячейка – A3, то есть по умолчанию это самая левая верхняя из всех незаполненных.
- Введите знак равенства (=).
- Наведите курсор на ячейку, находящуюся выше или ниже, с помощью клавиши со стрелкой вверх или вниз или просто кликните по ней мышкой.
Формула (=A2) показывает, что A3 получит значение из A2, и будет заполнена предыдущим значением.
- Нажмите Ctrl + Enter , чтобы автоматически вставить формулу сразу во все выделенные позиции.
Ну вот! Теперь каждая выделенная ячейка ссылается на ячейку, находящуюся над ней.
Совет. Вы должны помнить, что все ячейки, которые раньше были пустыми, теперь содержат формулы. И если вы хотите, чтобы ваша таблица была в порядке, лучше эти формулы заменить на значения. В противном случае вы получите беспорядок при сортировке или же добавлении строк или столбцов в таблицу.
Поэтому рекомендую не останавливаться и сразу после ввода формул заменить их на значения. Выполните следующие простые шаги:
- У вас выделены все ячейки с формулами, которые вы только что ввели и хотите преобразовать.
- Нажмите Ctrl + C или же Ctrl + Ins , чтобы копировать формулы и их результаты в буфер обмена.
- Нажмите Shift + F10 а потом V , чтобы вставить обратно в выделенные позиции только значения.
Shift + F10 + V — это самый быстрый способ использовать диалог Excel «Специальная вставка».
Заполните пустые ячейки нулями или другим определенным значением
Что, если вам нужно заполнить все пробелы в таблице нулями, любым другим числом или просто одинаковыми данными? Вот два способа решить эту проблему.
Способ 1.
- Выделите пустые ячейки, как мы уже делали.
- Нажмите F2 для активации режима редактирования в строке формул. Или просто кликните туда мышкой.
- Введите желаемое число или текст.
- Нажмите Ctrl + Enter .
Несколько секунд - и все пустые ячейки одинаково заполнены введенным вами словом, символом либо нулями при необходимости.
Способ 2.
- Выделите диапазон с пустыми ячейками.
- Нажмите Ctrl + H для отображения диалогового окна «Найти и заменить». Или используйте меню.
- В этом окне перейдите на вкладку «Заменить».
- Оставьте поле «Найти» пустым и введите необходимое значение в текстовое поле «Заменить на».
- Щелкните " Заменить все".
Пустые ячейки будут заполнены значением, которое вы указали.
Заполнение пустых ячеек при помощи макроса VBA.
Если подобную операцию вам приходится делать часто, то имеет смысл создать для неё отдельный макрос, чтобы не повторять всю вышеперечисленную цепочку действий вручную. Для этого жмём Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer), чтобы открыть редактор VBA, затем вставляем туда новый пустой модуль через меню Insert – Module. Далее копируем или вводим туда вот такой короткий код:
Sub Fill_Blanks()
For Each cell In Selection
If IsEmpty(cell) Then cell.Value = cell.Offset(-1, 0).Value
Next cell
End Sub
Как легко можно сообразить, этот макрос проходит последовательно по всем выделенным ячейкам и, если они не пустые, то заполняет их значениями из предыдущей ячейки сверху.
Для удобства, можно назначить этому макросу сочетание клавиш или даже поместить его в Личную Книгу Макросов (Personal Macro Workbook), чтобы он был доступен при работе в любом вашем файле Excel.
Какой бы способ вы ни выбрали, заполнение таблицы Excel займет у вас буквально минуту.
Как быстро заполнить пустые ячейки без использования формул.
Вот наши данные о продажах в разрезе менеджеров и регионов. Некоторые из продавцов работали в нескольких регионах, сведения об их продажах записаны друг под другом. Также объединены ячейки месяцев. Таблица выглядит достаточно читаемо. Однако, если нужно будет отфильтровать или просуммировать данные по менеджерам, или же найти сумму продаж по региону за определенный месяц, то сделать это будет весьма затруднительно. Этому будут мешать пустые и объединенные ячейки.
Поэтому постараемся привести таблицу к стандартному виду, заполнив все пустоты и разъединив ранее объединенные области.
Перейдите на ленте на вкладку AblebitsTools.
- Установите курсор в любую ячейку таблицы, в которой вам нужно заполнить пустые ячейки.
- Щелкните значок «Заполнить пустые ячейки (FillBlankCells)».
На экране появится окно надстройки, в котором перечислены все столбцы и указаны параметры заполнения.
- Снимите отметку со столбцов, в которых нет пустых ячеек.
- Выберите действие из раскрывающегося списка в правом нижнем углу окна.
Если вы хотите заполнить пустые поля значением из ячейки, находящейся выше, выберите параметр «Заполнить ячейки вниз (Fill cells downwards)». Если вы хотите скопировать содержимое из ячейки ниже, выберите в этом же выпадающем списке «Заполнить ячейки вверх (Fill cells upwards)». В нашем случае выбираем заполнение вниз.
В отличие от рассмотренных выше способов, здесь пустые ячейки заполнены не одним и тем же значением, а разными, которые гораздо больше подходят для ваших данных. Правильное заполнение этой даже такой небольшой таблицы потребовало бы от вас достаточно существенных затрат времени. А надстройка позволяет это сделать буквально в пару кликов.
Помимо заполнения пустых ячеек, этот инструмент также разделил объединенные ячейки. В таком виде таблица вполне пригодна для фильтрации данных, различных подсчетов, формирования сводной таблицы на ее основе.
Проверьте это! Загрузите полнофункциональную пробную версию надстройки Fill Blank Cells и посмотрите, как она может сэкономить вам много времени и сил.
Теперь вы знаете приемы замены пустых ячеек в таблице разными значениями. Я уверен, что вам не составит труда сделать это при помощи любого из рассмотренных способов.
Проверка данных в Excel: как сделать, использовать и убрать - Мы рассмотрим, как выполнять проверку данных в Excel: создавать правила проверки для чисел, дат или текстовых значений, создавать списки проверки данных, копировать проверку данных в другие ячейки, находить недопустимые записи, исправлять и удалять проверку данных.…
Быстрое удаление пустых столбцов в Excel - В этом руководстве вы узнаете, как можно легко удалить пустые столбцы в Excel с помощью макроса, формулы и даже простым нажатием кнопки. Как бы банально это ни звучало, удаление пустых столбцов в Excel не может…
Как полностью или частично зафиксировать ячейку в формуле - При написании формулы Excel знак $ в ссылке на ячейку сбивает с толку многих пользователей. Но объяснение очень простое: это всего лишь способ ее зафиксировать. Знак доллара в данном случае служит только одной цели - он указывает,…
Чем отличается абсолютная, относительная и смешанная адресация - Важность ссылки на ячейки Excel трудно переоценить. Ссылка включает в себя адрес, из которого вы хотите получить информацию. При этом используются два основных вида адресации – абсолютная и относительная. Они могут применяться в разных комбинациях…
Относительные и абсолютные ссылки – как создать и изменить - В руководстве объясняется, что такое адрес ячейки, как правильно записывать абсолютные и относительные ссылки в Excel, как ссылаться на ячейку на другом листе и многое другое. Ссылка на ячейки Excel, как бы просто она ни…
6 способов быстро транспонировать таблицу - В этой статье показано, как столбец можно превратить в строку в Excel с помощью функции ТРАНСП, специальной вставки, кода VBA или же специального инструмента. Иначе говоря, мы научимся транспонировать таблицу. В этой статье вы найдете…
4 способа быстро убрать перенос строки в ячейках Excel - В этом совете вы найдете 4 совета для удаления символа переноса строки из ячеек Excel. Вы также узнаете, как заменять разрывы строк другими символами. Все решения работают с Excel 2019, 2016, 2013 и более ранними версиями. Перенос…
Как безопасно удалить пустые ячейки в Excel и как не нужно никогда это делать - В этом руководстве вы узнаете, как правильно и безопасно удалять пустые ячейки в таблицах Excel, чтобы они выглядели четкими и профессиональными. Пустые ячейки – это неплохо, если вы намеренно оставляете их в нужных местах по…
Как посчитать количество пустых и непустых ячеек в Excel - Если ваша задача - заставить Excel подсчитывать пустые ячейки на листе, прочтите эту статью, чтобы найти 3 способа для этого. Узнайте, как искать и выбирать среди них нужные с помощью стандартных инструментов поиска, или же просто…
6 способов — как безопасно удалить лишние пустые строки в Excel - Это руководство научит вас нескольким простым приемам безопасного удаления нескольких пустых строк в Excel без потери информации. Пустые строки в таблице — это проблема, с которой мы все время от времени сталкиваемся, особенно при объединении…
Вставить одну, пять или десять пустых строк в Excel не составляет труда. А с помощью надстройки можно быстро вставить большое количество строк на лист Excel, а также добавлять строки по различным условиям.
Описание работы
Иногда необходимо вставлять большое количество пустых строк по различным условиям и в ручную этот процесс занимает много времени. Для упрощения данного процесса в функционал надстройки добавлена функция «Вставить пустые строки».
Чтобы воспользоваться функцией перейдите на вкладку «VBA-Excel» в разделе «Ячейки и диапазоны» откройте меню «Вставить», выберите «Вставить пустые строки».
Появится диалоговое окно с выбором опций для вставки строк. Необходимо выбрать опции в соответствии с тем какая стоит задача.
Вставка произвольного количества строк
Для этого в поле «Условие» необходимо выбрать пункт «Вставить N пустых строк»
Для того что бы указать в какую строку вставлять пустые строки нужно в поле «Начиная со строки» указать номер нужной строки.
Это можно сделать двумя способами:
- Вручную ввести номер строки.
- Нажать кнопку «…» расположенную рядом с полем «Начиная со строки», после чего откроется окно выбора строки. Далее нужно выбрать любую ячейку находящуюся в нужной строку и нажать «Ок»
После чего в поле Количество указать сколько пустых строк нужно вставить. И нажать кнопку «Ок»
Например, нужно вставить 5 пустых строк с 7 строки. тогда ввод в диалоговое окно будет выглядеть следующим образом:
Вставка строк через заданное количество строк
Для этого в поле «Условие» должно быть выбрано «Вставлять через каждые N строк».
В данном режиме нужное количество строк вставляется через равные промежутки в пределах, указанных в поле «Диапазон»
В поле «Диапазон» можно указать «Текущий лист» или «Выделение».
- В первом случае вставляются пустые строки с первой строки до последней, в которой есть какие-либо значения.
- Во втором пустые строки вставляются только в рамках текущего выделения.
Как и в первом режиме нужно указать строку, с которой начнет работать алгоритм и количество пустых строк
А в поле «Вставлять через» указывается сколько строк будет пропускаться при вставке следующих пустых строк.
Например, нужно вставить 2 пустые строки через каждые 2 строки, начиная с 6 строки, тогда диалоговое окно примет следующий вид:
Вставка строк при изменении значения в столбце
Для этого в поле «Условие» должно быть выбрано «Вставлять по изменению значения в столбце»
В этом режиме пустые строки вставляются в том случае если в выбранном столбце меняется значение.
Для указания столбца, по которому просматриваются значения, нужно в поле «Столбец» ввести имя столбца. Это можно сделать двумя способами:
- Вручную ввести имя столбца
- Нажать кнопку «…» расположенную рядом с полем «Столбец», после чего откроется окно выбора столбца. Далее нужно выбрать любую ячейку находящуюся в нужном столбце и нажать «Ок»
Например, вам нужно отделить каждый новый артикул в столбце А пустой строкой. Тогда диалоговое окно примет вид:
Вставка строк при определенном значении в столбце
Для этого в поле «Условие» должно быть выбрано «Вставлять по значению в столбце».
В этом случае вставка пустых строк происходит по совпадению значения выбранного столбца со значением указанным в поле «Значение».
Например, нужно вставить пустые строки там, где в столбце «Флаг» находится значение «f». В этом случае выбираем следующие настройки:
Надстройка для Excel содержит большой набор полезных функций, с помощью которых вы значительно сократите время и увеличите скорость работы с программой.
Читайте также: