将多个excel列拆分为行

Posted

技术标签:

【中文标题】将多个excel列拆分为行【英文标题】:Split multiple excel columns into rows 【发布时间】:2014-06-06 20:50:49 【问题描述】:

我有一个包含如下数据的电子表格:

98929     11.38      3.39      9.10
98930     15.24      2.86      7.05

每个值都在单独的列中。我需要它像这样显示:

98929     11.38
          3.39
          9.10
98930     15.24
          2.86
          7.05

这可能吗?

【问题讨论】:

***.com/a/10922351/293078 【参考方案1】:

有一个 TRANSPOSE 数组函数可以用来转置数据,但是对于大多数情况我发现使用 copy->paste-special->transpose 更容易。

http://www.techrepublic.com/blog/microsoft-office/transpose-excel-data-from-rows-to-columns-or-vice-versa/

编辑: 根据您想要的数据结构,使用数据透视表可能是重塑数据的一种相对简单的方法。假设如下数据结构

Key       a       b       c
98929   11.38   3.39    9.1
98930   12.38   4.39    10.1
98931   13.38   5.39    11.1

根据您的数据添加数据透视表并

    将“键”添加到行部分 将“a”、“b”、“c”(等)添加到值部分 将“值”条目(即求和符号)移动到行部分 关闭小计、总计,并使用“表格”布局

这是一张图片,如果上面的文字不清楚。

这将取决于您的 Excel 版本,但在功能区中,单击“设计”选项卡并选择数据透视表,然后在上方的小计和总计选项下选择“不显示”左上角,然后选择报表布局下的“表格”选项。

【讨论】:

谢谢,我确实试过了,但是我有几百行,而且要花很长时间才能一一完成。它似乎不允许我一次做一个以上的事情。另外,我需要维护第一列中的数据。【参考方案2】:

这是一种解决方案,假设您的“Key”值大于 9000,而其他列值不是(更一般地说,假设“Key”和其他列之间没有交集)。

使用文本编辑器 NotePad++ 将所有列合并到一个唯一的行中。见here,怎么做。

然后,将这一独特的行转换为一个独特的列。例如,在 B 列上转置,从单元格 B3 开始。然后,在单元格 A3 上输入:

=IF(B3>9000,"Delete This Row",IF(OFFSET(A3,-1,1)>9000,OFFSET(A3,-1,1),"")) 

将公式向下拖动到 A 列中 B 列有数据的所有行。

它应该产生类似这样的结果:

好的,现在按“删除此行”值过滤列 A,并删除所有过滤后的行。

【讨论】:

以上是关于将多个excel列拆分为行的主要内容,如果未能解决你的问题,请参考以下文章

Pyspark:将多个数组列拆分为行

Pyspark:将多个数组列拆分为行

将excel根据列名称拆分成多个文件

将数组列拆分为行pyspark

mysql - 动态地将列拆分为行

BigQuery 将“字节”列拆分为行