我在Excel中的多个工作表中有一个数据集,我需要合并到一个工作表中。问题是所使用的列不相同,有些列总是使用,有些列只有几张。列的位置也不相同,即一列可以在一张纸中具有位置X而在另一张纸中具有位置Y.如何在不丢失数据和结构的情况下将这些合并到一张纸上?
有关列标题的示例,请参阅附件。一行代表一张包含数据及其列标题
的工作表答案 0 :(得分:0)
我建议您创建最终合并的工作表,其中包含所有工作表中的所有列,按任何顺序排列。然后在单元格B2中编写此公式。
=IFERROR(HLOOKUP(B$1,'My Sheet 1'!$A$1:$Z1001, ROW(A2),FALSE),"")
公式将在源表的列标题中查找合并工作表中的列标题,并从该列中提取值。如果在源表中找不到该列,则公式将返回一个空字符串,该字符串显示为空白。因此,您可以向左和向右复制公式,而无需更改公式。
B$1
假定合并表单的B1中的列标题。您可以将位置更改为另一行。当您将公式复制到右侧时,它将自动调整为C $ 1,D $ 1等。'My Sheet 1'
是源表的名称。您需要创建不同的公式才能从每个源表中导入。$A$1:$Z$1001
是要复制的范围。确保它具有任何源表的最大列数,以及最大行数。请注意,第1行必须包含列标题。如果源表中的列标题位于另一行中,则必须调整查找范围以使该行位于顶部。ROW(A2)
返回A2的行号,当然是2.如果查找范围中的行号与表行号相同但不一定如此,那将是很好的。该数字指定查找范围中的第二行。因此,如果范围是$ A $ 3:$ Z $ 1001,则B列第二行中的单元格将为B4,但在公式中仍为ROW(A2)
。当然,ROW(A2)
会在您向左,向右和向下复制时发生更改,这可以确保它可以检索所有值。但是,在从一个工作表导入所有888行后,您可能希望从合并工作表的第889行开始附加下一个工作表中的导入。当然,您放在那里的公式必须引用另一个工作表,并且必须再次指定ROW(A2)
,因为您需要合并工作表的第889行中下一个工作表的第二行中的值。调整后的公式适用于第二张表中的所有导入,只需在第3页开始时再次更改。
导入完成并验证后,您应该使用导入的值替换合并表单中的公式。通过单击左上角的垂直和水平标尺相交的小矩形选择整个工作表,然后单击Copy
(或按Ctl + C),单击功能区Paste
按钮并选择"粘贴值"。