2012-03-06 65 views
0

我是新來的excel公式和宏。我的表格顯示在下面。收集每週的每日數據

id Date  name hours code workPackage 
1 3/28/2012 Anit 8 N1  1212 
2 3/29/2012 Anit 8 N2  1212 
3 3/30/2012 Anit 8 N2  1214 
4 3/31/2012 Anit 8 N4  1212 
5 4/1/2012 Anit 5 N1  1212 
6 4/1/2012 Anit 3 N2  1212 
7 4/3/2012 Anit 8 N2  1222 
8 4/4/2012 Anit 8 N2  1212 
9 4/5/2012 Anit 8 A1  1212 
10 4/6/2012 Anit 8 A1  1212 

我想根據代碼和workPackage將此日常數據累積到每週(星期五)。對於特定的代碼和工作包,添加該周的小時數。最終的輸出數據應該是這樣的。

1 3/30/2012 Anit 8 N1  1212 
2 3/30/2012 Anit 8 N2  1212 
3 3/30/2012 Anit 8 N2  1214 
4 4/6/2012 Anit 16 A1  1212 
5 4/6/2012 Anit 5 N1  1212 
6 4/6/2012 Anit 19 N2  1212 
7 4/6/2012 Anit 8 N4  1212 

如果查詢可以通過導入的Access數據庫或任何其他數據庫的,這個數據被寫入,這也將是巨大的。

回答

2

您可以在Excel中使用ADO。查詢將是:

Select Code, WorkPackage, Max([date]), First([Name]), Sum([Hours]) 
From [Sheet1$] 
Group By Code, WorkPackage 

編號:http://support.microsoft.com/kb/257819

編輯點評重

SELECT t.code, t.workPackage, Format([Date],"yyyy-ww") AS WeekNo, 
     Min(t.Date) AS MinOfDate, Max(t.Date) AS MaxOfDate, 
     Min(t.name) AS MinOfname, Sum(t.hours) AS SumOfhours 
FROM [Sheet1$] t 
GROUP BY t.code, t.workPackage, Format([Date],"yyyy-ww"); 
+0

謝謝您的回答。它幫助我做了我想做的一半事情。 – 2012-03-06 16:02:21

+0

您的查詢不會給出每週數據,它會給出可用的最大日期。你能幫我解決這個問題嗎 – 2012-03-06 16:29:42

+0

從你的樣本數據中不完全清楚你想要什麼。我又增加了一個例子。 – Fionnuala 2012-03-06 16:41:10