2017-02-27 25 views
1

,我有以下類型的數據:如何使工作的平均時間完成?

**15**/02/2017 0:58 
**12**/02/2017 0:12 

我想打一個平均,其中小時做這項工作完成的。這是一個巨大的文件,200k行,我不關心一天,只有當工作通常完成時。問題是,如果一個小時在0:00以下,另一個在上面,並且它們是從非連續的日子,則該操作不起作用。我相信這是因爲日期與在unix中完成的日期相似,超過了某個閾值日期的毫秒數。

我已經試過:我想到了兩種方法:

1)I轉換每一行要麼01/01/1990或1990年2月1日,因爲我不關心這一天,只有小時。然後我嘗試計算平均值。

2)我將日期轉換爲毫秒,並將excel的基準日期減去每個單元格,然後從中做出正常的平均值。

第一個問題是我不知道如何從excel中的某個日期訪問特定的信息,例如,幾小時和幾分鐘,所以我覺得這樣做很麻煩,因爲我不知道語法(到目前爲止,我有例如= IF(B:B < = TIME(0:00);「01/01/1900」;「02/02/1900」),但它仍然缺少信息並且不起作用)。

第二個問題是,我覺得我更容易出錯,並且過於複雜以至於無法簡單地計算小時的平均值,操作太多。但我對excel知之甚少,所以我不確定在這種情況下更長的路徑是否更準確。

+1

只是爲了澄清意圖,你想找到工作結束的平均時間?或平均結束時間,包括分鐘?即01:30,02:30和03:00,取決於方法,平均值爲2或2.33。 – Zerk

+0

如果可能的話,我希望平均長達幾分鐘,但如果要達到秒或更多精度幫助以某種方式,它並不重要 –

+0

如果你想包括分鐘,那麼礦是基於小時,那麼斯科特的例子是完美的。 – Zerk

回答

1

使用此數組公式得到的只是時間的平均值:

=AVERAGE(MOD(A1:A2,1)) 

作爲它需要被證實數組公式按Ctrl-Shift鍵輸入,而不是退出編輯模式時輸入。如果正確完成,Excel將在公式周圍放置{}

然後格式的單元格爲hh:mm:ss

enter image description here


爲了得到平均小時內完成,如果它然後使用此:

=TIME(ROUNDDOWN(IF(AVERAGE(IF(HOUR(A1:A2)<=12,HOUR(A1:A2),HOUR(A1:A2)-24))<0,24,0)+AVERAGE(IF(HOUR(A1:A2)<=12,HOUR(A1:A2),HOUR(A1:A2)-24)),0),0,0) 

enter image description here

0

也許你可以只使用字符串操作來提取小時數爲輔助列,並運行對列平均:

假設你已經公佈的格式是提供在所有日期的嚴格的格式,並在A列中舉行:

=VALUE(MID(A1,SEARCH(" ",A1,1)+1,SEARCH(":",A1,1)-SEARCH(" ",A1,1)-1)) 

然後簡單地平均幫手列。

+0

因爲它告訴我我應該輸入文本,所以我在MID後出現錯誤。我是否必須將單元格格式化爲文本或...因爲我擔心我不瞭解該功能。抱歉給你帶來不便 –