excel二维表和一维表的区别(一维表转二维表)

先前的问题,也是多次有人询问的 一个需求:一维表怎么快速转成二维表?

我用的版本是 Excel 2016,其他版本的界面可能略有不同。

案例:

怎么把下表 1 转成下表 2?

excel二维表和一维表的区别(一维表转二维表)(1)

excel二维表和一维表的区别(一维表转二维表)(2)

解决方案:

1. 增加辅助列 C 和 D,公式分别如下:

=COUNTIF(A$1:A1,A1)

=INDEX(A:A,SMALL(IF($C:$C=1,ROW($A:$A),4^8),ROW(1:1)))&""

  • 这两个辅助列的目的是生成一个去重去空的队名列表
  • D 列为数组公式,需要按 Ctrl Shift Enter 生效
  • 具体公式释义请参见 去除Excel下拉菜单中的空值和重复值 和 Excel下拉菜单去空/去重(填坑贴)

excel二维表和一维表的区别(一维表转二维表)(3)

excel二维表和一维表的区别(一维表转二维表)(4)

2. 在 F 列输入如下公式,目的是把 D 列的竖表变为横表:

=INDIRECT("D"&COLUMN(A1))

  • 关于这段 indirect 函数的释义,请参见 Excel indirect 函数(1) - 将一列数据排列成m行*n列

excel二维表和一维表的区别(一维表转二维表)(5)

3. 在 F2 单元格输入如下公式,按 Ctrl Shift Enter 生效,向下向右拖动公式,即可完成整张表格:

=INDEX($B:$B,SMALL(IF(F$1=$A:$A,ROW($B:$B),4^8),ROW(1:1)))&""

  • 表示当 A 列的队名与 F1 至 L1 相同时,按列读出队员名,否则返回空值
  • 这是数组公式,需要按 Ctrl Shift Enter 生效
  • 万能数组公式 index small if row 的释义请参见 去除Excel下拉菜单中的空值和重复值

excel二维表和一维表的区别(一维表转二维表)(6)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页