Excel 具有10个数据集的所有可能组合
我要做的是创建一个表,其中包含十个独立的通过/失败0/1、真/假、是/否、+/-的结果的所有可能组合,不管您如何定义它。例如,如果所有十个测试都通过了,我会有一列十个通过值。既然有1024种可能的组合,我真的不想把它们都打出来 我真的不需要它具有很强的交互性,因为我只需要制作一次表,但我很想看看如何学习/如果我将来需要为不同的数据集创建类似的表 我尝试了这里列出的一个使用Microsoft QUERY输入的方法,但说实话,我并没有真正理解它。输出的示例如下所示:Excel 具有10个数据集的所有可能组合,excel,excel-2010,Excel,Excel 2010,我要做的是创建一个表,其中包含十个独立的通过/失败0/1、真/假、是/否、+/-的结果的所有可能组合,不管您如何定义它。例如,如果所有十个测试都通过了,我会有一列十个通过值。既然有1024种可能的组合,我真的不想把它们都打出来 我真的不需要它具有很强的交互性,因为我只需要制作一次表,但我很想看看如何学习/如果我将来需要为不同的数据集创建类似的表 我尝试了这里列出的一个使用Microsoft QUERY输入的方法,但说实话,我并没有真正理解它。输出的示例如下所示: Combo 1: Comb
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种可能性。因此,每列中的每个值都将是0或1,并且没有两列是相同的。可能在第1行中复制到第512行:
=DEC2BIN(ROW()-1,10) and
=1&RIGHT(N1,9)
其中N是包含第一个公式的列。在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
等等
此技术使用按位and来测试输入列中是否设置了特定位。除以正在测试的位的值,结果为0或1。将其粘贴到模块中:
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
请告诉我们你已经试过了什么。此外,我们还需要一个您想要的输出样本。数据现在是什么格式?只有10个数据集,只有值0和1。它是如何格式化的?显示源代码的示例。我没有真正格式化它。我猜消息来源可能会想:Set 1=0,1 Set 2=0,1 Set 3=0,1等等,如果这有帮助的话,我不能用Excel 2010在这台计算机上完成,但我回家后会试一试。谢谢你!哦,糟糕,我没有注意到它是Excel 2013中的一个新函数。没问题,听起来应该可以工作,但我没有在Excel中使用按位函数的经验。哈哈,把它放进去,似乎正是我想要的!谢谢你的帮助!