Тип данных агрегирования времени в Power BI

Как я могу заставить Power BI отображать сумму столбца типа данных времени?

Сценарий: таблица со столбцами Phase (текст) и Duration (тип данных времени SQL Server, также распознаваемый в Power BI как время). Когда я добавляю гистограмму с фазой в качестве оси и продолжительностью в качестве значения, у меня есть только возможность отображать счетчик и счетчик отличных для продолжительности, без СУММ.

Дополнительные пояснения после добавления DurationMeasure:

  • Таблица TBL1 в PowerBI имеет столбец Duration (Тип данных Time).
  • Измерение длительности Измерение добавляется в TBL1 с формулой, показанной ниже.
  • PowerBI не позволяет мне добавлять эту меру на гистограмму в свойство Values ​​(см. Изображение ниже). Невозможно перетащить свойство Values. Если я просто проверю эту меру, она перейдет в свойство Tooltip вместо visual, а не в свойство Values, как и все другие меры. Может быть, потому что это строковые данные, но я не знаю, как их отформатировать.

визуальная линейчатая диаграмма

Вот определение DurationMeasure (как в ссылке, предоставленной Карлом Анкой):

    DurationMeasure = 
// Duration formatting 
// * @konstatinos 1/25/2016
// * Given a number of seconds, returns a format of "hh:mm:ss"
//
// We start with a duration in number of seconds
VAR Duration = SUM(TBL1[DurationSeconds])
// There are 3,600 seconds in an hour
VAR Hours =
    INT ( Duration / 3600)
// There are 60 seconds in a minute
VAR Minutes =
    INT ( MOD( Duration - ( Hours * 3600 );3600 ) / 60)
// Remaining seconds are the remainder of the seconds divided by 60 after subtracting out the hours 
VAR Seconds =
    ROUNDUP(MOD ( MOD( Duration - ( Hours * 3600 );3600 ); 60 );0) // We round up here to get a whole number
// These intermediate variables ensure that we have leading zero's concatenated onto single digits
// Hours with leading zeros
VAR H =
    IF ( LEN ( Hours ) = 1; 
        CONCATENATE ( "0"; Hours );
        CONCATENATE ( ""; Hours )
      )
// Minutes with leading zeros
VAR M =
    IF (
        LEN ( Minutes ) = 1;
        CONCATENATE ( "0"; Minutes );
        CONCATENATE ( ""; Minutes )
    )
// Seconds with leading zeros
VAR S =
    IF (
        LEN ( Seconds ) = 1;
        CONCATENATE ( "0"; Seconds );
        CONCATENATE ( ""; Seconds )
    )
// Now return hours, minutes and seconds with leading zeros in the proper format "hh:mm:ss"
RETURN
    CONCATENATE (
        H;
        CONCATENATE ( ":"; CONCATENATE ( M; CONCATENATE ( ":"; S ) ) )
    )

заранее спасибо


person Filip Popović    schedule 18.04.2018    source источник
comment
Нам нужна дополнительная информация: тип данных Time предназначен для времени суток - technet.microsoft.com/en-us/library/bb677243 (v = sql.105) .aspx, но ваше имя действует на время. Продолжительность подразумевает время начала и окончания. Что вам нужно?   -  person Taterhead    schedule 18.04.2018
comment
@Taterhead: столбец называется Duration и имеет тип данных Time, что означает, что 00:01:02 означает, что что-то длилось 1 мин 2 с - я извлекаю эту продолжительность из журнала (текст) и конвертирую его в тип данных времени в операторе SQL (для читаемость сетки результатов в Management Studio). Итак, да, вы правы, что это может быть неуместным использованием типа данных времени. Для меня нормально иметь любой другой тип данных, но мне нужно, чтобы он был агрегирован (сумма) в powerbi, и это агрегированное значение должно быть отформатировано как hh: mm: ss.ms (ms не обязательно)   -  person Filip Popović    schedule 18.04.2018


Ответы (1)


Если вы переведете час продолжительности в десятичное число, можно отобразить сумму. Тогда значение 1 = 1 day = 24 hour = 1440 minutes = 86400 seconds. Таким образом, значение 0,5 означает 12 часов. Немного хлопотно отобразить его в виде часов и минут на диаграмме, но это с форумов Power BI показывает, как это делается.

person Karl Anka    schedule 18.04.2018
comment
Спасибо, увидели упомянутую статью, но не смогли применить решение DAX. Сделаю еще одну попытку и вернусь к Вам. Спасибо. - person Filip Popović; 18.04.2018
comment
К сожалению, он агрегирует общую сумму (как одну цифру), если я создаю, например, таблицу в PowerBI с Phase и this_new_measure, она показывает :: для каждой строки, за исключением итога, где отображается правильная сумма - person Filip Popović; 18.04.2018
comment
Хм, я не совсем слежу. Не могли бы вы дополнить свой вопрос некоторыми примерами данных и тем, как они выглядят сейчас? - person Karl Anka; 18.04.2018
comment
Дополнительное объяснение, о котором идет речь ... и, пожалуйста, забудьте комментировать: это была моя ошибка. У меня есть агрегирование, но я не могу использовать его в гистограмме ... - person Filip Popović; 18.04.2018
comment
простой однострочник в Python занимает целую страницу в DAX ... найти решение для этого было настоящей дурацкой задачей, но спасибо за вашу ссылку. Надеюсь, что анализ временных рядов скоро перейдет в Excel / PBI. - person Umar.H; 26.01.2019