Excel スプレッドシートから 1 行のデータを抽出する

Excel スプレッドシートから 1 行のデータを抽出する

Excel スプレッドシートから 1 行分のデータを抽出し、別のシートに転送する必要があります。一連のダッシュ (- - - - -) を検索し、ダッシュの 2 行下にあるデータ行を抽出する必要があります。

答え1

Excel 検索 構文を見つける

Dim rFound を範囲として

ここで、「expression」は有効な範囲オブジェクトです (例: Range("A1:A100")、Columns(2) など)。また、Find メソッドを使用するたびに、Range オブジェクトが返されます。

式.Find(What、After、LookIn、LookAt、SearchOrder、SearchDirection、MatchCase、MatchByte、SearchFormat)

Dim rFound As Range エラー時に再開 次へ

    With ActiveWorkbook.ActiveSheet

        Set rFound = .Columns(1).Find(What:="- - - - -", After:=.Cells(1, 1), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

    On Error GoTo 0
        If Not rFound Is Nothing Then
             Match = rFound.Address
             MsgBox (rFound.Offset(2, 0))


        End If

    End With

答え2

これには Power Query アドインを使用します。Excel テーブルからデータを読み取ることができます。

2 つのクエリを作成します。最初のクエリでは、インデックス列 (行番号) を追加し、ダッシュで行をフィルターします。次に、単純な計算列を追加します: [Index] + 2。このクエリでは、テーブルを出力する必要はありません。

2 番目のクエリはベース テーブルから開始し、"[インデックス] + 2" 列と内部の結合タイプ (一致のみを保持) を使用して最初のクエリと結合します。このクエリは、新しいテーブルを Excel に出力します。

Power Query UI をクリックするだけで、ほとんどすべてを構築できます。必要な数式は非常にシンプルです[Index] + 2

関連情報