夜雨聆风学习资料网

ARTICLE · 1016348

Excel中二维表转一维表

Excel中二维表转一维表

有时我们需要将二维表格转换成一维表格,方便后继筛选数据。需求如下图

二维转一维

在 F1 单元格输入公式

=HSTACK(    TOCOL(IF(B2:D4<>"",A2:A4)),    TOCOL(IF(B2:D4<>"",B1:D1)),    TOCOL(B2:D4)    )

即可得到想要的结果。

广播原理(数组 IF 核心)

当两个数组维度不一样:

  • 行数相同,列数不同:列方向广播(把窄数组复制多列)
  • 列数相同,行数不同:行方向广播(把短数组复制多行)

A2:A4(3 行 1 列) + B2:D4(3 行 3 列) → 列广播,A 列复制 3 份。

其思路如下:

  • 先利用数组IF广播,跟根据二维表的值得到对应的行标题跟列标题。
  • 再用TOCOL函数,将数组转换为列向量。
  • 最后用HSTACK函数,3列数据合并成一维表。

空值处理

当上面的二表中存在空值时,此时行标和列标题会显示为 FALSE ,值列会显示 0 , 如果我们想要行标和列标正常显示,值显示为空。可以对公式如做下修改:

=HSTACK(    TOCOL(IF(B2:D4<>"",A2:A4,A2:A4)),    TOCOL(IF(B2:D4<>"",B1:D1,B1:D1)),    TOCOL(IF(B2:D4<>"",B2:D4,""))    )

相关学习资料