Как вставить данные в отфильтрованные ячейки excel
Перейти к содержимому

Как вставить данные в отфильтрованные ячейки excel

  • автор:

Копирование только видимых ячеек

Если некоторые ячейки, строки или столбцы на сайте не отображаются, можно скопировать все ячейки или только видимые. По умолчанию Excel копирует не только видимые, но и скрытые или фильтрованные ячейки. Если же требуется скопировать только видимые ячейки, выполните действия, описанные ниже. Например, можно скопировать только суммарные данные со структурного таблицы.

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

Совет: Чтобы отменить выделение ячеек, щелкните любую ячейку на этом же.

Команда

  • Щелкните Главная >Найти и выделить, а затем выберите пункт Выделение группы ячеек.
  • Выберите параметр только видимые ячейки и нажмите кнопку ОК.
  • Щелкните Копировать (или нажмите клавиши CTRL+C).
  • Выберите левую верхнюю ячейку области вжатия и нажмите кнопку Вировать (или нажмите CTRL+V).

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

    Примечание: При копировании значения последовательно вставляются в строки и столбцы. Если область вставки содержит скрытые строки или столбцы, возможно, потребуется отобразить их, чтобы увидеть все скопированные данные.

    При копировании и вставке видимых ячеек в диапазоне данных, который содержит скрытые ячейки или к которому применен фильтр, можно заметить, что скрытые ячейки вставляются вместе с видимыми. К сожалению, это нельзя изменить при копировании и вклеии диапазона ячеек в Excel в Интернете так как возможность в виде вметки только видимых ячеек недоступна.

    Тем не менее, если отформатировать данные как таблицу и применить фильтр, можно скопировать и вставить только видимые ячейки.

    Если не нужно форматировать данные как таблицу и установлено классическое приложение Excel, можно открыть книгу в нем, чтобы скопировать и вставить видимые ячейки. Для этого нажмите кнопку Открыть в Excel и выполните действия, которые можно сделать в окте Копирование и вкопка только видимых ячеек.

    Дополнительные сведения

    Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.

    Как вставить данные в отфильтрованные ячейки excel

    Уверена, Вы сталкивались с этой проблемой. Если скопировать данные и обычным CTRL+V вставить их в отфильтрованную таблицу, то они попадут и в скрытые строки тоже . Это совсем не то, что нам нужно — см. скрин ниже. Узнаёте?

    Изображение

    Можно решить эту задачу, подтянув данные формулами, без макроса. Ниже показываю 3 варианта.

    Функции СМЕЩ + СЧЁТЕСЛИ

    Если таблица отфильтрована по понятному однозначному условию (конкретный текст или текст содержит, известное число или число < либо >заданного и т.д.). На скрине ниже я выбрала «Самовывоз из питомника».

    И любые из этих условий можно использовать для функций СЧЁТЕСЛИ/МН, СУММЕСЛИ/МН и СРЗНАЧЕСЛИ/МН (на моём онлайн курсе «Расширенные возможности» показываю все варианты условий на примере выборочного суммирования).

    В этом случае нашим помощником будет функция СЧЁТЕСЛИ (или СЧЁТЕСЛИМН, если зафильтровано несколько столбцов), которая способна посчитать в каждой строке её уникальный порядковый номер от начала таблицы.

    А это и есть тот номер, который можно использовать для смещения ссылки: в первой отфильтрованной строке ссылка нужна на первую ячейку с данными для вставки, во второй отфильтрованной строке ссылка нужна вторую ячейку с данными для вставки и т.д.

    Осталось позвать на помощь функцию ссылок и массивов СМЕЩ и вот результат:
    D9=СМЕЩ($F$96;СЧЁТЕСЛИ($C$3:C9;»самовывоз из питомника»)-1;0)

    покупка

    Как вставить данные в отфильтрованный список, пропуская только скрытые строки в Excel?

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

    Copy and Paste cell values into visible or filtered cells only:

    With Kutools for Excel‘s Paste to Visible Range feature, you can quickly copy and paste data from one place to another visible or filtered cells only.

    doc paste to visible cells

    Kutools for Excel: with more than 200 handy Excel add-ins, free to try with no limitation in 60 days. Download and free trial Now!

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

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

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

    документ-вставить-в-отфильтрованные-данные-3

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

    документ-вставить-в-отфильтрованные-данные-4 2 документ-вставить-в-отфильтрованные-данные-5

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

    документ-вставить-в-отфильтрованные-данные-4

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

    документ-вставить-в-отфильтрованные-данные-4

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

    документ-вставить-в-отфильтрованные-данные-4

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

    документ-вставить-в-отфильтрованные-данные-4

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

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

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

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

    документ-вставить-в-отфильтрованные-данные-4

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

    документ-вставить-в-отфильтрованные-данные-4

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

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

    документ-вставить-в-отфильтрованные-данные-4

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

    документ-вставить-в-отфильтрованные-данные-4

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

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

    Лучшие инструменты для офисной работы

    Усовершенствуйте свои навыки работы с Excel с помощью Kutools for Excelи испытайте эффективность, как никогда раньше. Kutools for Excel Предлагает более 300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего.

    Office Tab Добавляет в Office интерфейс с вкладками и значительно упрощает вашу работу
    • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint , Издатель, доступ, Visio и проект.
    • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
    • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

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

    Ни для кого не секрет, что Excel позволяет выделять только видимые строки. Например, если некоторые из них скрыты или к ним применен фильтр.

    если кто-то не знает, как это сделать: выделяем диапазон — Alt+;(для английской раскладки);Alt+ж(для русской). Подробнее можно почитать в этой статье

    Если после выделения только видимых ячеек их скопировать, то скопируются они как положено. Но при попытке вставить скопированное в отфильтрованный диапазон(либо содержащий скрытые строки) — то результат вставки будет не совсем такой, как Вы ожидали. Данные будут вставлены даже в скрытые строки. Либо как вариант получим ошибку «Данная команда не применима к несвязанному диапазону».

    Копируем единый диапазон ячеек и вставляем только в видимые
    Чтобы данные вставлялись только в видимые ячейки, можно применить такой макрос:

    Option Explicit Dim rCopyRange As Range 'Этим макросом копируем данные Sub My_Copy() If Selection.Count > 1 Then Set rCopyRange = Selection.SpecialCells(xlVisible) Else: Set rCopyRange = ActiveCell End If End Sub 'Этим макросом вставляем данные, начиная с выделенной ячейки Sub My_Paste() If rCopyRange Is Nothing Then Exit Sub If rCopyRange.Areas.Count > 1 Then MsgBox "Вставляемый диапазон не должен содержать более одной области!", vbCritical, "Неверный диапазон": Exit Sub Dim rCell As Range, li As Long, le As Long, lCount As Long, iCol As Integer, iCalculation As Integer Application.ScreenUpdating = False iCalculation = Application.Calculation: Application.Calculation = -4135 For iCol = 1 To rCopyRange.Columns.Count li = 0: lCount = 0: le = iCol - 1 For Each rCell In rCopyRange.Columns(iCol).Cells Do If ActiveCell.Offset(li, le).EntireColumn.Hidden = False And _ ActiveCell.Offset(li, le).EntireRow.Hidden = False Then rCell.Copy ActiveCell.Offset(li, le) lCount = lCount + 1 End If li = li + 1 Loop While lCount >= rCell.Row - rCopyRange.Cells(1).Row Next rCell Next iCol Application.ScreenUpdating = True: Application.Calculation = iCalculation End Sub

    Option Explicit Dim rCopyRange As Range ‘Этим макросом копируем данные Sub My_Copy() If Selection.Count > 1 Then Set rCopyRange = Selection.SpecialCells(xlVisible) Else: Set rCopyRange = ActiveCell End If End Sub ‘Этим макросом вставляем данные, начиная с выделенной ячейки Sub My_Paste() If rCopyRange Is Nothing Then Exit Sub If rCopyRange.Areas.Count > 1 Then MsgBox «Вставляемый диапазон не должен содержать более одной области!», vbCritical, «Неверный диапазон»: Exit Sub Dim rCell As Range, li As Long, le As Long, lCount As Long, iCol As Integer, iCalculation As Integer Application.ScreenUpdating = False iCalculation = Application.Calculation: Application.Calculation = -4135 For iCol = 1 To rCopyRange.Columns.Count li = 0: lCount = 0: le = iCol — 1 For Each rCell In rCopyRange.Columns(iCol).Cells Do If ActiveCell.Offset(li, le).EntireColumn.Hidden = False And _ ActiveCell.Offset(li, le).EntireRow.Hidden = False Then rCell.Copy ActiveCell.Offset(li, le) lCount = lCount + 1 End If li = li + 1 Loop While lCount >= rCell.Row — rCopyRange.Cells(1).Row Next rCell Next iCol Application.ScreenUpdating = True: Application.Calculation = iCalculation End Sub

    Как использовать: Для начала надо убедиться, что разрешены макросы и при необходимости включить их: почему не работает макрос. Затем копируем код выше, из Excel переходим в редактор VBA( Alt + F11 ) —InsertModule. Вставляем туда скопированный код. Теперь код можно вызывать нажатием клавиш Alt + F8 -выделяем имя макросаВыполнить (Run) .
    Для полноты картины, данные макросы лучше назначить на горячие клавиши(в приведенных ниже кодах это делается автоматически при открытии книги с кодом). Для этого приведенные ниже коды необходимо просто скопировать в модуль ЭтаКнига(ThisWorkbook):

    Option Explicit 'Отменяем назначение горячих клавиш перед закрытием книги Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.OnKey "^q": Application.OnKey "^w" End Sub 'Назначаем горячие клавиши при открытии книги Private Sub Workbook_Open() Application.OnKey "^q", "My_Copy": Application.OnKey "^w", "My_Paste" End Sub

    Option Explicit ‘Отменяем назначение горячих клавиш перед закрытием книги Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.OnKey «^q»: Application.OnKey «^w» End Sub ‘Назначаем горячие клавиши при открытии книги Private Sub Workbook_Open() Application.OnKey «^q», «My_Copy»: Application.OnKey «^w», «My_Paste» End Sub

    Теперь можно скопировать нужный диапазон нажатием клавиш Ctrl + q , а вставить его в отфильтрованный — Ctrl + w .
    Если необходимо переносить только значения (т.е. если в ячейке будут формулы, то в итоге будет перенесен результат вычисления этой формулы), надо заменить строку в коде:

    rCell.Copy ActiveCell.Offset(li, le)

    rCell.Copy ActiveCell.Offset(li, le)

  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *