在单独的工作表上创建主表自动更新子表(Excel 2010)

时间:2017-12-05 13:52:54

标签: excel vba excel-2010

我一直试图解决这个问题,尽管我已经找到了部分答案,但我还没有找到完整的解决方案。

以下是事实:

  • 我使用的是Excel 2010,无法安装加载项或扩展程序。
  • 工作表“所有审核” - 这包含与所有活动审核相关的数据,是我们的主要列表。
    • A列中列有数据:L
    • 第1行有一个标题,下面的行有数据
    • D栏和E栏包含主要和次要审核线索
    • 此表上将进行手动更新
    • 所有其他工作表具有相同的标题和结构
  • 工作表“Department1”
    • 此页面将列出属于部门1的所有审核(无论是主要还是次要)
  • 工作表“Department2”
    • 此页面将列出属于部门2的所有审核(无论是主要还是次要)

基本上我想这样做,以便在主列表中手动更新审核,Excel会自动将行复制/粘贴到相应部门表中的下一个空行,具体取决于D列中标识的所有者/部门和即

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

数据透视表是此任务的最佳选择。它们允许您使用标签或类别快速汇总数据,并允许使用可以使数据更容易使用的切片器。

有许多方法可以设计数据透视表,但是由您决定什么最适合您的审美。我的建议是首先将您的主人格式化为表格(如果它还没有),然后命名它(All_Audits_Master将是一个好名字)。然后在主列表中添加一个计算两个组的列。例如,公式看起来像:

=If(OR([Primary Department]="Department1", [Secondary Department]="Department1"), "Department1", If(Or([Primary Department]="Department2", [Secondary Department]="Department2"), "Department2", "")

此公式最初可能看起来很复杂,但它所做的只是使用列名[Some Name]来检查值,并适当地标记计算列。如果记录不属于任何一个部门,则返回一个空白字符串。

一旦你有了这个专栏(一定要把它放在最后,这样就不会干扰你的数据粘贴),你只需要两个数据透视表。第一个将使用Department1的过滤器,Department2的第二个过滤器。

从那里开始,我会将您想要的每个列放在Rows字段中。如果要总结任何内容,也可以使用值。例如,您可以将Count RecordID放入Values以按部门计算记录数。

最终会有一些学习数据透视表的前期时间成本,但我向你保证,如果你还不能使用数据透视表,你不会想要搞乱VBA。我花了几个月的时间在VBA中学习数据透视表可以在几分钟内完成的事情。此外,一旦你更彻底地学习了Pivot,在VBA中有更多的概念是有意义的(并且可供你使用)。

如果您是一位更直观的学习者,请查看本教程以开始使用:https://www.youtube.com/watch?v=peNTp5fuKFg

编辑:唯一需要注意的是数据透视表不会自动更新。你有两个选择:

让用户在更新主数据库(数据>刷新或全部刷新)后刷新数据透视表,或者编写一个处理它的宏(使用事件,但不建议这样做,除非作为最后的手段)。