Excel 实现多列数据的排列组合

在编辑Excel文件的工作中遇到一个需求,需要对多列数据进行排列组合,每列数据比较多,可能有几十上百个,如果手动进行一个一个的排列组合费时费力不说,还容易有缺漏重复,于是我就想如果能在表内实现自动排列就好了。因此,我上网查了很多相关教程,其中不乏能有效解决需求的,但这些方法要么是得用代码的,要么是步骤复杂的,都不够方便快捷,在经过多次摸索尝试后,终于总结出了如下解决方案。

两列数据的排列组合

公式

TOCOL(列一单元格范围&TOROW(列二单元格范围))

示例

如果想把下表的A、B两列数据进行排列组合,并将结果罗列在列C,那么需要在C2单元格内输入 =TOCOL(A2:A4&TOROW(B2:B4))

输入完成后按下回车键应用公式,其结果便会自动更新进相应单元格

三列数据的排列组合

公式

TOCOL(TOCOL(列一单元格范围&TOROW(列二单元格范围))&TOROW(列三单元格范围))

示例

如果想把下表的A、B、C三列数据进行排列组合,并将结果罗列在列D,那么需要在D2单元格内输入 =TOCOL(TOCOL(A2:A4&TOROW(B2:B3))&TOROW(C2:C4))

输入完成后按下回车键应用公式,其结果便会自动更新进相应单元格

更多列数据的排列组合

根据上述两个公式不难发现规律,多列数据的排列组合公式实际上是对公式 TOCOL(列一&TOROW(列二)) 的嵌套使用,公式中“列一”就是嵌套的位置。由此可得:

  • 四列数据排列组合公式:
    TOCOL(TOCOL(TOCOL(列一&TOROW(列二))&TOROW(列三))&TOROW(列四))
  • 五列数据排列组合公式:
    TOCOL(TOCOL(TOCOL(TOCOL(列一&TOROW(列二))&TOROW(列三))&TOROW(列四))&TOROW(列五))
  • ……

核心公式解析

上述这些虽然这些公式看起来有点复杂,但是其最核心的公式只有两个:TOCOL()TOROW()

TOCOL 公式

TOCOL() 以一列的形式返回数组,即可将指定区域内所有单元格的数据排列为一列数据。其中小括号内需填写单元格范围。例如:

  • 一行数据转一列数据:TOCOL(A1:C1)
  • 多行数据转一列数据:TOCOL(A1:B4)
  • 一列数据与一行数据组合后转为一列数据:TOCOL(A2:A4&B1:C1)

点此了解更多有关 TOCOL 的细节

TOROW 公式

TOROW() 以一行的形式返回数组,即可将指定区域内所有单元格的数据排列为一行数据。其中小括号内需填写单元格范围。例如:

  • 一列数据转一行数据:TOROW(A1:A3)
  • 多列数据转一行数据:TOROW(A1:B4)
  • 一列数据与一行数据组合后转为一行数据:TOROW(A2:A4&B1:C1)

点此了解更多有关 TOROW 的细节

& 运算符

除了上述两个公式之外,还有一个必不可少的符号参与了公式运算,那就是 &

当在公式 TOCOL()TOROW() 的小括号内使用 & 连接了一列数据和一行数据时,公式会将这两组数据进行排列组合,得出一组新的数据,再将其以一列或一行的形式展示。以 TOCOL(A2:A4&B1:C1) 为例,假设其中“A2:A4”所指向的一列数据是“A、B、C”,“B1:C1”所指向的一行数据是“1、2”,则该公式将会先得出“A2:A4&B1:C1”的计算结果为“A1、A2、B1、B2、C1、C2”,然后再将其以一列的形式展示。

通过公式和运算符的搭配使用,能很方便地将两组数据进行排列组合得到一组新的数据。如果将这组新数据再与另一组数据重复一遍使用过程,便实现了三组数据的排列组合。那如果拿结果再与其它数据重复一遍呢?当然是实现了四组数据的排列组合。依照着这个思路下去,更多列数据的排列组合公式也就显而易见了。

留下评论