Hi branston!
In order to test the situation when there is too much data, you can change some of "S" to "N".
Since the attachment cannot be uploaded due to network problems, please refer to the following code.
Sub Okami()
Dim arrOri, arrRst, d As Object, i&, c, cnt&, rng As Range, r&
Set d = CreateObject("scripting.dictionary")
'--------Search------------------------------------------
arrOri = Columns("b").Find("GROUP 2").CurrentRegion
ReDim arrRst(1 To UBound(arrOri), 2)
For i = 2 To UBound(arrOri)
If arrOri(i, 3) = "N" Then d(arrOri(i, 2)) = ""
Next i
arrOri = Columns("f").Find("GROUP 2").CurrentRegion
For i = 2 To UBound(arrOri)
If arrOri(i, 3) = "N" Then
If d.exists(arrOri(i, 2)) Then
cnt = cnt + 1
arrRst(cnt, 0) = cnt
arrRst(cnt, 1) = arrOri(i, 2)
Set rng = Sheets("DATA").Columns("b").Find(arrOri(i, 2), lookat:=xlWhole)
If Not rng Is Nothing Then arrRst(cnt, 2) = rng.Offset(, 1) & ".jpg" Else arrRst(cnt, 2) = "xxxxx.jpg"
End If
End If
Next i
'--------Search------------------------------------------
'--------Output------------------------------------------
r = Columns("y").Find("group 3").Row - Columns("y").Find("group 1").Row - 8
Columns("y").Find("group 1").CurrentRegion.Offset(1) = ""
If cnt > r Then Cells(Columns("y").Find("group 3").Row - 7, "x").Resize(cnt - r + 1, 8).Insert Shift:=xlDown
Cells(Columns("y").Find("group 1").Row + 1, "x").Resize(cnt, 3) = arrRst
'--------Output------------------------------------------
End Sub