Excel - 将 a 列和 b 列的每个组合合并到 d 列和 e 列

Excel - 将 a 列和 b 列的每个组合合并到 d 列和 e 列

我甚至不知道该如何提出这个问题。所以我截取了我想要完成的事情的屏幕截图。

在此处输入图片描述

我想将列 a 和 b 的每种组合输出到列 d 和 e。我已经看到过许多关于如何将 a 和 b 组合成一列的示例,但我需要将它们组合成单独的列。

我确信这是可能的,我只是不知道该搜索什么

答案1

兩個公式。

将其放入 D1 并复制下来:

=IFERROR(INDEX($A$1:INDEX(A:A,COUNTA(A:A)),INT((ROW(1:1)-1)/COUNTA(B:B))+1),"")

将其放入 E1 并复制下来:

=IF(D1<>"",INDEX($B$1:INDEX(B:B,COUNTA(B:B)),MOD((ROW(1:1)-1),COUNTA(B:B))+1),"")

在此处输入图片描述

答案2

使用微软的获取并转换 电动工具用于计算两个变量的笛卡尔积(或表格),如果您使用的是 Excel 2016。
(对于 Excel 2010-2013,请使用免费的 MS 插件Excel 的 Power Query

与描述的方式类似这里, 你可以

  • 在 Power Query 中将两列作为分隔表导入(Excel 2016:功能区数据 > 来自表格)
  • 然后添加一个具有相同值(例如 1)的辅助列,
  • 合并两个表
  • 保留原始导入的列

理论上,您不仅可以通过两列来制作笛卡尔积,还可以通过两张有多列的表来制作笛卡尔积。

以下是两个表的 M 代码:

表2

let
    Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column2", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "CrossColumn", each 1)
in
    #"Added Custom"

表格1

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "CrossColumn", each 1),
    #"Merged Queries" = Table.NestedJoin(#"Added Custom",{"CrossColumn"},Table2,{"CrossColumn"},"Table2",JoinKind.Inner),
    #"Expanded {0}" = Table.ExpandTableColumn(#"Merged Queries", "Table2", {"Column2"}, {"Column2"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded {0}",{"CrossColumn"})
in
    #"Removed Columns"

相关内容