Excel - 从列A中过滤唯一值,并将相关值从列B移动到其他列

时间:2015-12-02 18:33:29

标签: excel excel-vba vba

我有这样的优秀

Col1 - Col2
A - 1
B - 2
A - 3
B - 4
A - 5

我想从上面创建一个excel,如下所示

Col1 - Col2 - Col3 - Col4
A - 1 - 3 - 5
B - 2 - 4

excel有没有办法做到这一点?

请帮忙

1 个答案:

答案 0 :(得分:1)

这是使用公式来实现它的方法。它首先需要一些格式化,因此可能将数据复制到新工作表,然后进行调整。

首先,从列A中获取唯一值。在您的示例中,这些值为AB。 (对于长列表,请将列A复制到某个随机列。选择该列,转到数据 - >删除重复项。这将为您提供唯一列表。)

获得列表后,将其放在D列(例如)中。然后,在E列中输入此公式作为数组(使用 CTRL + SHIFT + ENTER 输入):

=IFERROR(INDEX($B$1:$B$6,SMALL(IF($A$1:$A$6=$D1,ROW($A$1:$A$6)-ROW($A$1)+1),ROWS(INDIRECT("$A$1:A"&COLUMN()-4)))),"")

一些注意事项:根据需要调整第1行到第6行的范围。此外,如果您选择列E以外的列来放入此列,请调整末尾的Column()-4部分,以便列号减去另一个数字(在我的示例中为4)等于1。 (在我的公式中,Column()返回5(表示“E”),5-4 = 1。

然后你可以向上和向下拖动,它应该可以工作。

enter image description here