2017-08-11 47 views
-1

目標加入/異步合併相關表

我需要幫助找到在Excel中執行以下改造的最有效途徑。當提到「有效的方式」時,我的意思是成功獲得我期待的輸出的最簡單和最有效的方法。

問題

爲了簡單起見,我會爲您呈現一個虛擬過於簡單例子中,概念性的問題,一旦解決,將讓我完成我需要的。

讓它成爲2個表格。
表1記錄了每週每位員工的每日平均銷售額。該值適用於每天從WeekStartingDateWeekStartingDate + 4

Table1

表2日誌哪個球隊每個Employee被分配。表2是每當員工更改團隊時(手動)更新的特設專家。因此,表2通過設置表格條目有效的「時間範圍」來跟蹤每個員工的團隊。

Table2

我想這兩個表結合起來,有一個記錄每個員工平均每天銷售每隊,如下面所描述的。注意輸出表上的'時間框架'對應於Table1ID(即周)和Employee's Team中都沒有變化的最小期間。

Table3

規則

宏/使用VBA是允許的。

回答

0

它看起來像組合兩個表。爲此,首先將兩個數據範圍轉換爲表以及任何創建新表結構的地方。

由於它只是複製和粘貼,所以下面的代碼會幫助你。

子CombineTables()

昏暗RNG1作爲範圍,RNG2作爲範圍

集RNG1 = ThisWorkbook.Names( 「TAB1」)。RefersToRange

集RNG2 = ThisWorkbook.Names(「TAB2 「).RefersToRange

ThisWorkbook.Connections(1).REFRESH

Rng1.Copy Sheet1.Range(」 A1" )。PasteSpecial的XL PasteValues

Rng2.Copy

Sheet1。範圍(「A1」)。偏移(Rng1.Rows.Count,0).PasteSpecial xlPasteValues

應用程序。CutCopyMode =假

表( 「工作表Sheet1」)。激活 ActiveSheet.Range( 「A1」)。選擇

末次

+0

我不太明白如何做您的解決方案交叉檢查的時間幀。在2017年1月8日開始的一週內考慮僱員B:該僱員在2017年1月1日從團隊X變爲團隊Y,因此輸出表將打破成一個新行(如我的文章所述)。你的解決方案是否完成了這個目標代碼中的哪一行會這樣做?謝謝 – POliveira