Печатать строки на основе критериев?
Я немного новичок, чтобы преуспеть, но до сих пор я освоил некоторые формулы. Я создал формулу для поиска определенных критериев в столбцах. Однако то, что я хочу сделать, основано на том, что я искал с помощью счетчиков, я хочу отобразить строки, которые искали, на отдельном листе. Например, если я выполнил поиск в столбце A и обнаружил, что в 3 строках столбца A содержится слово "Hello", я бы хотел распечатать строки, содержащие слово "Hello" в столбце A. Есть ли простой или автоматизированный способ сделать это? Я не хотел бы делать это вручную через фильтры. Если бы кто-то мог помочь, это было бы здорово! Спасибо!
Пример строк и столбцов будет выглядеть так:
Animal Owner Phrase
Cat Jack Hello
Dog Jill Bye
Elephant Henry Hello
В этом случае я бы использовал Countifs для поиска "Hello", который отображал бы строки на отдельном листе.
Cat Jack Hello
Elephant Henry Hello
Если у кого-то есть какие-либо предложения о том, как это сделать, это будет с благодарностью. Спасибо!
2 ответа
ОК, если вы хотите сделать это в VBA:
Sub SortByCondition()
Application.ScreenUpdating = False
Dim i As Integer, r As Integer
Dim rFirst As Integer, rLast As Integer
Dim wSin As Worksheet, wSout As Worksheet ' I like to have variables when working on multiple sheets for clarity and ease of use
Set wSin = Sheets("Raw") ' The sheet where you have unsorted data
Set wSout = Sheets("Sorted") ' The sheet where you will copy the sorted data
' This is to find the first and last row in your table... there are many other ways to do it
With wSin.Cells(1, 1).CurrentRegion ' Replace with first cell in your table
rFirst = .Rows.Row + 1 ' Assumes the first line of your table is the header
rLast = .Rows.Count + .Rows.Row - 1
End With
r = 2 ' We'll start copy on row 2 in the output sheet
For i = rFirst To rLast Step 1
If wSin.Cells(i, 3).Value = "Hello" Then ' I'm assuming we test for 'Hello' being in column C
Range(wSin.Cells(i, 1), wSin.Cells(i, 3)).Copy wSout.Cells(r, 1) ' We'll copy in columns A to C in the output sheet
r = r + 1
End If
Next i
Application.ScreenUpdating = True
End Sub
Почему бы не использовать встроенные фильтры в Excel и отображать только те строки, которые соответствуют определенным критериям (либо столбцы, в которых у вас есть счетчик> X, либо по каждому столбцу), а затем распечатать это?
"Домашняя" лента, панель "Редактирование, сортировка и фильтрация"