Excel:将表附加到另一个表,其中列相同,但行不同

Excel:将表附加到另一个表,其中列相同,但行不同

我花了几个小时才在 Excel 中将一个表附加到另一个表。我尝试了 1000 种 VLOOKUP 变体,但都没有用。我所有表的列(指标)都相同,但行不同(成员被删除)。我想将新列附加到旧表中,并获得一个包含所有年份的宽表。

表 1(2017 年)

|member|revenue|sales|profit|
|   1  |  10   |  20 |  10  |
|   2  |  10   |  20 |  10  |
|   3  |  10   |  20 |  10  |
|   4  |  10   |  20 |  10  |
|   5  |  10   |  20 |  10  |
|   6  |  10   |  20 |  10  |
|   7  |  10   |  20 |  10  |

表 2(2018 年,部分成员退出)

|member|revenue|sales|profit|
|   1  |  40   |  60 |  80  |
|   3  |  40   |  60 |  80  |
|   4  |  40   |  60 |  80  |
|   6  |  40   |  60 |  80  |
|   7  |  40   |  60 |  80  |

结果:将表 2 的所有列附加到表 1

2017                         2018
|member|revenue|sales|profit|revenue|sales|profit|
|   1  |  10   |  20 |  10  |  40   |  60 |  80  |
|   2  |  10   |  20 |  10  |  NA   |  NA |  NA  |
|   3  |  10   |  20 |  10  |  40   |  60 |  80  |
|   4  |  10   |  20 |  10  |  40   |  60 |  80  |
|   5  |  10   |  20 |  10  |  NA   |  NA |  NA  |
|   6  |  10   |  20 |  10  |  40   |  60 |  80  |
|   7  |  10   |  20 |  10  |  40   |  60 |  80  |

答案1

在此处输入图片描述

注意:

在单元格填充右侧写入此数组公式E218,然后按F2& 完成Ctrl+Shift+Enter。然后向下填充以获取结果。

{=IFERROR(VLOOKUP(A218,$A$210:$D$215,{2,3,4},FALSE),"No Match")}

怎么运行的:

  • {2,3,4}按顺序读取第 2 列至第 4 列数组常量,它们通常在数组公式中使用,以便一次操作多个值,而不是单个值。
  • 根据需要调整公式中的单元格引用。
  • 您可以替换No Matchblanks

答案2

@Rajesh S 提出的解决方案应该可行。您必须首先选择一行中的所有三个适用单元格,然后在公式栏中输入数组公式。这样,数组公式中的 {2,3,4} 就会分布在水平数组中的 3 列中。

如果您不熟悉数组公式并且只有两个表,您可以简单地在 VLOOKUP 中操作 COLUMN()-COLUMN(固定引用后面两列)以仅生成一次 2,3,4,然后您就可以连接这两个表。

如果您需要将更多表格一个接一个地堆叠起来,例如将来您甚至可能将 2019、2020 等等一个接一个地添加,那么您可能还想考虑以下解决方案。

在此示例中,基础表 1 位于 $A$3:$D$9,表 2 位于 $A$11:$D$15,而表 3 位于 $A$17:$D$21。

请使用第一行作为辅助行,并将相应表格的单元格 1:单元格 2 尺寸准确放入其中,就像 excel 公式理解单元格引用一样,例如 $A$11:$D$15

现在将以下公式放入 E3 中并将其向下拖动到目标单元格。

您的桌子应一个挨一个地连接在一起。将来,如果您添加更多桌子,只需将相应的尺寸放在辅助行上即可。

仅当您在 E 列中开始公式时,用于为 VLOOKUP 生成序列 2,3,4 的列号操作才会起作用。如果从任何其他列开始,则需要更改公式才能正确地重新生成序列 2,3,4。

=IFERROR(VLOOKUP($A3,INDIRECT(E$1),IF(MOD(COLUMN(),3)=0,3,IF(MOD(COLUMN(),3)=1,4,2)),FALSE),"NA")

在此处输入图片描述

相关内容