如何将列数据转换为行,按标识符分组

rom*_*ull 1 microsoft-excel microsoft-excel-2010

我有如下所示的两列数据,我需要为每个人将它们水平排列成一行。

Baker   17                              
Baker   37                              
Baker   28                              
Baker   49                              
Baker   27                              
Baker   44                              
Baker   47                              
Baker   32                              
Baker   29                              
Boley   13                              
Boley   46                              
Boley   10                              
Boley   35                              
Boley   32                              
Boley   49                              
Boley   18                              
Boley   47                              
Boley   22                              

Baker   17  37  28  49  27  44  47  32  29
Boley   13  46  10  35  32  49  18  47  22
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Exc*_*lll 5

  1. 列出来自 Column 的所有唯一条目A。在此示例中,只需键入两个名称即可。对于更大的数据集,您可以将该列复制到您的目标位置,然后只需使用“删除重复项”工具来缩减列表。

  2. 在新列表中的名字的右侧(我的从 开始F1,所以我在 中有以下内容G1),通过按Ctrl+ Shift+输入以下公式作为数组公式Enter

    =IFERROR(INDEX($B$1:$B$18,SMALL(IF($A$1:$A$18=$F1,ROW($B$1:$B$18),""),COLUMN()-COLUMN($F1))),"")
    
    Run Code Online (Sandbox Code Playgroud)

作为参考,A1:A18是您的原始姓名列表、B1:B18它们对应的编号以及F1新表中的名称“贝克”。只要你喜欢,把它填到右边。然后,填写以完成您的表格。

注意:如果您的原始数据不是从 Row 开始1,请改用以下公式,A1原始数据的左上角单元格在哪里:

=IFERROR(INDEX($B$1:$B$18,SMALL(IF($A$1:$A$18=$F1,ROW($B$1:$B$18)-ROW($A$1)+1,""),COLUMN()-COLUMN($F1))),"")
Run Code Online (Sandbox Code Playgroud)