【问题标题】:Combine multiple sheets to 1 sheet将多张纸合并为一张
【发布时间】:2016-02-25 01:30:16
【问题描述】:

有没有什么方法可以在不使用 VBA 的情况下将 2 个或多个工作表合并为 1 个工作表?

我想在第一列中使用唯一值,然后在其余列中使用 VLOOKUP。但我很难弄清楚如何返回到第二张纸的第一个单元格。

【问题讨论】:

  • 您可以手动复制并粘贴它们,然后转到Data-Ribbon 并使用Remove Duplicates
  • 这也可以使用结构化 (ListObject) 表来完成,但如果从任一源表中添加/删除行,则需要少量 VBA 来调整聚合表的大小。 (Combine 2 Excel tables into one appending the data)
  • 我想自动化它,就像我在工作表 1 或工作表 2 中添加数据一样,它会自动出现在工作表 3 中,更像是所有工作表的摘要。

标签: excel excel-formula vlookup


【解决方案1】:

使用您的示例数据图像(数字在 A 列中保持数字很重要),这两个标准公式用于 Sheet3!A2:B2。

=IFERROR(INDEX(Sheet1!A$2:INDEX(Sheet1!A:A, MATCH(1E+99, Sheet1!A:A)), ROW(1:1)), IFERROR(INDEX(Sheet2!A$2:INDEX(Sheet2!A:A, MATCH(1E+99, Sheet2!A:A)), ROW(1:1)-COUNT(Sheet1!A:A)), ""))
=IFERROR(VLOOKUP($A2, Sheet1!$A:B, COLUMN(B:B), FALSE), IFERROR(VLOOKUP($A2, Sheet2!$A:B, COLUMN(B:B), FALSE), ""))

将 B2 向右填充到 C2,然后将 A2:C2 向下填充到足以捕获所有可用条目的位置。

当没有足够的公式覆盖 Sheet1 和 Sheet2 中的条目时,您可能需要考虑使用条件格式规则作为警告。 =COUNT(Sheet1!$A:$A)+COUNT(Sheet2!$A:$A)<>COUNT(Sheet3!$A:$A) 之类的东西可以将标题变为红色。

有一个公式可以将适当的源工作表名称检索到Combine 2 Excel tables into one appending the data 中的附加列。

【讨论】:

  • 谢谢!!我认为这个会起作用,我只需要查看其余数据,a 列将是具有此 =IFERROR(INDEX(Sheet1!A$2:INDEX(Sheet1!A:A, MATCH(1E+99, Sheet1) !A:A)), ROW(1:1)), IFERROR(INDEX(Sheet2!A$2:INDEX(Sheet2!A:A, MATCH(1E+99, Sheet2!A:A)), ROW(1: 1)-COUNT(Sheet1!A:A)), ""))
  • 您将需要我为 VLOOKUP 提供的第二个公式的某个版本。如果在第一个工作表上找不到 id,则需要在第二个工作表上查找。
  • 好的,非常感谢您提供这个公式,它适用于我的示例,我会尝试在我的工作表上使其全尺寸。 :)
  • 嗨,如果我要添加超过 2 张纸,我只需要在第 4 页的“如果错误的值”上添加一个参数 iferror?我说的对吗?
  • 没有。您还必须补偿已经存在的条目数量。看看我如何用第一个工作表的 COUNT 补偿第一个工作表和第二个工作表之间的 ROW(1:1)。
猜你喜欢
  • 1970-01-01
  • 2022-07-15
  • 2016-03-31
  • 2013-07-18
  • 1970-01-01
  • 2017-12-25
  • 2012-12-15
  • 1970-01-01
相关资源
最近更新 更多