Excel 连接/合并异步相关表
目标 我需要帮助找到在excel中执行以下转换的最有效方法。当提到“有效方法”时,我指的是成功获得我所寻找的输出的最简单、最有效的方法 问题 为了简单起见,我将向您展示一个虚拟的、过于简化的概念问题示例,一旦解决了,它将允许我完成我所需要的 设为两张桌子。Excel 连接/合并异步相关表,excel,vba,Excel,Vba,目标 我需要帮助找到在excel中执行以下转换的最有效方法。当提到“有效方法”时,我指的是成功获得我所寻找的输出的最简单、最有效的方法 问题 为了简单起见,我将向您展示一个虚拟的、过于简化的概念问题示例,一旦解决了,它将允许我完成我所需要的 设为两张桌子。 表1记录了每个员工每周的日平均销售额。该值适用于从WeekStartingDate到WeekStartingDate+4的每天 表2记录了每个员工分配到的团队。每当员工更换团队时,表2都会(手动)临时更新。因此,表2通过设置该表条目有效的“
表1记录了每个员工每周的日平均销售额。该值适用于从
WeekStartingDate
到WeekStartingDate+4
的每天
表2记录了每个员工分配到的团队。每当员工更换团队时,表2都会(手动)临时更新。因此,表2通过设置该表条目有效的“时间范围”来跟踪每个员工的团队
我想合并这两个表,以获得每个团队每个员工的平均每日销售额日志,如下图所示。请注意,输出表上的“时间范围”对应于表1ID(即周)和员工团队中都没有变化的最短时间段
规则
宏/使用VBA是允许的。它看起来像是合并两个表。为此,首先将两个数据区域转换为表,并在其中创建新的表结构 因为它是复制和粘贴的,所以下面的代码将帮助您 子组合表() 变暗Rng1为范围,Rng2为范围 Set Rng1=ThisWorkbook.Names(“Tab1”).refrestorange 设置Rng2=ThisWorkbook.Names(“Tab2”).refrestorange 此工作簿。连接(1)。刷新 Rng1。收到 表1.范围(“A1”).粘贴特殊XLPaste值 Rng2.复制 第1页。范围(“A1”).偏移量(Rng1.Rows.Count,0).粘贴特殊xlPasteValues Application.CutCopyMode=False 工作表(“工作表1”)。激活 ActiveSheet.Range(“A1”)。选择
End Sub我不太明白您的解决方案如何交叉检查时间范围。考虑员工B在081-01-2017开始的一周内:这个员工在11-01-2017从团队X变为Y组,因此输出表将被分解成新的行(如我的帖子所示)。你的解决方案能做到这一点吗?代码中的哪一行是这样的?谢谢