将列中的一组相同值分隔到excel中的不同列

时间:2015-08-18 14:55:33

标签: excel

我使用什么公式将一列中相同的值传输到不同的列? 我还想将它与下一列的值配对。

Column A    Column B
CAR           10
CAR            5
BUS           20
Bus           30

结果应为

Column A     Column B    column C    column D
CAR            10          Bus          20
CAR             5          Bus          30

1 个答案:

答案 0 :(得分:0)

它不是最漂亮的,但你可以在你想要结果的每个单元格中做这些方程式。这将在A列中查找并返回值CAR以进行匹配。只需估算将返回多少个值。例如,将该等式复制并粘贴到第1-10行的第2页的A列中。如果没有匹配则返回空白。

=IFERROR(INDEX($A$1:$A$4, SMALL(IF("CAR"=$A$1:$A$4, ROW($A$1:$A$4)-MIN(ROW($A$1:$A$4))+1, ""), ROW($A1))), "")

INDEX之后更改数组以更改返回的内容。将此等式放在B列第1-10行中,以返回等效数值。

=IFERROR(INDEX($B$1:$B$4, SMALL(IF("CAR"=$A$1:$A$4, ROW($A$1:$A$4)-MIN(ROW($A$1:$A$4))+1, ""), ROW($A1))), "")

这些方程需要输入为Ctrl+Shift+Enter

的数组公式

然后更改每个值的等式以进行检查。

=IFERROR(INDEX($A$1:$A$4, SMALL(IF("BUS"=$A$1:$A$4, ROW($A$1:$A$4)-MIN(ROW($A$1:$A$4))+1, ""), ROW($A1))), "")

 =IFERROR(INDEX($B$1:$B$4, SMALL(IF("BUS"=$A$1:$A$4, ROW($A$1:$A$4)-MIN(ROW($A$1:$A$4))+1, ""), ROW($A1))), "")

更新: 通过VBA实现这一目标会更容易,但我能想到的一种方法是使用

AA2=IFERROR(INDEX($A$2:$A$4, MATCH(0, COUNTIF($AA$1:AA1, $A$2:$A$4), 0)), "")

创建所有唯一值的新列表。此等式必须放在第2行而不是第1行,并使用Ctrl+Shift+Enter输入。将此等式复制到比您具有唯一值的行更多的行中。然后将查找的值更改为此新列。因此,将"CAR"更改为...IF($AA$2=$A1:$A$4并将"BUS"更改为...IF($AA$3=$A1:$A$4...