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