【发布时间】:2012-05-28 09:22:18
【问题描述】:
我有一个问题,我无法在网络上的任何地方找到(它可能在那里,但我找不到,呵呵)。
我有一个包含 13 列数据的电子表格。每一列都包含需要进入整个测试用例的参数的变体。
它们都不同,比如
E:
101%
105%
110%
120%
J:
上S
上行L
缺点 B
高级版V
我已经看到了几种使用嵌套循环的组合问题的解决方案。我想避开 13 个嵌套循环(但这是我目前最好的选择)。我不知道如何在每列中生成每个独特的组合。
我不确定这对你们来说是否足够有意义。我希望有人至少可以用递归算法为我指明正确的方向。我想让它足够动态,以容纳不同数量的列和行。
感谢你们能给我的任何帮助。
【问题讨论】:
-
恐怕你将不得不使用循环。最好的办法是使用 13 个数组,每个数组保存特定的范围,然后生成组合。
-
我遇到的最佳方法是建立一个 ODBC 数据连接,将 Excel 文件指向自身,然后针对您的数据创建一个交叉连接(笛卡尔)查询。
-
好吧,“最好”可能不是一个好的词选择。另一种方法是设置一个迭代所有可能索引的工作表,然后使用
INDEX查找值。这实际上是一个 13 维数组,但仅使用工作表函数。 -
我喜欢交叉连接解决方案。我明天必须试一试。我什至没有想到。
-
如果您想要一个“仅限 vba”的答案,该答案可以扩展到任意数量的“集合”(也称为维度或类别)以及每组任意数量的成员,请参阅下面的答案。
标签: excel permutation combinations static-methods vba