我对excel有点新意,但到目前为止,我已经掌握了一些公式。我所做的是创建了一个countifs公式来搜索列中的某些条件。但是,我想要做的是基于我使用countifs搜索的内容,我想在单独的工作表中显示countifs搜索的行。例如,如果我在A列中搜索并发现A列中的3行中包含单词“Hello”,我想打印出A列中包含“Hello”字样的行。有简单或自动的方法吗?我不想通过过滤器手动完成。如果有人能提供帮助那就太棒了!谢谢!
行和列的示例如下所示:
Animal Owner Phrase
Cat Jack Hello
Dog Jill Bye
Elephant Henry Hello
在这种情况下,我会使用countifs来查找“Hello”,它会在单独的工作表中显示行。
Cat Jack Hello
Elephant Henry Hello
如果有人对如何这样做有任何建议,那将非常感激。谢谢!
答案 0 :(得分:0)
为什么不在excel中使用内置过滤器,只显示符合特定条件的行(您拥有countif的列是> X,或者是每列),然后打印出来?
“主页”功能区,面板“编辑,排序和过滤
”答案 1 :(得分:0)
好的,如果你想在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