所有可能的组合包含10个数据集

时间:2014-09-29 17:58:13

标签: excel excel-2010

我要做的是创建一个表,其中包含十个独立传递/失败的结果的所有可能组合(0/1,真/假,是/否,+ / - ,但是您想要定义它)测试。因此,例如,如果所有十个测试都通过,我将有一个包含十个传递值的列。由于有1024种可能的组合,我真的不必全部输入它们。

我并不需要它非常具有交互性,因为我只需要一次制作的表格,但我很想知道它是如何学习/如果我需要在将来为不同的数据集创建一个类似的表格

我尝试使用Microsoft QUERY输入在此处列出的方法,但说实话我并不是真的理解它。输出的示例如下:

Combo 1:    Combo 2:     Combo 3:
1             1            1
1             1            1
1             1            1
1             1            1
1             1            1
1             1            1
1             1            1
1             1            1
1             1            0
1             0            0
所有1024种可能性的

等。因此,每列中的每个值都是01,并且没有两列是相同的。

3 个答案:

答案 0 :(得分:0)

可能在Row1中向下复制到Row512:

=DEC2BIN(ROW()-1,10) and

=1&RIGHT(N1,9)

其中N是包含第一个公式的列。

答案 1 :(得分:0)

在Excel 2013中,您可以使用新的BITAND功能。

创建一个数字在0到1023之间的列升序。

假设有A列,请在右侧10列中使用此表格中的公式。

Column B: =BITAND($A2,512)/512
Column C: =BITAND($A2,256)/256
Column D: =BITAND($A2,128)/128

等等。

此技术使用按位并测试输入列中是否设置了特定位。您除以您正在测试的位的值,以便结果为0或1。

答案 2 :(得分:0)

将其粘贴到模块中:

Sub test()
    Dim c As Long
    Dim n As Long
    Dim i As Integer

    For i = 0 To 1023
        Sheet1.Cells(i + 1, 1) = "'" & Dec2Bin(i, 10)
    Next i

    Sheet1.Columns(1).TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array _
        (5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1)), TrailingMinusNumbers:=True

    For c = 11 To 1034
        For n = 2 To 11
            Sheet1.Cells(n, c) = Sheet1.Cells(c - 10, n - 1)
            Sheet1.Cells(1, c) = "Case " & c - 10 & ":"
        Next n
    Next c

    Sheet1.Columns("A:J").Delete
End Sub
Function Dec2Bin(ByVal DecimalIn As Variant, _
              Optional NumberOfBits As Variant) As String
    Dec2Bin = ""
    DecimalIn = Int(CDec(DecimalIn))
    Do While DecimalIn <> 0
        Dec2Bin = Format$(DecimalIn - 2 * Int(DecimalIn / 2)) & Dec2Bin
        DecimalIn = Int(DecimalIn / 2)
    Loop
    If Not IsMissing(NumberOfBits) Then
       If Len(Dec2Bin) > NumberOfBits Then
          Dec2Bin = "Error - Number exceeds specified bit size"
       Else
          Dec2Bin = Right$(String$(NumberOfBits, _
                    "0") & Dec2Bin, NumberOfBits)
       End If
    End If
End Function