Excel скопировать непустые ячейки из диапазона

Обновлено: 04.07.2024

Как известно, для полноценной работы с данными (фильтрации, сортировки, подведения итогов и т.д.) нужен непрерывный список, т.е. таблица без разрывов (пустых строк и ячеек - по возможности). На практике же часто мы имеем как раз таблицы с пропущенными пустыми ячейками - например после копирования результатов сводных таблиц или выгрузок в Excel из внешних программ. Таким образом, возникает необходимость заполнить пустые ячейки таблицы значениями из верхних ячеек, то бишь.

из сделать

В общем случае, может возникнуть необходимость делать такое заполнение не только вниз, но и вверх, вправо и т.д. Давайте рассмотрим несколько способов реализовать такое.

Способ 1. Без макросов

Выделяем диапазон ячеек в первом столбце, который надо заполнить (в нашем примере, это A1:A12).

Нажимаем клавишу F5 и затем кнопку Выделить (Special) и в появившемся окне выбираем Выделить пустые ячейки (Blanks) :

fill-blanks3.jpg

Не снимая выделения, вводим в первую ячейку знак "равно" и щелкаем по предыдущей ячейке или жмём стрелку вверх (т.е. создаем ссылку на предыдущую ячейку, другими словами):

И, наконец, чтобы ввести эту формулу сразу во все выделенные (пустые) ячейки нажимаем 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) :

Заполнение пустых ячеек в Power Query

Вот и всё :) Осталось готовую таблицу выгрузить обратно на лист Excel командой Главная - Закрыть и загрузить - Закрыть и загрузить в. (Home - Close&Load - Close&Load to. )

В дальнейшем, при изменении исходной таблицы, можно просто обновлять запрос правой кнопкой мыши или на вкладке Данные - Обновить всё (Data - Refresh All) .

В Excel мы можем быстро и легко заменить или заполнить выделение определенным значением, нажав клавиши Ctrl + Enter , но знаете ли вы, как замените непустые ячейки определенным значением в выбранном диапазоне, который содержит как пустые ячейки, так и ячейки значений.

Замените непустые ячейки определенным значением с помощью функции «Найти и заменить»

Заменить непустые ячейки определенным значением с помощью кода VBA

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%.


Заменить непустые ячейки определенным значением с помощью функции поиска и замены


Потрясающе! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Сэкономьте 50% своего времени и уменьшите тысячи щелчков мышью каждый день!

В Excel функция «Найти и заменить» может помочь нам найти все непустые ячейки и затем заменить их указанным значением как вам нравится.

1 . Выберите диапазон данных, который вы хотите заменить только ячейками значений.

2 . Затем нажмите Ctrl + H , чтобы открыть диалоговое окно Найти и заменить в диалоговом окне Найти и заменить в разделе Заменить , введите * в поле Найти и введите нужное значение в Замените текстовым полем , см. Снимок экрана:






Заменить непустые ячейки определенным значением с помощью кода VBA

Используя следующий код VBA, вы также можете заменить все ячейки данных к вашим нужным значениям сразу. Пожалуйста, сделайте следующее:

1 . Удерживая нажатыми клавиши ALT + F11 , откройте окно Microsoft Visual Basic для приложений .

2 . Нажмите Insert > Module и вставьте следующий код в окно модуля .

Код VBA: замените непустые ячейки определенным значением

3 . Затем нажмите клавишу F5 , чтобы запустить этот код, и появится всплывающее окно, напоминающее вам о выборе диапазона, в котором вы хотите заменить данные, см. Снимок экрана:


4 . Затем нажмите OK и введите конкретное значение в следующее окно запроса, см. Снимок экрана:


5 . А затем нажмите OK , все значения в выбранном диапазоне были заменены определенными данными сразу.

Обычно, когда мы копируем некоторые ячейки данных в диапазоне A, который содержит пробелы, и вставляем их в другой диапазон B, пустые ячейки также будут вставлены, а исходные данные диапазона B будут будет скучать. См. Следующие снимки экрана:




Скопируйте и вставьте пропущенные пустые ячейки с помощью специальной функции «Вставить»

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%.


Скопируйте и вставьте пропустить пустые ячейки с Специальная функция вставки


Потрясающе! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Сэкономьте 50% своего времени и сократите тысячи щелчков мышью каждый день!

Функция пропуска пробелов в Excel позволяет нам копировать диапазон данных с пустыми ячейками и вставлять данные в другую область без перезаписи существующие данные с пробелами. Выполните следующие действия:

1 . Выберите диапазон данных, который вы хотите скопировать, а затем нажмите Ctrl + C , чтобы скопировать его..

2 . Затем выберите другой диапазон или ячейку, в которую нужно вставить данные, а затем щелкните правой кнопкой мыши и выберите в контекстном меню Специальная вставка > Специальная вставка , см. Снимок экрана. :


3 . В диалоговом окне Специальная вставка установите флажок Пропускать пробелы , см. Снимок экрана:


4 . Затем нажмите кнопку OK , и ваши скопированные данные из диапазона A будут вставлены в диапазон B без пустых ячеек. См. Снимок экрана:

Как мы все знаем, когда мы пытаемся вставить значения в список фильтрованной таблицы, скрытые строки не пропускаются, поэтому мы получим неверный результат. Например, у меня есть два листа, лист 1 содержит данные, которые были отфильтрованы, а лист 2 содержит данные, которые я хочу вставить в фильтрованный лист 1, как показано на следующих снимках экрана. Есть ли какая-нибудь функция, с помощью которой мы можем вставить данные в отфильтрованные строки только в Excel?

Вставить данные в отфильтрованный список в Excel с помощью вспомогательных столбцов

Вставить данные в отфильтрованный список в Excel с помощью Kutools для Excel

Копировать и вставлять значения ячеек только в видимые или отфильтрованные ячейки:

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


Kutools для Excel : с более чем 200 удобными надстройками Excel, попробуйте бесплатно без ограничений в течение 60 дней. Загрузить и бесплатную пробную версию прямо сейчас!


Вставить данные в отфильтрованный список в Excel со вспомогательными столбцами

Чтобы вставить данные в отфильтрованный список, вам необходимо применить некоторые вспомогательные столбцы, выполните следующие действия шаг за шагом:

1 . Сначала нажмите Данные > Фильтр , чтобы удалить фильтр, и введите 1, 2 в ячейки C2 и C3 отдельно, которые находятся рядом со столбцом фильтра, и выберите ячейки C2 и C3, затем перетащите маркер заполнения в ячейки, соответствующие вашим данным на листе 1. См. снимок экрана:


2. Затем снова отфильтруйте данные, нажав Данные > Фильтр , в этом примере я отфильтрую «KTE» из листа 1 и введу эту формулу = ROW () в ячейку D2, а затем заполню эту формулу до видимых ячеек столбца D, которые вам нужны. , см. скриншоты:




3 . Затем снова отмените фильтр и отсортируйте данные по столбцу D в порядке возрастания, все элементы KTE были отсортированы вместе, см. Снимок экрана:


4 . Затем вы можете скопировать данные A1: B6 в лист 2 и вставить их в диапазон A2: B7 листа 1..


5 . Затем вам нужно восстановить исходный порядок данных, щелкните столбец C и отсортируйте данные по возрастанию, см. Снимок экрана:


6 . И порядок данных был восстановлен, затем вы можете удалить содержимое столбца C и столбца D по мере необходимости, наконец, вы можете отфильтровать необходимые данные, и вы увидите, что отфильтрованные данные были успешно заменены новыми данными.



Вставьте данные в отфильтрованный список в Excel с помощью Kutools for Excel

Перейти для загрузки
Бесплатная пробная версия 30 днейПокупка
PayPal/MyCommerce

После установки Kutools for Excel сделайте следующее:

1 . Сначала выберите структуру данных, которую вы хотите скопировать, и вставьте в отфильтрованный список. А затем нажмите Kutools > Range > Вставить в видимый диапазон , см. Снимок экрана:


2 . Затем появится окно подсказки Вставить в видимый диапазон , щелкните ячейку или диапазон ячеек, в которые вы хотите вставить новые данные, см. Снимок экрана:


3 . Затем нажмите кнопку OK , новые данные были вставлены только в отфильтрованный список, и данные скрытых строк также сохранятся.

(1.) Если вы выбираете параметр Only Paste Values ​​, только значения будут вставлены в отфильтрованные данные, см. screesnhot:


(2.) Если вы выберете параметр Все , значения, а также форматирование будут вставлены в отфильтрованные данные, см. снимок экрана:


Читайте также: