将多个excel列合并到一个两列文件中

将多个excel列合并到一个两列文件中,excel,excel-formula,Excel,Excel Formula,我有一个excel文件,其中包含以下格式的多列: name_1 name_2 name_3 name_1 name_4 name_5 name_6 这表示name_1与name_2和name_3合作,name_2与name_3合作,等等 因此,我需要创建一个新的excel文件,该文件将包含所有协作,例如 name_1 name_2 name_1 name_3 name_2 name_3 name_1 name_4 name_1 name_5 name_1 na

我有一个excel文件,其中包含以下格式的多列:

name_1      name_2  name_3  
name_1  name_4  name_5  name_6
这表示name_1与name_2和name_3合作,name_2与name_3合作,等等 因此,我需要创建一个新的excel文件,该文件将包含所有协作,例如

name_1  name_2
name_1  name_3
name_2  name_3
name_1  name_4
name_1  name_5
name_1  name_6
name_4  name_5
name_4  name_6
name_5  name_6

有什么方法可以做到这一点吗?

您需要VBA才能做到这一点

如果你的数据是这样的

试试下面的代码

Sub splitTable()
Dim i As Long, j As Long, k As Long, x As Long
Sheets.Add.Name = "newSheet"
k = 1
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    For x = 2 To Cells(i, Columns.Count).End(xlToLeft).Column
    For j = x To Cells(i, Columns.Count).End(xlToLeft).Column
        Sheets("newSheet").Cells(k, 1) = Cells(i, x - 1)
        Sheets("newSheet").Cells(k, 2) = Cells(i, j)
        k = k + 1
    Next j
    Next x
Next i
End Sub
代码创建一个新的工作表并打印格式化的输出


是否创建文件副本???对不起,我可能误解了你的要求。@temelina那很好。请将我的答案标记为正确,以结束此问题。你可以在我答案的左边看到