在 Microsoft Excel 中,如何自动将整个条目复制到另一张工作表?

在 Microsoft Excel 中,如何自动将整个条目复制到另一张工作表?

我目前正在为一项研究提取数据,我想在满足条件时自动将数据复制到多个工作表中,因为数据会随着时间的推移不断更新。我知道这个问题可能类似于先前的问题,但我认为我的问题不同,因为我试图复制整个条目而不是单个数据单元格,因此INDEXMATCH以及VLOOKUP函数可能不相关。下面是我的数据说明(实际数据由数十列和数千行组成):

数据集

从中的数据中Master sheet,我想过滤掉研究“传染病”和“治疗”的研究,以及复制将它们复制到名为 的工作表中Infectious disease x Treatment。我希望对每个变量都执行此操作(3 个唯一的主题条目和 3 个唯一的焦点条目,因此总共 9 个工作表)。我希望该过程自动完成,这意味着满足条件的新输入数据将自动复制到相应的工作表中。结果应如下所示:

从主表中筛选数据

然后将过滤后的数据复制到相应的工作表

从技术上讲,不使用 VBA 是否可以使用 Excel 实现此目的?如有任何帮助,我们将不胜感激。提前致谢

答案1

如果您不介意原始数据继续存在于主页上,那么这很容易实现。但是,如果您希望它出现在子表上并从主页中删除,那么您必须使用 VBA。Excel 很乐意读取/复制/呈现几乎存在于任何地方(几乎任何您想放置它的地方)的信息,但它的公式不会对材料采取任何行动。它们只是按照指示查找要使用的材料,并在放置它们的单元格中给出它们所写的任何结果。

那么,怎么做呢? 一个函数调用FILTER()

=FILTER('Master sheet'!A2:I19,'Master sheet'!C2:C19="Infectious disease")

此用法查找具有该主题的所有行并将它们显示在子表上。在此用法中,您可以指定整个范围,以便获取所有数据列。对于其他用途,您可以指定范围的子集。对于更复杂的需求(例如,需要列 1、2、3、6、8 和 9,或者需要以不同于主表上的顺序排列列),可以将收集FILTER()(上述)与另一个收集包装在一起,并为条件提供数组常量,例如{1,1,1,0,0,1,0,1,1}或将其包装为INDEX(),并使用数组常量按数字指定列(即使它们出现多次)。

至于对子表上使用的结果进行排序,可以使用SORT()SORTBY()函数包装公式。

一个可能的缺点(只有您知道)是它是完全动态的。如果添加了条目,那显然很好。但条目也可能被更新或删除,并且很多时候这对您的预期用途不利。它们不一定是坏的,并且可能是非常需要的,但这是需要考虑的事情。

附注:既然提到了它们,使用VLOOKUP()XLOOKUP()或 的问题INDEX/MATCH不在于需要返回整个条目,而是它们只返回一个这样的条目,而不是全部。对于VLOOKUP(),在第三个参数中,您需要用数组常量({1,2,3,4,5,6,7,8,9})或指定所有列SEQUENCE(1,9)。对于 ,XLOOKUP()您只需为其第三个参数提供完整范围(因此也提供要返回的完整列列表)。对于从(或更好的)和部分中INDEX/MATCH获取行,只需使用、或上面相同的数组常量或函数。有时,如果指定行或列,则必须明确指定另一个值。但指定单行通常不会触发这一点。MATCH()XMATCH()INDEX(),,0SEQUENCE()

您只返回一行的原因INDEX/MATCH是 因为MATCH()不会返回要INDEX()使用的数组。 如果有办法这样做,它就可以达到所需的目的。 但FILTER()这样做很容易,而且是原生的,所以何必费心呢?

答案2

您似乎强调了复制数据的必要性。为清楚起见,Excel 通常*不会复制单元格,而只会引用它们(除非您手动复制并粘贴,或使用 VBA 自动执行复制和粘贴过程)。

例如你可以使用引用创建工作表的完整克隆

使用动态数组和溢出功能,在 Excel 365 中创建此类克隆工作表甚至更加容易,即单元格中的单个公式可以返回多个单元格作为答案(例如,=Sheet1!A1:D10在 Sheet2 单元格 A1 中输入)。在较旧的 Excel 版本中,使用数组公式(使用 CTRL+SHIFT+ENTER 输入)也可以实现这一点,但直观性和灵活性稍差。公式 FILTER 和 SORT 是新的 Excel 365 动态数组函数,在这种情况下也很有用(如 Jeorje 的答案中所示)。

通过引用“复制”/克隆的最大好处是,如果原始数据发生变化,克隆的数据也会发生变化。

*真正半自动复制/重复数据的唯一其他方法是使用数据透视表或跨不同工作簿的引用。在这两种情况下,Excel 都会将实际重复值存储在工作簿中,并要求用户手动点击刷新按钮以从源更新数据透视表或链接的工作簿数据。

总结

鱼与熊掌不可兼得 :P复制(制作完全独立的副本)但同时也希望独立副本能够从源(而只是一个公式引用)自动更新。数据透视表或链接工作簿是一种折衷方案,需要用户决定何时从源更新。

相关内容