如何在电子表格中组合多个可能包含或不包含相同信息的列?

好吧,我不知道怎么说这个,所以我会显示我想要做的。

| A | | B | | C | | | Bob | 1 | John | 4 | Bob | 7 | | John | 3 | Sally | 2 | John | 3 | | Sally | 7 | | | Sally | 3 | | Chris | 3 | | | Hana | 9 | | | | | | Ruth | 6 | 

我想把它们全部按名称组合起来,就像这样…

 | | A | B | C | | Bob | 1 | 4 | 7 | | John | 3 | | 3 | | Sally | 7 | 2 | 3 | | Hana | | | 9 | | Ruth | | | 6 | | Chris | 3 | | | 

最简单的方法是什么? 我可以访问OpenOffice Calc,Microsoft Excel和Google Spreadsheet。

先谢谢你。

既然你不想剪切和粘贴,我认为这是:

a)大量数据,或者b)经常需要做的事情,

或两者。 知道哪些会帮助我。

在大多数情况下,您将首先创build一个名称列表,方法是复制到另一个位置,然后使用删除重复项。

2)创build两个如下所示的表格: 表的图片

将这些公式复制下来:

 I2: =VLOOKUP(H2,$A$2:$B$7,2,FALSE) J2: =VLOOKUP(H2,$C$2:$D$7,2,FALSE) K2: =VLOOKUP(H2,$E$2:$F$7,2,FALSE) 

向量化表格后,可以使用数据透视表。 这种方法的优点是,最终的结果是自动更新任何更改 (在您按下Pivot-Table上的“刷新”之后)。 这是你如何做到的:

  1. 并在每个值列之后的另一列, ABC重复到表的结尾。 这可以很快完成,我想这不会是一个问题。

  2. 将表的所有范围定义为命名范围(以下data ),并使用以下公式将其全部向量化:

    =OFFSET(data,TRUNC((ROW()-ROW($K$2))/COLUMNS(data)),MOD(ROW()-ROW($K$2),COLUMNS(data)),1,1)

    $K$2是向量的第一个单元格(粘贴公式的地方),并且只需要一直向下压缩,直到达到数据的末尾:

    结合列

    在这个例子中,列K具有表中的所有值。

  3. 用三个简单的公式将vector分解为三列(并给列索姆有意义的名字):

    在上面的列L=IF(AND(ISTEXT($K2),LEN($K2)>1),$K2,"")
    在上面的列M=IF(AND(ISTEXT($K2),LEN($K2)>1),$K4,"")
    在上面的列N=IF(AND(ISTEXT($K2),LEN($K2)>1),$K3,"")

    我在这里假设你可以通过一个规则来区分什么是一个Name和等同于A,B,C 。 如果上述逻辑规则不符合您的具体情况,请更改以匹配您的数据。

  4. 根据这个列创build一个数据透视表,按照你的想法将它们交叉列表:

    枢

如果您需要更多解释,请随时发表评论;)