如何将多行问题和答案转换为单行多列

如何将多行问题和答案转换为单行多列

我有一个 Excel 365(2016)文件,其中包含问题/答案的行,我需要将其转换为列,如下所示。

示例 Excel

Person  Question    Answer      
Bob     Dogs Name   Rover       
Bob     Cats Name   Mewl        
Bob     Car Type    Mustang     
Bob     Own/Rent    Own     
Carol   Cats Name   Tiger       
Carol   Car Type    Ford        
Carol   Own/Rent    Rent        
Ted Own/Rent    Own     
Alice   Dogs Name   Growler     
Alice   Cats Name   Cali        
Alice   Car Type    GMC     
Alice   Own/Rent    Own     


       Dogs Name    Cats Name   Car Type    Own/Rent
Bob    Rover        Mewl        Mustang     Own
Carol               Tiger       Ford        Rent
Ted                                         Own
Alice   Growler     Cali        GMC         Own

答案1

尝试使用Power Query获得结果:

  1. 选择范围 - 转到数据 - 从范围/表格: 在此处输入图片描述

  2. 选择问题列 - 转到转换选项卡 - 选择数据透视列 - 值列选择答案 - 高级选项选择不聚合: 在此处输入图片描述

  3. 关闭并加载: 在此处输入图片描述

答案2

为了获取列和行标题,您需要生成唯一条目列表。这可以通过公式化方式实现,您可以手动输入,也可以使用功能区中名为“文本到列”的内置工具:

删除重复项

步骤1

将您想要唯一值的范围复制到单独的区域。然后选择复制的列表:

选择列

第2步

从功能区中选择删除重复项

删除重复项

步骤3

如果适用于您的范围,请单击右上角的“我的数据有标题”,然后选择确定

好的

步骤4

对另一列重复步骤 1 至 3

其他栏目

步骤5

转置要用作列标题的唯一列。选择要转置的列。右键单击并选择复制:

复制

选择标题行第一个单元格的位置。本例中为 H1。右键单击并在粘贴选项下选择转置:

转置

步骤7

填写表格。根据我所展示的例子,在 H2 中输入以下公式,然后将其向下和向右复制以填写表格:

=IFERROR(INDEX($C:$C,AGGREGATE(14,6,ROW($A$2:$A$13)/(($A$2:$A$13=$G2)*($B$2:$B$13=H$1)),1)),"")

最终结果

公式选择 14 的 AGGREGATE 在其括号内执行数组操作。因此,不要在这些括号内使用完整的列引用。注意 $C:$C 位于 AGGRGRATE 函数之外,在此可以安全地使用完整的列引用。

还有其他方法可以实现这一点。

答案3

您要找的是数据透视表。此功能可以从一列或多列中获取重复数据,并将其透视为标题。

所有现代电子表格程序都使用该名称来表示此功能,但每个程序的处理方式略有不同。Microsoft 在您的特定应用程序中提供了此功能的介绍: https://support.office.com/en-gb/article/create-a-pivottable-to-analyze-worksheet-data-a9a84538-bfe9-40a9-a8e9-f99134456576

相关内容