【エクセルマクロ】複数条件が一致で別シートに転記(動画あり)

vba-複数条件一致で別シート転記-アイキャッチ ExcelVBA

エクセルマクロで、複数条件が一致で別シートに転記するVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

複数条件が一致で別シートに転記

以下のExcelVBAを実行すると、別シートにデータを振り分けします。


Sub データ抽出して別のシートへ転記()

Dim Shukei As Worksheet
Dim Yotei As Worksheet
Dim i As Long
Dim j As Long
Dim Target As String
Dim Target_Time As String

    Set Shukei = Sheets("集計")
    Set Yotei = Sheets("予定")

    Shukei.Select

    '集計シートの値クリア
    Shukei.Range(Cells(2, 2), Cells(100, 3)).ClearContents

    '集計日を取得
    Target = Format(Shukei.Range("E1"), "yyyymmdd")
    
    Application.ScreenUpdating = False
 
    '集計シート 2~最終行までループ
    For i = 2 To Shukei.Range("A1").End(xlDown).Row
        
        '予定シート 2~最終行までループ
        For j = 2 To Yotei.Range("A1").End(xlDown).Row
        
            '集計シート 対象の時間取得
            Target_Time = Format(Shukei.Cells(i, 1), "hh:mm")

            '日付と時間が一致したら
            If Target = Format(Yotei.Cells(j, 2), "yyyymmdd") And _
                Target_Time = Format(Yotei.Cells(j, 3), "hh:mm") Then
    
                '集計シートB列とC列に転記
                Yotei.Cells(j, 1).Copy Shukei.Cells(i, 2)
                Yotei.Cells(j, 4).Copy Shukei.Cells(i, 3)
                Exit For
            End If
        Next j
   Next i

    Application.ScreenUpdating = True

End Sub

マクロ実行前

「予定」シートと、「集計」シートを用意します。

「集計」シートの [セルE1] に、日付を入力しておきます。


 

マクロ実行後

以下条件が両方当てはまるデータを、「予定」シートから検索して、
「集計」シートに転記します。

・「集計」シートのセルE1「担当日」
・「集計」シートのA列「時間」


 

該当データが存在しない場合は、

「集計」シートの B列・C列は空欄となります。


 
 
この記事がお役に立ちますと幸いです。
 
・【エクセルマクロ】別シート転記を自動処理する方法まとめ
 

【エクセルマクロ】別シート転記(抽出)を自動化する:超便利20選
...

 

「スラスラ読める Excel VBA ふりがなプログラミング」
究極のやさしさを目指した、まったく新しいVBAの入門書
マクロの1行1行が何を意味していて、どう動くのかが理解できる!