如何在Power Query中实现用户与日期表的全量配对?
在Power Query中实现两表的笛卡尔积(全配对)
你需要的是生成两个表的笛卡尔积(即每个日期与每个用户名一一配对),以下是两种实现方法:
方法一:可视化操作步骤
- 打开Power Query编辑器,确保
表1(用户名表)和表2(日期表)已加载到查询列表中。 - 选中
表2,点击顶部菜单栏主页 → 合并查询 → 合并查询作为新查询。 - 在合并对话框中:
- 第一个表选择
表2,第二个表选择表1; - 不要选择任何匹配列(保持两表的列都处于未选中状态);
- 合并类型选择完全外部,点击确定。
- 第一个表选择
- 此时新查询会新增一列嵌套的
表1数据,点击该列标题右侧的展开箭头,勾选Username列,取消「使用原始列名作为前缀」,点击确定。 - 按需调整列的顺序,即可得到目标表。
方法二:直接编写M代码
如果偏好代码方式,可新建空白查询,粘贴以下M代码(注意替换表名为你实际的表名称):
let // 给日期表添加一列,每行填充所有用户名的列表 添加用户名列表 = Table.AddColumn(表2, "Username", each 表1[Username]), // 展开列表列为多行,生成所有配对 展开用户名 = Table.ExpandListColumn(添加用户名列表, "Username") in 展开用户名
说明
两种方法都会保留原表中的重复项(比如表2里的重复日期),生成与你目标表一致的结果。
内容的提问来源于stack exchange,提问作者Serge Inácio
相关产品推荐
相关产品推荐

