DAX 转换为分钟和秒
DAX to convert to Minutes and Seconds
我有以下 DAX:
(sum(usage[session_duration])/100)/sum(usage[engaged_sessions])
我遇到的问题是 returns 取决于过滤器 2.49,而它应该是 returning 4.09。 4 代表分钟数,9 代表秒数。
我写了以下内容:
Var FirstTotal = (sum(usage[session_duration])/100)/sum(usage[engaged_sessions])
Var SecondTotal = FirstTotal*100
Var ThirdTotal = SecondTotal/60
VAR WholeNumberThirdTotal = INT(ThirdTotal)
Var FirstDot = FIND(".",ThirdTotal,1,0)
Var FourthTotal = MID(ThirdTotal, FirstDot, 2)
Var FifthTotal = FourthTotal*60
RETURN WholeNumberThirdTotal & "." & FifthTotal
这似乎是 return 正确的结果。我遇到的问题是我不能在带有日期字段的图表中使用它。它只适用于卡片。
有人知道我该如何改进吗?
在我看来 returns 一个以秒为单位的值:
SUM ( usage[session_duration] ) / SUM ( usage[engaged_sessions] )
也就是说,没有 /100
你有 249s,与 4m + 9s 相同。
您可以为此添加格式以获得您想要的显示:
VAR Sec = SUM ( usage[session_duration] ) / SUM ( usage[engaged_sessions] )
RETURN
FORMAT ( INT ( Sec / 60 ), "0" ) & "." & FORMAT ( MOD ( Sec, 60 ), "00" )
正如您所指出的,这是一个文本值,因此不能用作图表视觉效果中的数值。您可以将 249 转换为十进制值 4.09,就像这样容易:
VAR Sec = SUM ( usage[session_duration] ) / SUM ( usage[engaged_sessions] )
RETURN
INT ( Sec / 60 ) + MOD ( Sec, 60 ) / 100
如果您在条形图中使用它,条形的高度将与 4.09 分钟(即 4m + 5.4s)成正比,而不是 4m + 9s(4.15 m)。
由于 Power BI 没有可用于度量的持续时间类型,如果您使用的是单个度量,则必须牺牲一些图表的准确性,或者不以您喜欢的格式在图表上显示标签。如果您不需要在图表上显示标签,您可以只使用 Sec / 60
作为图表和显示数字的格式化版本。
我有以下 DAX:
(sum(usage[session_duration])/100)/sum(usage[engaged_sessions])
我遇到的问题是 returns 取决于过滤器 2.49,而它应该是 returning 4.09。 4 代表分钟数,9 代表秒数。
我写了以下内容:
Var FirstTotal = (sum(usage[session_duration])/100)/sum(usage[engaged_sessions])
Var SecondTotal = FirstTotal*100
Var ThirdTotal = SecondTotal/60
VAR WholeNumberThirdTotal = INT(ThirdTotal)
Var FirstDot = FIND(".",ThirdTotal,1,0)
Var FourthTotal = MID(ThirdTotal, FirstDot, 2)
Var FifthTotal = FourthTotal*60
RETURN WholeNumberThirdTotal & "." & FifthTotal
这似乎是 return 正确的结果。我遇到的问题是我不能在带有日期字段的图表中使用它。它只适用于卡片。
有人知道我该如何改进吗?
在我看来 returns 一个以秒为单位的值:
SUM ( usage[session_duration] ) / SUM ( usage[engaged_sessions] )
也就是说,没有 /100
你有 249s,与 4m + 9s 相同。
您可以为此添加格式以获得您想要的显示:
VAR Sec = SUM ( usage[session_duration] ) / SUM ( usage[engaged_sessions] )
RETURN
FORMAT ( INT ( Sec / 60 ), "0" ) & "." & FORMAT ( MOD ( Sec, 60 ), "00" )
正如您所指出的,这是一个文本值,因此不能用作图表视觉效果中的数值。您可以将 249 转换为十进制值 4.09,就像这样容易:
VAR Sec = SUM ( usage[session_duration] ) / SUM ( usage[engaged_sessions] )
RETURN
INT ( Sec / 60 ) + MOD ( Sec, 60 ) / 100
如果您在条形图中使用它,条形的高度将与 4.09 分钟(即 4m + 5.4s)成正比,而不是 4m + 9s(4.15 m)。
由于 Power BI 没有可用于度量的持续时间类型,如果您使用的是单个度量,则必须牺牲一些图表的准确性,或者不以您喜欢的格式在图表上显示标签。如果您不需要在图表上显示标签,您可以只使用 Sec / 60
作为图表和显示数字的格式化版本。