これがVBAの解決策です。これをコピーしてVBAの新しいモジュールに貼り付け(最初にスプレッドシートをバックアップ)、次に実行します(F5を使用)。VBAにすばやくアクセスするには、alt-F11を使用します。コード内のMSGBOXステートメントをコメントアウトしたままにしました。また、コードはDW1まで続くため、DV1を終了できます。
Option Explicit
Sub Doc1_Doc2_Merge()
Dim CurrCol As Integer
Dim CurrRow As Integer
Dim NewValue As String
Dim EndCol As String
For CurrRow = 1 To 50 Step 2 '(assume 50 rows - skip 2 lines each time)
CurrCol = 1
EndCol = "$DW$" & Trim(Str(CurrRow))
While Cells(CurrRow, CurrCol).Address <> EndCol
'MsgBox Cells(CurrRow, CurrCol).Address & " " & Cells(CurrRow, CurrCol).Value
If InStr(Cells(CurrRow, CurrCol).Value, "doc1") > 0 Then
' look at next cell
If InStr(Cells(CurrRow, CurrCol + 1).Value, "doc2") > 0 Then
If Trim(Cells(CurrRow + 1, CurrCol + 1).Value) <> "" Then
NewValue = Cells(CurrRow + 1, CurrCol).Value & "," & Cells(CurrRow + 1, CurrCol + 1)
'MsgBox "New Value is " & NewValue
Cells(CurrRow + 1, CurrCol).Value = NewValue
End If
End If
End If
CurrCol = CurrCol + 1
Wend
Next CurrRow
End Sub
テスト結果は次のとおりです。