gpt4 book ai didi

Excel vba 创建范围的所有可能组合

转载 作者:行者123 更新时间:2023-12-01 18:19:21 25 4
gpt4 key购买 nike

我有一个问题,我在网络上找不到任何地方(它可能在那里,但我找不到它,呵呵)。

我有一个包含 13 列数据的电子表格。每列都包含需要进入整体测试用例的参数的变体。

它们都不同,例如

E:
101%
105%
110%
120%

J:
上S
上行L
缺点B
高级V

我已经看到了几种使用嵌套循环来解决组合问题的解决方案。我想避免 13 个嵌套循环(但这是我目前最好的选择)。我有点不知道如何在每列中生成每个独特的组合。

我不确定这对你们来说是否足够有意义。我希望有人至少可以用递归算法为我指明正确的方向。我想让它足够动态以容纳不同数量的列和行。

感谢你们给我的任何帮助。

最佳答案

由于我提供了 ODBC 方法,我认为我应该详细说明它,因为如何做到这一点并不是立即显而易见的。而且,老实说,我需要重新学习这个过程并为自己记录下来。

这是生成 Cartesian product 的方法使用 Excel 和 Microsoft Query 生成两个或多个一维数据数组。

这些说明是用 XL2007 编写的,但应该适用于任何版本中的微小(如果有)修改。

步骤 1

按列组织数组。

重要提示:每列应有两个“标题”名称,如下粗体所示。最上面的名称稍后将被解释为“表名称”。第二个名称将被解释为“列名称”。这将在几个步骤后变得明显。

依次选择每个数据范围,包括两个“标题”,然后点击 Ctrl+Shift+F3 。仅勾选Top row在“创建名称”对话框中,然后单击 OK

建立所有命名范围后,保存文件。

enter image description here

步骤 2

数据|获取外部数据 |来自其他来源|来自微软查询

选择<New Data Source> 。在 Choose New Data Source对话框:

  1. 为您的连接起一个友好的名称

  2. 选择适当的 Microsoft Excel 驱动程序

...然后Connect

enter image description here

步骤 3

Select Workbook...然后浏览找到您的文件。

enter image description here

步骤 4

从“表”中添加“列”。您现在可以明白为什么步骤 1 中的“两个 header ”布局很重要 - 它会诱使驱动程序正确理解数据。

下一步点击Cancel (真的吗!)。此时系统可能会提示您“继续在 Microsoft Query 中编辑吗?” (答案 Yes ),或者提示连接无法在图形编辑器中表示。忽略这一点并继续前进......

enter image description here

步骤 5

Microsoft Query 打开,默认情况下您添加的表将被交叉连接。这将生成笛卡尔积,这正是我们想要的。

现在完全关闭 MSQuery。

enter image description here

第 6 步

您将返回到工作表。快完成了,我保证!勾选New worksheetOK .

enter image description here

步骤 7

返回交叉连接的结果。

enter image description here

关于Excel vba 创建范围的所有可能组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com