0

エクセル初心者ですが、数式のコツはつかめました。私がしたことは、列内の特定の基準を検索するための 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

誰かがそうする方法について何か提案があれば、それは大歓迎です。ありがとう!

4

2 に答える 2

0

Excel の組み込みフィルターを使用して、特定の条件に一致する行 (countif が > X の列、または各列のいずれか) に一致する行のみを表示し、それを印刷しないのはなぜですか?

「ホーム」リボン、パネル「編集、ソート&フィルター」

于 2013-07-02T18:24:54.123 に答える
0

OK、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
于 2013-07-03T17:57:50.407 に答える