Найти в Дзене

Эксель перенос данных из одного листа в другой по определенному условию

Оглавление

Перенести данные из одного листа Excel в другой по определенному условию можно с помощью формулы или макроса. Вот пример, как это сделать с помощью формулы и функции "Фильтр":

С помощью формулы:

  1. Предположим, у вас есть данные в листе "Sheet1" в диапазоне A1:B10, и вы хотите перенести строки, где значение в столбце A равно "Условие", в лист "Sheet2".
  2. В ячейке A1 на листе "Sheet2" введите следующую формулу:

excel

=Фильтр(Sheet1!A1:B10, Sheet1!A1:A10="Условие")

С помощью VBA макроса:

  1. Откройте Excel и нажмите Alt + F11 для открытия редактора VBA.
  2. Вставьте новый модуль (Insert > Module).
  3. Вставьте следующий код в модуль:

vba

Sub ПереносДанных()
Dim wsSource As Worksheet
Dim wsTarget As Worksheet
Dim i As Long, j As Long
Set wsSource = ThisWorkbook.Sheets("Sheet1")
Set wsTarget = ThisWorkbook.Sheets("Sheet2")
j = 1 ' Стартовая строка на целевом листе
For i = 1 To wsSource.Cells(wsSource.Rows.Count, 1).End(xlUp).Row
If wsSource.Cells(i, 1).Value = "Условие" Then
wsTarget.Cells(j, 1).Value = wsSource.Cells(i, 1).Value
wsTarget.Cells(j, 2).Value = wsSource.Cells(i, 2).Value
j = j + 1
End If
Next i
End Sub

  1. Закройте редактор VBA и вернитесь в Excel.
  2. Запустите макрос, нажав Alt + F8, выберите "ПереносДанных" и нажмите "Выполнить".