Excel排列,不重复多列中的值

Excel排列,不重复多列中的值,excel,excel-2007,combinations,permutation,vba,Excel,Excel 2007,Combinations,Permutation,Vba,Excel文档中的内容: A B Abc 12:34 Def 56:78 Ghi 90:12 Jkl 34:56 ... 我希望通过这些价值观实现的目标: C D E F Abc 12:34 Def 56:78 Abc 12:34 Ghi 90:12 Abc 12:34 Jkl 34:56 Def 56:78 Ghi 90:12 Def 56:78 Jkl 34:56 Ghi 90:12 Jkl 34:5

Excel文档中的内容:

A     B    
Abc   12:34
Def   56:78
Ghi   90:12
Jkl   34:56
...
我希望通过这些价值观实现的目标:

C    D      E    F
Abc  12:34  Def  56:78
Abc  12:34  Ghi  90:12
Abc  12:34  Jkl  34:56
Def  56:78  Ghi  90:12
Def  56:78  Jkl  34:56
Ghi  90:12  Jkl  34:56
...
说明:

列A和B可以包含文本和数字的任意组合(如果这很重要的话),此示例仅显示最常见的结构。它应该只为“正在向下”的行创建组合,即。E“Abc…Def…”就足够了,不应该有“Def…Abc…”

有很多例子,但我很难找到一个这样的VBA版本,它可以处理多个列,并且不重复组合

这里有一个简单的例子。但是,它仅适用于一列,并且还重复值:


提前感谢您。

根据我们在对话中讨论的内容,以下是VBA中的解决方案:

Sub CreatePermutation()

Dim FirstCell As Integer
Dim SecondCell As Integer
Dim NumRows As Integer
Dim OutputRow As Long

    ' Get the total number of rows in column A
    NumRows = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row()

    ' You want to start outputting in row 1
    OutputRow = 1

    For FirstCell = 1 To NumRows - 1
        For SecondCell = FirstCell + 1 To NumRows

            ' Put in the data from the first cell into columnc C & D
            Cells(OutputRow, 3).Value = Cells(FirstCell, 1).Value
            Cells(OutputRow, 4).Value = Cells(FirstCell, 2).Value

            ' Put in the data from the second cell into column E & F
            Cells(OutputRow, 5).Value = Cells(SecondCell, 1).Value
            Cells(OutputRow, 6).Value = Cells(SecondCell, 2).Value

            ' Move to the next row to output
            OutputRow = OutputRow + 1

        Next SecondCell
    Next FirstCell
End Sub

希望这能完成您想要做的事情。

举个例子,这可以通过一个简单的双for循环来实现。。。没有?我真的不知道,我不是Excel的专家,但是关于排列的其他问题的大多数答案都涉及宏。此外,我的一些工作表将有30-40行,因此任何涉及选择X行数的需要在之后填充的事情都不实际。如果这就是double for loop在Excel中的工作方式:否-答案将涉及编程/VBA-但我想说的是,如果你看你的答案,你向下看每一行,并将其与后面的所有行合并,然后向下移动到下一行,再次执行该过程。。。这有意义吗?这是正确的-每一行只与它后面的行合并,你重复这个过程直到它到达最后一行。好的,我现在给你发一个快速的解决方案……哇,你让它看起来非常简单。:)这正是我需要的,谢谢!!:)-如果你以前做过,一切都很简单很高兴我能帮忙!!:)要将其扩展到5列或6列,需要做哪些修改?我找到了一个不同的排列代码,但所有重复值都达到了excel中的最大行数。这甚至可能仍然是一个问题,因为我的数据集t是Col A,B,D,E,F是1-22(没有#5),Col C是1-22。