Excel 连接/合并异步相关表

Excel 连接/合并异步相关表,excel,vba,Excel,Vba,目标 我需要帮助找到在excel中执行以下转换的最有效方法。当提到“有效方法”时,我指的是成功获得我所寻找的输出的最简单、最有效的方法 问题 为了简单起见,我将向您展示一个虚拟的、过于简化的概念问题示例,一旦解决了,它将允许我完成我所需要的 设为两张桌子。 表1记录了每个员工每周的日平均销售额。该值适用于从WeekStartingDate到WeekStartingDate+4的每天 表2记录了每个员工分配到的团队。每当员工更换团队时,表2都会(手动)临时更新。因此,表2通过设置该表条目有效的“

目标

我需要帮助找到在excel中执行以下转换的最有效方法。当提到“有效方法”时,我指的是成功获得我所寻找的输出的最简单、最有效的方法

问题

为了简单起见,我将向您展示一个虚拟的、过于简化的概念问题示例,一旦解决了,它将允许我完成我所需要的

设为两张桌子。
表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组,因此输出表将被分解成新的行(如我的帖子所示)。你的解决方案能做到这一点吗?代码中的哪一行是这样的?谢谢