Power BI DAX,如何创建度量来计算 00:00 格式的时间总和
Power BI DAX, how to create a measure to calculate the sum of time in 00:00 format
我需要创建一个仪表板,它可以根据给定的月份或年份在 00:00 中显示持续时间。我设法使用 DAX 创建了一个可以在 table 中显示类似内容的计算列。但是我无法使用该列中的值来显示,因为它们是字符串。
如何创建 DAX 度量而不是计算列来以 00:00 格式显示持续时间总和并将其显示在仪表板中?
AHT In MM:SS =
SUMX('Raw Call',
VAR M = PATHITEM(SUBSTITUTE('Raw Call'[AHT],":","|"),1)
VAR S = PATHITEM(SUBSTITUTE('Raw Call'[AHT],":","|"),2)
REtURN CONCATENATE(M, CONCATENATE(":", S))
)
当你需要求和所有分秒的值时,你需要将字符串格式转换成数字然后才能开始计算,但是我无法提供一步解决方案,但需要一些这样做的帮助列:
多步
首先,从您已经创建的“AHT”列中,我将通过创建一个新列来获取分钟部分:
minutes = VALUE(LEFT(Sheet1[Time],2))
接下来,我将创建一个新列来存储秒数:
seconds = VALUE(RIGHT(Sheet1[Time],2))
最后,我将使用以下公式创建一个新度量来对分钟和秒的持续时间求和:
duration =
var sec = MOD(SUM(Sheet1[seconds]),60)
var minute = TRUNC(DIVIDE(SUM(Sheet1[seconds]),60)) + SUM(Sheet1[minutes])
return
FORMAT(minute,"General Number") & "minutes " & FORMAT(sec,"General Number") & "secs"
这是我原来的 table,有两个新列:
通过将计算的度量设置为字段,我将得到以下记分卡,如果您愿意,您可以选择其他格式,如“00:00”:)
单步到return相同的结果,使用带度量的dax公式:
Duration =
var minutes = SUMX(Sheet1,VALUE(LEFT(Sheet1[Time],2))) + SUMX(Sheet1,TRUNC(DIVIDE(Sheet1[Time],60)))
var seconds = MOD(SUMX(Sheet1,VALUE(RIGHT(Sheet1[Time],2))),60)
return
FORMAT(minutes,"General Number") & " minutes " & seconds & " seconds"
我需要创建一个仪表板,它可以根据给定的月份或年份在 00:00 中显示持续时间。我设法使用 DAX 创建了一个可以在 table 中显示类似内容的计算列。但是我无法使用该列中的值来显示,因为它们是字符串。
如何创建 DAX 度量而不是计算列来以 00:00 格式显示持续时间总和并将其显示在仪表板中?
AHT In MM:SS =
SUMX('Raw Call',
VAR M = PATHITEM(SUBSTITUTE('Raw Call'[AHT],":","|"),1)
VAR S = PATHITEM(SUBSTITUTE('Raw Call'[AHT],":","|"),2)
REtURN CONCATENATE(M, CONCATENATE(":", S))
)
当你需要求和所有分秒的值时,你需要将字符串格式转换成数字然后才能开始计算,但是我无法提供一步解决方案,但需要一些这样做的帮助列:
多步
首先,从您已经创建的“AHT”列中,我将通过创建一个新列来获取分钟部分:
minutes = VALUE(LEFT(Sheet1[Time],2))
接下来,我将创建一个新列来存储秒数:
seconds = VALUE(RIGHT(Sheet1[Time],2))
最后,我将使用以下公式创建一个新度量来对分钟和秒的持续时间求和:
duration =
var sec = MOD(SUM(Sheet1[seconds]),60)
var minute = TRUNC(DIVIDE(SUM(Sheet1[seconds]),60)) + SUM(Sheet1[minutes])
return
FORMAT(minute,"General Number") & "minutes " & FORMAT(sec,"General Number") & "secs"
这是我原来的 table,有两个新列:
通过将计算的度量设置为字段,我将得到以下记分卡,如果您愿意,您可以选择其他格式,如“00:00”:)
单步到return相同的结果,使用带度量的dax公式:
Duration =
var minutes = SUMX(Sheet1,VALUE(LEFT(Sheet1[Time],2))) + SUMX(Sheet1,TRUNC(DIVIDE(Sheet1[Time],60)))
var seconds = MOD(SUMX(Sheet1,VALUE(RIGHT(Sheet1[Time],2))),60)
return
FORMAT(minutes,"General Number") & " minutes " & seconds & " seconds"