如何在Power Bi中创建计算列?

时间:2020-04-07 16:59:27

标签: powerbi dax

我是Power BI的新手,想知道是否有人可以帮助我。

我有一张桌子

A        B         Status
---------------------------
Asset1       B1       Compliant
Asset1       B2       N/A
Asset2       B1       Non- Compliant
Asset2       B2       Compliant
Asset3       B1       Compliant
Asset3       B2       Compliant


我必须找到100%符合要求的资产(资产计数,其中B列的所有行的状态都符合要求,而不是不符合要求,我们需要忽略不适用。

我想要的输出

100%合规

Asset1 Y
Asset2 N
Asset3 Y

谢谢

2 个答案:

答案 0 :(得分:0)

已编辑:

您可以创建一个度量:

IsCompliant = 
VAR NumNonCompliant = CALCULATE(COUNTAX('Table', [B]), 'Table'[Status] = "Non - Compliant")
RETURN IF(NumNonCompliant = 0, "Y", "N")

变量NumConCompliant计算状态=“不符合标准”的行数。然后将其与0进行比较,以发现任何不符合项。

然后,该度量在给定的上下文中返回状态“ A”。这使您可以灵活地将合规性指标分配给资产组合。例如,如果过滤“ A = Asset1”上的数据,则结果将为“ Y”,并且(A = Asset1 || A = Asset2)得出“ N”。 (因为Asset1和Asset2的组合不合规)。

请参阅this文档,以了解度量和上下文。

答案 1 :(得分:0)

您可以在表格中创建一个额外的列:

100% Cpmpliant = 
var asset = Compliant[A]
var allRows = CALCULATE(COUNTROWS(Compliant); FILTER(Compliant; Compliant[A] = asset && Compliant[Status] <> "N/A"))
var compliantRows = CALCULATE(COUNTROWS(Compliant); FILTER(Compliant; Compliant[A] = asset && Compliant[Status] = "Compliant"))
return if (allRows = compliantRows; "Y";"N")

这将计算不含N / A的资产行,并将其与合规行数进行比较。如果相等,则它们都符合要求-

接下来,您可以使用下面的两列屁股创建一个视觉效果:

enter image description here