2017-07-25 102 views
0

感謝您花時間看我的問題。Excel/DAX平均問題

DAX不允許使用持續時間值,因此爲了計算出持續時間值列表的平均值,我們將持續時間分爲「小時」,「分鐘」和「第二」值。然後將其中的每一個平均化,然後連接成解決方法。

這裏的混亂:

在Excel中,當我由86400劃分的持續時間 - 在 - 秒值(以及因此格式並[h]:MM:SS),單獨的數值總結出精確(例如,10 :49:12來自秒持續時間值,而個人的「小時」,「分鐘」和「第二」值分別與-10,49和12相匹配) - 但是當我平均持續時間在秒列,我收到了平均組件時間值並連接它們(用冒號分隔)的不同值。

我相信這會是一件非常簡單的事情,所以我希望這裏的一位偉大的思想家能夠擺脫我的痛苦,並提供一個簡潔的解釋......這一切都是如此這對我的小小心靈來說很重要;儘管有睡眠剝奪!

非常感謝你提前,

羅布

+0

您是否有最低可重複性樣本/數據集? –

+0

@FoxanNg感謝您對我自己的回覆中的延遲做出迴應並表示歉意。我認爲這個問題對於計算引擎而言更爲固有,而不是一個特定的數據集 - 我能夠通過在Excel中填充一列(使用RANDBETWEEN 0-150000來表示時間 - 秒)並執行相同的計算來複制問題。 編輯:請注意,我將隨機數粘貼爲值,以使它們不是動態值。 :) – HendrixAndChill

+1

這不是由計算引擎決定的 - 它取決於你採取的方法。如果你10:00:01和09:59:59兩次取平均值,結果應該是10:00:00。但是,如果將其分解爲組成部分和平均值,則可以得到9.5,29.5和30.根據連接方式的不同,可能會得到10:30:30。與小時分開時,分鐘和秒是毫無意義的。當你考慮整個時間時,你只能平均時間。 –

回答

1

我沒有問題,使用複製在DAX電力BI的計算。 您可以檢查DAX是否與您的相同。

表與100行的隨機數據:

table

DurationInSeconds:

DurationInSeconds = RANDBETWEEN(0, 150000) 

小時:

Hour = QUOTIENT('Time'[DurationInSeconds], 3600) 

分鐘:

Minute = MOD(QUOTIENT('Time'[DurationInSeconds], 60), 60) 

第二:

Second = MOD('Time'[DurationInSeconds], 60) 

AverageByDurationInSeconds:

AverageByDurationInSeconds = AVERAGE('Time'[DurationInSeconds]) 

AverageByHourMinuteSeconds:

AverageByHourMinuteSecond = AVERAGE('Time'[Hour]) & ":" & AVERAGE('Time'[Minute]) & ":" & AVERAGE('Time'[Second]) 

結果:

results

當然,測量AverageByHourMinuteSeconds沒有什麼意義,因爲小數位必須保留以保證準確性,但計算仍然有效。 (21.9 * 3600 + 29.73 * 60 + 29.77 = 80653.57)

+1

非常感謝您通過這個,但我認爲這是更多的情況下,我正在接近它正確的GordonK上述。但我真的非常感謝你的幫助! :)謝謝你,祝你有美好的一天。 – HendrixAndChill