我有2列,200k行:
F1 1
F2 0
F3 0
F4 0
F5 0
F6 1
F7 1
F8 0
F9 10
对于所有值= 0,我想将关联字段与先前关联的字段连接起来。 当有更多连续的字段(4)时,我希望将所有(5)个相关字段连接在一起。
我想:
F1 1
F2 0 F1|F2|F3|F4|F5
F3 0
F4 0
F5 0
F6 1
F7 1
F8 0 F7|F8
F9 10
目前我有:
Sub mfewj()
N = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To N
If Cells(i, 2) = 0 Then Cells(i, 3).FormulaR1C1 = "=CONCATENATE(R[-1]C[-2],""|"",RC[-2])"
Next i
End Sub
返回:
F1 1
F2 0 F1|F2
F3 0 F2|F3
F4 0 F3|F4
F5 0 F4|F5
F6 1
F7 1
F8 0 F7|F8
F9 10
感谢任何建议
答案 0 :(得分:1)
你可以在列表中向后循环:
Option Explicit
Sub ConCatMacro()
Dim i As Long
Dim str As String
i = ActiveSheet.Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
For i = i To 1 Step -1 'Loops backwards
If Cells(i, 2).Value = 0 Then
If Len(str) > 0 Then
str = Cells(i, 1).Value & "|" & str
Else
str = Cells(i, 1).Value
End If
Else
If Len(str) > 0 Then
Cells(i + 1, 3).Value = Cells(i, 1).Value & "|" & str
str = ""
End If
End If
Next
End Sub