2017-02-21 107 views
1

我有兩列,一列是日期列表,另一列是持續時間列表。這些構成查詢日誌的一部分,不斷添加到查詢日誌中,因此沒有明確定義的範圍。在日期列表中計算日期和事件的持續時間

我想統計星期一(和其他)的條目數量,以及週一(和其他)的查詢總時長。

我有一個粗略的解決計數,使用sumproduct和星期幾,只是定義範圍以及我期望它應對(我不能使用A:A由於標題行,這令人沮喪),但我無法弄清楚第二部分。

+1

轉換至一個表,所以你可以參考表列,例如'表格1 [標題名稱]' – Jordan

+1

嘗試使用格式作爲表格來將當前表格轉換/定義爲excel表格中的數據。它不僅僅使它看起來漂亮。您可以通過給定的標題例如sum(table1 [SALES])來引用列,因此,如果您有100個銷售條目或10000個銷售條目,則無關緊要。我還允許您在表中創建一個公式列,並在每個新行中自動複製。如果您仍然不確定自己在說什麼,請選擇標題中的所有數據,然後單擊主菜單上的格式化爲表格按鈕,然後選擇一種樣式。 – Gordon

+1

無論標題行如何,**從不**使用[SUMPRODUCT]中的A:A(https://support.office.com/zh-cn/article/sumproduct-function-4e0bffa7-4291-4635-a61f-6aaa9399e7ff) 。 – Jeeped

回答

1

你是對的,你可以使用SUMPRODUCT

假設你的表如下所示(並表而不是一個區間):

Date  | Duration 
20/02/2017 | 5  '<--- Monday 
21/02/2017 | 5 
22/02/2017 | 5 
23/02/2017 | 5 
24/02/2017 | 5 
25/02/2017 | 5 
26/02/2017 | 5 
27/02/2017 | 5  '<--- Monday 
28/02/2017 | 5 

讓我們稱之爲表Table1

COUNT的星期一,你可以使用:

=SUMPRODUCT((WEEKDAY(Table1[Date],2)=1)*1) 

SUM落在在週一的持續時間,你可以使用:

=SUMPRODUCT((WEEKDAY(Table1[Date],2)=1)*(Table1[Duration])) 
1

使用a$2:index(a:a, match(1e99, a:a))定義的日期範圍。

要統計星期一,

=SUMPRODUCT(--(WEEKDAY(A$2:INDEX(A:A, MATCH(1E+99,A:A)))= 2)) 

綜上所述在星期一的持續時間,

=SUMPRODUCT(--(WEEKDAY(A$2:INDEX(A:A, MATCH(1E+99,A:A)))= 2), B$2:INDEX(B:B, MATCH(1E+99,A:A))) 

實施例:

enter image description here

或者,定義命名動態範圍與類似的公式。

+0

這很好,非常感謝。 1E + 99是什麼意思? – Veganjackson

+0

'1e + 99'是一個非常大的數字;從字面上看,** 1 **接着99個零。它被使用,因爲它永遠不會被達到。這樣,[MATCH](https://support.office.com/en-us/article/match-function-0600e189-9f3c-4e4f-98c1-943a0eb427ca)返回帶有號碼/日期的最後一行。如果你正在尋找最後的文本值,你可以使用'「zzz」'。 – Jeeped

+0

謝謝,這真的很有用,並且允許我添加基於文本的其他標準。我現在可以按月份和來源計算查詢,非常好。 – Veganjackson

2

我去使它的動態列表的戈登的建議(你只需選擇範圍,然後按Ctrl + T和它的完成 - 所有的格式和公式將自動與新的數據線延伸)

不知道這張桌子有多大,但有條件的副產品會很快變得非常沉重。

我建議:

  1. 轉換成表格:選擇範圍,按下Ctrl + T,勾選 「表具有頭」,在彈出的對話框。
  2. 列表添加與WEEKDAY(表1 [日期]如式(可以在自定義格式格式化爲「DDD」,顯示爲「星期一」等
  3. 下添加透視表到表和以星期爲單位轉動它

如果在表格底部添加行,公式將自行擴展,而數據透視表的源範圍。你需要刷新數據透視表 - 但僅此而已。

output

希望它有助於

+2

手繪箭頭和圓圈的獎勵積分。 – Jeeped