如何找到Power Bi中的总持续时间?

时间:2020-07-20 06:48:29

标签: powerbi dax powerbi-desktop

我在Power bi中有一个时间格式的文本作为表格。

Table

我想通过将所有时间(以天,小时,分钟,秒为单位)相加来找到总的持续时间 像这样:-

Result

如何为此编写Dax?

提前谢谢!

3 个答案:

答案 0 :(得分:2)

string.encode('unicode_escape')
result = string.replace("\\", "")
#result=abcdnop.png

结果相同

答案 1 :(得分:1)

尽管您已经排除了我的第一个答案,但我想让您了解另一种选择。我将其作为单独的答案发布,因为我不想在两个答案之间搞乱。

您也可以使用DAX进行全部操作,而无需执行我在较早答案中解释的步骤。您可以直接从值列表(例如-

)进行操作

enter image description here

DAX查询是(有点大,但您可以尝试)-

total_seconds_dax = 

var total_second = 
SUMX(
    total_time,
    INT(
        MID(
            total_time[Time],
            1,
            SEARCH(":",total_time[Time],1,0) - 1
        )
    )
) * 60 * 60
+
SUMX(
    total_time,
    INT(
        MID(
            total_time[Time],
            SEARCH(":",total_time[Time],1,0) + 1,
            SEARCH(
                ":",
                total_time[Time],
                SEARCH(":",total_time[Time],1,0) + 1
               ,0
            ) 
            - 
            (SEARCH(":",total_time[Time],1,0) + 1)
        )
    )
) * 60
+
SUMX(
    total_time,
    INT(
        MID(
            total_time[Time],
            SEARCH(
                ":",
                total_time[Time],
                SEARCH(":",total_time[Time],1,0) + 1
                ,0
            ) + 1 
            ,
            LEN(total_time[Time]) - 
            SEARCH(
                ":",
                total_time[Time],
                SEARCH(":",total_time[Time],1,0) + 1
                ,0
            )
        )
    )
)

var DayCount = INT(total_second/(24*60*60))
var HoursCount = MOD(INT(total_second/(60*60)),24)
var MinCount   = MOD(INT(total_second/60),60)
var SecCount   = MOD(total_second,60)

RETURN DayCount & " Days & " & HoursCount & " Hours & " & MinCount & " Minutes & " & SecCount & " Seconds"

答案 2 :(得分:0)

如果输入值表示“ HH:mm:ss”格式,则可以执行以下步骤来获得所需的输出。

第1步:加载数据后,复制“时间”列,然后使用定界符“:”分割下图所示的列

enter image description here

以上动作的输出如下。请将列名称重命名为“小时”,“分钟”和“秒”。还要将这些列的数据类型更改为数字/整数。

enter image description here

步骤2 :使用脚本添加自定义列-

total_second = 
([Hour] * 60 * 60)
+ ([Minute] *60)
+ ([Second])

输出将如下所示,每行总秒数-

enter image description here

第3步:通过应用更改返回报告。

第4步:按如下所示创建度量-

custom_second_to_day = 

var DayCount = INT(total_time[m_total_second]/(24*60*60))
var HoursCount = MOD(INT(total_time[m_total_second]/(60*60)),24)
var MinCount   = MOD(INT(total_time[m_total_second]/60),60)
var SecCount   = MOD(total_time[m_total_second],60)

RETURN DayCount & " Days & " & HoursCount & " Hours & " & MinCount & " Minutes & " & SecCount & " Seconds"

该衡量标准的最终输出为-“ 2天21小时56分钟51秒