Проблема усреднения Excel / DAX

Спасибо, что нашли время, чтобы посмотреть на мой вопрос.

DAX не поддерживает значения длительности, поэтому, чтобы вычислить среднее значение для списка значений длительности, я разделил длительность на составляющие их значения «час», «минута» и «секунда». Затем каждый из них был усреднен, а затем объединен в качестве обходного пути.

Вот путаница:

В Excel, когда я делю значение длительности в секундах на 86400 (и, следовательно, форматирую в [ч]:мм:сс), отдельные значения точно подсчитываются (например, 10:49:12 получается из длительности в секундах). значение секунд и отдельные значения «Час», «Минута» и «Секунда» совпадают — 10, 49 и 12 соответственно) — но когда я усредняю ​​столбец продолжительности в секундах, я получаю значение, отличное от значения усреднения компонента значения времени и объединение их (разделенные двоеточием).

Я уверен, что это будет что-то действительно простое, поэтому я надеюсь, что один из великих умов сможет избавить меня от моих страданий и дать краткое объяснение... это слишком много для моего крошечного ум как он есть; несмотря на недосып!

Заранее большое спасибо,

Роб


person HendrixAndChill    schedule 25.07.2017    source источник
comment
Есть ли у вас минимальный воспроизводимый образец/набор данных?   -  person Foxan Ng    schedule 26.07.2017
comment
@FoxanNg Спасибо за ответ и извинения за задержку с моим собственным ответом. Я думаю, что проблема больше связана с механизмом вычислений, а не с конкретным набором данных - мне удалось воспроизвести проблему, заполнив столбец в Excel (используя СЛУЧМЕЖДУ 0-150000 для представления времени в секундах) и выполнив те же расчеты. Изменить: обратите внимание, что я вставил случайные числа как значения, чтобы они не были динамическим значением. :)   -  person HendrixAndChill    schedule 26.07.2017
comment
Дело не в механизме вычислений, а в подходе, который вы используете. Если вы возьмете два времени 10:00:01 и 09:59:59 и усредните их, результат должен быть 10:00:00. Однако, если вы разобьете его на составные части и усредните их, вы получите 9,5, 29,5 и 30. В зависимости от того, как вы их объедините, вы можете получить 10:30:30. Минуты и секунды не имеют смысла, если их отделить от часов. Вы можете только усреднять время, когда рассматриваете время в целом.   -  person Gordon K    schedule 26.07.2017
comment
@GordonK Привет, Гордон, большое спасибо за ответ. Я не имел в виду, что вычислительная машина была неисправна в том смысле, что она работала со сбоями - я думаю, что врожденно подозревал что-то вроде вашего объяснения, но не был уверен, что именно. Вы точно подтвердили то, что, как я думал, может быть проблемой, хотя я только знал, что что-то не так! Еще раз спасибо за разъяснения. :)   -  person HendrixAndChill    schedule 27.07.2017


Ответы (1)


У меня нет проблем с повторением вычислений в Power BI с помощью DAX. Вы можете проверить, совпадают ли DAX с вашими.

Таблица со 100 строками случайных данных:

таблица

Продолжительность в секундах:

DurationInSeconds = RANDBETWEEN(0, 150000)

Час:

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

Минута:

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

Второй:

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

Среднее по длительности в секундах:

AverageByDurationInSeconds = AVERAGE('Time'[DurationInSeconds])

Среднее по часам в минутах:

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

Результаты:

результаты

Конечно, мера AverageByHourMinuteSeconds не будет иметь особого смысла, поскольку для точности должны быть сохранены десятичные разряды, но вычисление по-прежнему верно. (21,9 * 3600 + 29,73 * 60 + 29,77 = 80653,57)

person Foxan Ng    schedule 26.07.2017
comment
Большое спасибо за то, что прошли через это, но я думаю, что это был скорее случай, когда я неправильно подошел к этому, как указано GordonK выше. Но я очень, очень ценю вашу помощь! :) Спасибо, хорошего дня. - person HendrixAndChill; 27.07.2017