You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel中实现A列表值对应B列表每个值重复生成新列表的方法及操作名称咨询

Excel中实现A列表值对应B列表每个值重复生成新列表的方法及操作名称咨询

嗨Arun!你提到的这种将两个列表的元素进行全配对重复生成新列表的操作,正式名称是笛卡尔积(Cartesian Product)——它的作用就是生成两个集合中所有可能的元素有序对,刚好符合你想要的效果。下面我给你几种在Excel里实现的实用方法:

方法一:动态数组公式法(适合Excel 365/2021及以上版本)

这种方法操作简单,公式会自动生成所有结果,不用手动下拉填充:

  • 假设你的列表A在单元格区域A2:A5,列表B在B2:B4
  • 如果想要生成「A的每个元素对应B的所有元素」的组合(比如A1+B1、A1+B2、A1+B3、A2+B1……),可以用以下公式生成合并后的单列表:
    =TOROW(A2:A5&" "&B2:B4,2)
    (这里的" "是元素之间的分隔符,你可以换成自己需要的符号,比如","或者直接去掉分隔符写成A2:A5&B2:B4)
  • 如果想要生成两列分别显示A和B元素的组合,用这个公式:
    =HSTACK(TOCOL(A2:A5,REPT(ROWS(B2:B4))),TOCOL(B2:B4,REPT(ROWS(A2:A5))))
  • 要是你需要反过来,让B的每个元素对应A的所有元素,只需要调整两列的顺序即可。

方法二:传统公式法(适合旧版Excel)

如果你的Excel不支持动态数组,可以用索引公式手动下拉生成:

  • 在单元格C2输入公式:
    =INDEX($A$2:$A$5,INT((ROW()-2)/ROWS($B$2:$B$4))+1)
  • 在单元格D2输入公式:
    =INDEX($B$2:$B$4,MOD(ROW()-2,ROWS($B$2:$B$4))+1)
  • 选中C2:D2,下拉填充直到出现错误值,就得到了所有的配对组合。

方法三:Power Query法(适合大数据量)

如果你的列表元素很多,用Power Query效率更高:

  • 选中列表A的区域,点击「数据」选项卡的「从表格/区域」,在弹出的对话框里勾选「我的表格有标题」(如果有标题的话),进入Power Query编辑器,暂时不要加载到工作表。
  • 用同样的方法把列表B也加载到Power Query编辑器。
  • 回到列表A的查询界面,点击「添加列」→「自定义列」,在弹出的编辑框里输入公式:=Table.AddColumn(当前查询名, "B列", each 查询B)(把「当前查询名」换成列表A的查询名称,「查询B」换成列表B的查询名称)。
  • 点击自定义列右侧的展开按钮(两个箭头的图标),选择「展开所有行」,就能看到所有配对组合了。
  • 最后点击「关闭并上载」,把结果导出到Excel工作表即可。

备注:内容来源于stack exchange,提问作者Arun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 14:29:36