【问题标题】:Convert Excel columns into rows (text data, not numbers)将 Excel 列转换为行(文本数据,而不是数字)
【发布时间】:2023-03-17 09:00:01
【问题描述】:

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

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

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

会员 1 | AAA |血脑屏障 | CCC | DDD |电子电气设备 | FFF
会员 2 |血脑屏障 | ZZZ | FFF | AAA | RR | SSS
会员 3 |年年 | FFF |噢噢噢嗯|购买力平价 | 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,但这似乎仅适用于数值而不适用于文本。

任何人都可以给我的任何帮助将不胜感激,我不知道如何做到这一点。提前非常感谢!

【问题讨论】:

    标签: excel row swap transpose


    【解决方案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 或 2010 的 Professional Plus 版本,则可以从此处下载 Power Query 加载项。

    第一步:选择所有数据,按Ctrl+T创建表格,在创建表格下,确保选中My table has headersSample data create table dialog

    第 2 步:在 Excel 2016 中,转到 数据 |获取和转换 |从表。对于 Excel 2013 和 2010 的 Power Query 加载项,请在 Power Query 选项卡功能区中查找显示 From Table 的内容。 Ribbon location for "From Table"

    第 3 步:将打开 Power Query 界面。单击编号列的标题,按住 Ctrl 键并单击名称列的标题。现在选择了两列,右键单击标题并选择Unpivot Other ColumnsRight Click, Unpivot Other Columns screencap

    第 4 步:请注意,数据现在是未透视的(这正是您想要的)。双击 AttributeValue 标题以重命名它们。

    第 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.

    新数据将立即更新。

    【讨论】:

      【解决方案2】:

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

      对于那些感兴趣的人,我只是将六列复制到 Sublime Text 中,对每列之间的间隙/空格/制表符进行了查找和替换,并将这个间隙变成了一个返回/换行。这给了我一个巨大的变量列表。

      然后我在第一列(成员 ID)中复制,选择所有行并执行“将选择拆分为行”,这在每行的末尾给了我一个光标。然后我只选择每一行并复制 -> 返回 -> 粘贴,六次。这给了我一个巨大的列表,每个会员 ID 出现了六次。

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

      【讨论】:

        【解决方案3】:

        这应该是可行的,尝试将 excel 文件保存为 csv,然后编写一个脚本以根据您的喜好格式化该 csv,然后将 csv 导入 excel。

        有许多脚本语言,如 bash、powershell、python 以及如何使用它们进行不同操作的教程。 Python 对初学者很友好。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多