我一直在尝试使用excel解决以下问题,我不知道从哪里开始,我尝试过使用组合和渗透,但只是对它们有基本的了解,你们将如何解决这个问题?
有6种咖啡,有10种风味,你可以在每种咖啡中放一次,两次或三次。基于此,我想知道(并列出)独特的风味组合,以及如果没有同一杯咖啡,你可以走多长时间。
答案 0 :(得分:1)
像这样构建你的表:
A B
Coffee1 Syrup1
Coffee2 Syrup2
Coffee3 Syrup3
Coffee4 Syrup4
Coffee5 Syrup5
Coffee6 Syrup6
Syrup7
Syrup8
Syrup9
Syrup10
对于上述数据,以下公式将计算组合总数:
=COUNTA(A:A)*COUNTA(B:B)
+COUNTA(A:A)*COUNTA(B:B)^2
+COUNTA(A:A)*COUNTA(B:B)^3
尝试所有不同组合所需的时间长短取决于咖啡因成瘾的程度。
答案 1 :(得分:1)
使用宏非常简单。
首先要注意的是我们需要组合而不是排列。这是因为{Kona,vanella,chocolate}与{Kona,chocolate,香草}。
将6种咖啡放在 A1 至 A6
将10种口味放入 B2 至 B11。将 B1 留空。
输入并运行以下 VBA 宏:
Sub CoffeeMixer()
Dim k As Long, _
i As Long, _
j As Long, _
l As Long, _
Z As Long
Z = 1
For i = 1 To 10
cf = Cells(i, 1).Value
For j = 1 To 11
fl1 = Cells(i, 2).Value
For k = j+1 To 11
fl2 = Cells(k, 2).Value
For l = k+1 To 11
fl3 = Cells(l, 2).Value
If fl1 = fl2 Or fl1 = fl3 Or fl2 = fl3 Then
Else
Cells(Z, "C").Value = cf
Cells(Z, "D").Value = fl1
Cells(Z, "E").Value = fl2
Cells(Z, "F").Value = fl3
Z = Z + 1
End If
Next l
Next k
Next j
Next i
End Sub
这将产生875个样本。
宏非常易于安装和使用:
如果保存工作簿,宏将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx
删除宏:
要使用Excel中的宏:
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
必须启用宏才能使其生效!
以下是一个示例:
修改#1 强>
以下是更新后的代码:
Sub CoffeeMixer()
Range("C:F").Clear
Dim k As Long, _
i As Long, _
j As Long, _
l As Long, _
Z As Long
Z = 1
For i = 1 To 6
cf = Cells(i, 1).Value
For j = 1 To 11
fl1 = Cells(j, 2).Value
kk = j + 1
If j = 11 Then kk = 11
For k = kk To 11
fl2 = Cells(k, 2).Value
ll = 1 + k
If k = 11 Then ll = 11
For l = ll To 11
fl3 = Cells(l, 2).Value
Cells(Z, "C").Value = cf
Cells(Z, "D").Value = fl1
Cells(Z, "E").Value = fl2
Cells(Z, "F").Value = fl3
Z = Z + 1
Next l
Next k
Next j
Next i
End Sub
使用此版本,您必须填写 B1 至 B10 ,并将 B11 留空!