无需宏与外部工具:在Excel中从多主表生成合并产品表
用Excel原生功能实现多主表合并生成产品信息表(无宏/外部工具)
完全可以通过Excel内置功能实现需求,以下是两种实用方案:
方法一:Power Query(推荐,适合批量/可更新场景)
1. 结构化数据源
将两个主表转化为Excel结构化表:
- 选中产品类型主表的所有数据(含表头),按
Ctrl+T,勾选「表包含标题」后确定,可将表命名为ProductTypes(在「表格设计」选项卡的表名称框修改)。 - 对产品颜色主表重复上述操作,命名为
ProductColors。
2. 创建交叉连接查询
- 选中任意一个结构化表,切换到「数据」选项卡,点击「从表格/区域」打开Power Query编辑器。
- 在编辑器中,点击「主页」→「合并查询」→「合并查询作为新查询」。
- 在合并窗口中:
- 第一个表选择
ProductTypes; - 第二个表选择
ProductColors; - 无需选择匹配列(核心操作:生成所有组合);
- 连接类型选择「交叉连接(所有行)」;
- 点击「确定」,得到包含两个表所有列的交叉组合表。
- 第一个表选择
3. 生成目标字段
- 点击「添加列」→「自定义列」,输入公式生成「产品」列:
将列名改为「产品」后确定。[产品类型编码] & "-" & [颜色编码] - 再次添加自定义列,生成「描述」列:
将列名改为「描述」后确定。[颜色名称] & [描述]
4. 清理并加载结果
- 选中不需要的原始列(产品类型编码、原「描述」列、颜色编码、颜色名称),右键选择「删除」。
- 点击「主页」→「关闭并上载」,结果会自动加载到新工作表。后续主表数据更新后,右键结果表→「刷新」即可同步更新。
方法二:数组公式(备选,适合小数据量场景)
如果不想使用Power Query,可通过数组公式实现(Excel 365及以后版本直接回车,旧版本需按Ctrl+Shift+Enter确认):
假设产品类型主表在Sheet1的A2:B3(A列=产品类型编码,B列=描述),产品颜色主表在Sheet2的A2:B4(A列=颜色编码,B列=颜色名称):
在结果表
A2单元格输入公式生成「产品」列:=INDEX(Sheet1!$A$2:$A$3,INT((ROW()-2)/COUNTA(Sheet2!$A$2:$A$4))+1) & "-" & INDEX(Sheet2!$A$2:$A$4,MOD(ROW()-2,COUNTA(Sheet2!$A$2:$A$4))+1)下拉填充至所有组合行。
在结果表
B2单元格输入公式生成「描述」列:=INDEX(Sheet2!$B$2:$B$4,MOD(ROW()-2,COUNTA(Sheet2!$B$2:$B$4))+1) & INDEX(Sheet1!$B$2:$B$3,INT((ROW()-2)/COUNTA(Sheet2!$B$2:$B$4))+1)下拉填充至所有组合行。
内容的提问来源于stack exchange,提问作者Aundre
相关产品推荐
相关产品推荐

