エクセルマクロで、複数条件が一致で別シートに転記する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行が何を意味していて、どう動くのかが理解できる!
リンク