【问题标题】:How to combine two or more tables into one master table in Excel?如何在 Excel 中将两个或多个表合并为一个主表?
【发布时间】:2021-11-24 22:45:29
【问题描述】:

假设我们在不同的工作表上有两个具有相同标题的表格:

表 1:

Subject
Biology
History

表 2:

Subject
Maths
Biology

但是,我有工作表 3,我希望它是这两个表的组合。即

表 3:

Subject
Biology
History
Maths
Biology

另外,如果我更新,例如表 1 的新行包含 Physics,我希望表 3 中的表反映这一点,使其变为:

表 3:

Subject
Biology
History
Physics
Maths
Biology

有没有人知道如何做到这一点?我认为在工作表 3 的单元格中使用简单的= 来引用工作表 1 和工作表 2 可以工作,但这没有考虑工作表 1 和工作表 2 的大小如何增长。

【问题讨论】:

  • 你有什么版本的 Excel?
  • Office 365 的最新版本@BigBen
  • 发布了一个解决方案,虽然只是有一个想法:您对返回条目的顺序有多灵活?所有 Sheet1 条目都应该在 Sheet2 条目之前吗?
  • 我通常会在 powerquery 中尝试这个。
  • @JvdV 绝对!到目前为止,这是更好的工具。

标签: excel excel-formula


【解决方案1】:

假设 Sheet1Sheet2 表是 Tables,分别命名为 Table1Table2

=FILTERXML("<a><b>"&TEXTJOIN("</b><b>",1,T(IFNA(IF({0,1},Table1[Subject],Table2[Subject]),"")))&"</b></a>","//b")

这是一个动态数组公式,无法将其输入到表格中。另请注意,TEXTJOIN 的字符限制意味着此设置可能不适合大型数据集。

【讨论】:

    【解决方案2】:

    试试这样的:

    =IF(ROW()<MATCH(TRUE;INDEX(ISBLANK(Sheet1!C1);0);0);Sheet1!RC1;INDEX(Sheet2!C1;ROW()-MATCH(TRUE;INDEX(ISBLANK(Sheet1!C1);0);0)+1;0))

    地点:

    MATCH(TRUE;INDEX(ISBLANK(Sheet1!C1);0);0) 是 Sheet1 中第一个空白单元格的位置

    ROW()<MATCH(TRUE;INDEX(ISBLANK(Sheet1!C1);0);0) 当 Sheet1 在当前行中有值时为真

    Sheet1!RC1是Sheet1中当前行的值

    INDEX(Sheet2!C1;ROW()-MATCH(TRUE;INDEX(ISBLANK(Sheet1!C1);0);0)+1;0) 是 Sheet2 中的值,移动以确保 Sheet2 的值低于 Sheet1 的值

    【讨论】:

      猜你喜欢
      • 2012-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      • 2017-06-13
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      相关资源
      最近更新 更多