我要做的是创建一个表,其中包含十个独立传递/失败的结果的所有可能组合(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种可能性的等。因此,每列中的每个值都是0
或1
,并且没有两列是相同的。
答案 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