如何在Power Query中执行交叉连接或生成笛卡尔积
使用Power Query实现两个表格的全组合(笛卡尔积)
当然可以用Power Query实现这种两个表格的全组合(也就是笛卡尔积),下面是两种简单可行的方法:
方法一:添加自定义列并展开
假设你已将两个表格加载到Power Query中,表1命名为客户表(包含customer a、customer b、customer c),表2命名为产品表(包含product 1、product 2):
- 选中
客户表进入Power Query编辑器,切换到添加列选项卡,点击自定义列 - 在弹出的公式输入框中输入:
产品表,点击确定。此时会生成一个嵌套列,每个客户行对应包含所有产品行的子表 - 点击这个嵌套列标题右侧的展开图标,选择展开到新行,即可将每个客户与所有产品一一配对
- 最后按需整理列名、删除冗余列,就能得到你想要的组合结果
方法二:通过辅助列实现合并查询
如果你的表格数据量较大,这种方法也适用:
- 分别给
客户表和产品表添加一个辅助列,列名设为匹配键,所有行的值都设为1 - 选中
客户表进入Power Query编辑器,点击合并查询,选择产品表作为合并对象,匹配条件选择两个表的匹配键,连接类型选择完全外部 - 展开合并后的产品表列,然后删除两个表的
匹配键列,同样能得到全组合的结果
用你的示例数据操作后,最终会生成6行数据:
customer a + product 1、customer a + product 2、customer b + product 1、customer b + product 2、customer c + product 1、customer c + product 2
内容的提问来源于stack exchange,提问作者user20072374
相关产品推荐
相关产品推荐

