Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 如何查找power bi中的总持续时间?_Powerbi_Dax_Powerbi Desktop - Fatal编程技术网

Powerbi 如何查找power bi中的总持续时间?

Powerbi 如何查找power bi中的总持续时间?,powerbi,dax,powerbi-desktop,Powerbi,Dax,Powerbi Desktop,我在Power bi中使用文本格式作为表格 我想通过将所有时间加在一起(以天、小时、分钟、秒为单位)来计算总持续时间 大概是这样的:- 我怎样才能为此编写Dax 提前谢谢 如果您的输入值表示“HH:mm:ss”格式,则可以执行以下步骤以获得所需的输出 步骤1:加载数据后,复制“时间”列,然后使用分隔符拆分该列,如下图所示: 上述动作的输出如下。请将列名重命名为小时、分钟和秒。还可以将这些列的数据类型更改为数字/整数 步骤2:使用脚本添加自定义列- total_second = ([Ho

我在Power bi中使用文本格式作为表格

我想通过将所有时间加在一起(以天、小时、分钟、秒为单位)来计算总持续时间 大概是这样的:-

我怎样才能为此编写Dax


提前谢谢

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

步骤1:加载数据后,复制“时间”列,然后使用分隔符拆分该列,如下图所示:

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

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

total_second = 
([Hour] * 60 * 60)
+ ([Minute] *60)
+ ([Second])
输出如下,每行总秒数-

步骤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秒”

尽管您已经排除了我的第一个答案,但我想让您知道另一个选项。我把它作为单独的答案贴出来,因为我不想把两个答案搞混

您也可以使用DAX完成整个工作,而无需我在前面的回答中解释的步骤。您可以直接从值列表中执行,如-

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


结果是相同的

是您的时间格式>hr:mm:ss?是。。格式大于24小时shey@mkRabbani我已修改了您给出的第二个解决方案。我通过使用一些文本函数减小了Dax的大小。看一看,我看到了。但是,您必须确保该值始终包含小时2个字符、分钟2个字符和秒2个字符。在其他情况下,这将不起作用。考虑到这一点,我提出了一个长期而动态的解决方案。
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"
total_duration_dax_2 = 

var total_second = 
SUMX(
    TIME2,
    INT(
        VALUE(LEFT(TIME2[Table2],2))
        
    )
) * 60 * 60
+
SUMX(
    TIME2,
    INT(
        VALUE(MID(TIME2[Table2],4,2))
    )
) * 60
+
SUMX(
    TIME2,
    INT(
        VALUE(RIGHT(TIME2[Table2],2))
        
    )
)

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"