由于我提供了一种 ODBC 方法,因此我认为我应该详细说明它,因为如何做到这一点并不是很明显。而且,老实说,我需要重新学习这个过程并为自己记录下来。
这是一种使用 Excel 和 Microsoft Query 生成两个或多个一维数据数组的笛卡尔积的方法。
这些说明是用 XL2007 编写的,但应该在任何版本中进行微小的(如果有的话)修改。
第1步
按列组织数组。
重要提示:每一列都应该有两个“标题”名称,如下面的粗体所示。最上面的名称稍后将被解释为“表名”。第二个名称将被解释为“列名”。这将在几步之后变得明显。
依次选择每个数据范围,包括两个“标题”,然后点击Ctrl+Shift+F3
。仅Top row
在“创建名称”对话框中打勾并单击OK
。
建立所有命名范围后,保存文件。
第2步
数据 | 获取外部数据 | 从其他来源 | 来自微软查询
选择<New Data Source>
。在Choose New Data Source
对话框中:
连接的友好名称
选择适当的 Microsoft Excel 驱动程序
... 然后Connect
第 3 步
Select Workbook...
然后浏览您的文件。
第4步
从“表格”中添加“列”。您现在可以看到为什么第 1 步中的“双标头”布局很重要——它诱使驱动程序正确理解数据。
下一步单击Cancel
(真的!)。此时可能会提示您“继续在 Microsoft Query 中编辑?” (答案Yes
),或加入的投诉无法在图形编辑器中表示。忽略这一点,继续前进……
第 5 步
Microsoft Query 将打开,默认情况下,您添加的表将被交叉连接。这将生成一个笛卡尔积,这正是我们想要的。
现在完全关闭 MSQuery。
第 6 步
您将返回到工作表。快完成了,我保证!勾选New worksheet
和OK
。
第 7 步
返回交叉连接的结果。