合并不同的列

时间:2015-09-01 07:24:11

标签: excel excel-formula

我有多个列表在excel的不同列中。我需要做的是将这些数据列组合成一个大列。我不在乎是否有重复的条目。下面,我刚刚显示了3列,但实际数据有20列。列不连续,我想避免在最终输出中打印空格。

<> 1

应该像这样结合成一列

      A   B   C 
      _   _   _
ROW1| R   U   X       
ROW2| S   V   Y   
ROW3| T   W   Z  

1 个答案:

答案 0 :(得分:0)

为简单起见,我假设你的原始数据在sheet1中,你想要在sheet2中输出,从A1开始向下。理想情况下,这是一个VBA项目,但您已经要求提供公式版本 - 这是可能的,但数据越动态(更改列,更改行长度等),这就越复杂。

首先,在sheet2上,您需要确定哪些列包含您的数据。因此,在从D开始并向下的D列中,手动键入这些列,如下所示:

="A:A"
="B:B"
="E:E"

除了每个列之外,您还需要计算每个列中的行数。使用COUNTA函数执行此操作,该函数计算所有非空单元格[我假设您的数据在sheet1中是连续的,没有空行]。我们还将使用INDIRECT函数来确定要查看的列。所以把它放在E1中,然后向下拖动:

=COUNTA(INDIRECT("'Sheet1'!"&B1))

然后我们想要总计到目前为止我们有多少行,一列接着另一列。将其放入F2并向下拖动[F1 hardcode as 0]:

=SUM($E$1:E1)+.01

在B列中,我们现在将显示从哪个列中提取行的数据,如[从B1开始并向下复制]:

=INDEX(D:D,MATCH(ROW(),F:F,1))

在C栏中,我们现在将显示从[从C1开始并向下复制]中拉出数据的行:

=COUNTIF($B$1:B1,B1)

在A1中并向下拖动与数据一样多的总单元格,输入以下内容[从A1开始,然后向下拖动]:

=INDEX(INDIRECT("'Sheet1'!"&B1),C1)

这看起来像很多设置 - 因为它是。如果您没有将VBA用于此类操作,则需要进行大量数据操作。