将Excel列转换为行(文本数据,而不是数字)

时间:2015-03-11 03:45:53

标签: excel row swap transpose

我在Excel中有一个电子表格,在第一列中包含一个“成员ID”,在接下来的六列中有六个与此成员ID相关的变量。

我需要以某种方式将这些列转换为行,但仍然在每行的开头都有成员ID列。

这是现有数据(有5000行,因此希望找到自动化解决方案):

会员1 | AAA | BBB | CCC | DDD | EEE | FFF
会员2 | BBB | ZZZ | FFF | AAA | RRR | SSS
会员3 | YYY | FFF | OOO | MMM | PPP | AAA

这是我需要的格式:

会员1 AAA
会员1 BBB
会员1 CCC
会员1 DDD
会员1 EEE
会员1 FFF
会员2 BBB
会员2 ZZZ
会员2 FFF
会员2 AAA
会员2 RRR 会员2 SSS
会员3 YYY
会员3 FFF
会员3 OOO
会员3 MMM
会员3 PPP
会员3 AAA

我尝试按照此问题中的步骤进行操作:Split multiple excel columns into rows,但这似乎仅适用于数值而非文字。

任何人都可以给予我的任何帮助都将非常感激,我很难过如何做到这一点。非常感谢提前!

3 个答案:

答案 0 :(得分:1)

这个问题很陈旧,但是我只需要它,所以我会回答。

我在Quora上找到了Chris Chua的解决方案,如果有帮助,请在那里给他投票:https://www.quora.com/How-do-I-convert-multiple-column-data-into-a-column-with-multiple-rows-in-excel

如果链接断开,我也会在此处复制粘贴


道歉。我看不清文章,但我假设您想取消列标题作为数据集的一部分。

在这里,我建议使用Microsoft Excel的Power Query功能的解决方案。如果您有Excel 2016,则可以在“数据|获取和转换功能区命令。否则,如果您拥有Excel 2013或Professional Plus版本的2010,则可以从此处下载Power Query加载项。

第1步:选择所有数据,按 Ctrl + T 创建一个表,然后在“创建表”下,确保已选择我的表具有标题Sample data create table dialog

步骤2:在Excel 2016中,转到 Data |获取和转换|从表格开始。对于Excel 2013和2010的Power Query加载项,请在Power Query选项卡功能区中找到 From Table Ribbon location for "From Table"

第3步:打开电源查询界面。单击编号列的标题,按住Ctrl,然后单击名称列的标题。选中两列后,右键单击标题,然后选择取消其他列Right Click, Unpivot Other Columns screencap

第4步:请注意,数据现在已被透视(这就是您想要的)。双击属性标头将其重命名。

第5步:点击主页|关闭并加载Close & Load screencap

步骤6:Excel将新的清理表加载到新表上。 -,您完成了! Screencap of pivoted table, which is the desired output.

将来要更新任何新数据:

假设您现在在原始表中有新数据。 Updated sample data table screencap with a new column, row and value inserted.

转到新的清理表,右键单击并选择刷新Screencap of right-clicking inside the pivoted output table, clicking Refresh.

新数据将立即更新。

答案 1 :(得分:0)

这应该是可行的,尝试将excel文件保存为csv,然后根据自己的喜好制作脚本以格式化csv,然后将csv导入excel。

有许多脚本语言,如bash,powershell,python和有关如何使用它们的不同内容的教程。 Python对初学者友好。

答案 2 :(得分:0)

感谢Spidey的帮助。我设法使用Sublime Text而不是Excel来对其进行排序。

对于那些感兴趣的人,我只是将六列复制到Sublime Text中,做了一个发现&替换每列之间的间隙/空格/制表符,并将此间隙转换为返回/换行。这给了我一个巨大的变量列表。

然后我复制了第一列(会员ID),选择了所有行,然后将选择分成了行#34;这给了我每行末尾的光标。然后我选择了每一行并做了一个副本 - >返回 - >粘贴,六次。这给了我一个巨大的每个会员ID列表,显示了六次。

然后,只需(在Excel中)将长成员ID列表粘贴到A列中,将长变量列表(从第一步开始)粘贴到B列中。完成!