Powerbi 数据转换工具推荐
我在Power BI中有大量原始故障数据Powerbi 数据转换工具推荐,powerbi,dax,azure-data-factory,Powerbi,Dax,Azure Data Factory,我在Power BI中有大量原始故障数据 code time status x123 2019-04-22T23:57:00 ok x123 2019-04-23T01:00:00 faulty x123 2019-04-23T02:00:00 ok x123 2019-04-23T23:00:00 faulty x123 2019-04-24T01:00:00
code time status
x123 2019-04-22T23:57:00 ok
x123 2019-04-23T01:00:00 faulty
x123 2019-04-23T02:00:00 ok
x123 2019-04-23T23:00:00 faulty
x123 2019-04-24T01:00:00 ok
我需要对其进行转换,以显示某个项目在给定的一天中处于错误状态的时间。所以在23日,该产品在凌晨1点到2点之间出现故障,然后在晚上11点到午夜之后再次出现故障
code day % of day faulty
x123 23/04/2019 8.30% (2 hours)
我可以在Power BI中轻松做到这一点,还是应该使用其他工具,如Azure Data Factory?将以下计算列添加到表中:
报告日期=表1[时间].[日期]
Fault Duration =
VAR CurrentTime = Table1[time]
VAR CurrentCode = Table1[code]
VAR PreviousTime =
CALCULATE (
MAX ( Table1[time] ),
FILTER (
Table1,
Table1[time] < CurrentTime &&
Table1[code] = CurrentCode
)
)
VAR NextTime =
CALCULATE (
MIN ( Table1[time] ),
FILTER (
Table1,
Table1[time] > CurrentTime &&
Table1[code] = CurrentCode
)
)
VAR FaultyFrom =
IF(
Table1[status] = "faulty",
Table1[time],
IF (
DAY(PreviousTime) = DAY(Table1[time]),
BLANK(),
Table1[time].[Date]
)
)
VAR FaultyTo =
IF (
Table1[status] = "ok",
Table1[time],
IF (
DAY(NextTime) = DAY(Table1[time]),
NextTime,
Table1[time].[Date] + 1
)
)
RETURN
IF(
ISBLANK ( PreviousTime ) || ISBLANK ( NextTime ) || ISBLANK ( FaultyFrom ),
BLANK(),
FaultyTo - FaultyFrom
)
输出:
有关PBIX文件的工作示例,请参见!非常感谢much@Olly我正在尝试根据您的答案创建计算列“PreviousTime”。当我把“CurrentTime”和“CurrentCode”放在比较的右边时,它就工作了。然而,当我把Table1[time]和Table1[code]放在右边时,它就不起作用了。它会产生所有空白值。你能解释一下这种行为吗?背景。当我们计算变量时,我们有行级别的上下文<代码>计算强制进行上下文转换(这是我们想要的,因为我们想要查看表中的所有行),因此行级上下文不再存在。我们可以使用前面的
(Table1[time])
来代替变量,但是只对变量进行一次评估会带来(微小的)性能提升。@Olly感谢您的解释。我现在明白了。
Faulty % Day =
IF (
HASONEVALUE ( Table1[Report Date] ),
DIVIDE (
[Faulty Hours],
DISTINCTCOUNT ( Table1[code] ),
BLANK()
),
BLANK()
)