【问题标题】:How to create a measure that can mark two columns conditionally?如何创建可以有条件地标记两列的度量?
【发布时间】:2021-06-03 01:31:06
【问题描述】:
我有一个类似这样的表:
| ID |
A |
B |
| 1H4 |
|
|
| 6S8 |
True |
|
| 1L7 |
|
True |
| 6T8 |
True |
|
| 7Y8 |
|
|
| 6S2 |
True |
True |
| 1H1 |
|
True |
| 6S3 |
True |
|
| 1H9 |
True |
True |
| 6S0 |
|
|
我想创建一个评估表格的度量,以便能够有条件地(以便稍后为报告制定条件规则,即在此类单元格中放置颜色值)评估以下两个条件的单元格:
- 当 A 列和 B 列中都有值时
- 当两列中都有空白/空值时
(如果两者都可以在一次测量中完成,那将是理想的)
【问题讨论】:
标签:
powerbi
dax
powerquery
powerbi-desktop
【解决方案1】:
您可以使用这样的度量:
Background Color =
var Count_A = COUNTBLANK('Table'[A])
var Count_B = COUNTBLANK('Table'[B])
RETURN
SWITCH(TRUE();
AND(Count_A = 0; Count_B = 0); "Red";
AND(Count_A > 0; Count_B > 0); "Green";
"")
首先count the blank values 在每一列中,然后根据两个计数返回不同的颜色。然后对每一列使用这个度量来conditionally format the background color:
得到这样的东西:
【解决方案2】:
您需要一个具有以下逻辑的自定义列
Column name =
SWITCH (
TRUE (),
A = 'True'
&& B = 'True', "True",
A = ''
&& B = '', "False",
"Else goes here"
)
如果没有任何内容的单元格是 '' 或真正的空白,您将不得不更改逻辑。 SWITCH 的作用类似于多重 IF 语句,使用 TRUE() 的 Switch 会在后面的步骤中评估条件。
【解决方案3】:
您可以通过使用自定义列和度量来实现所需的结果。
-
自定义列
Column =
IF (
Table[A] <> BLANK ()
&& Table[B] <> BLANK (),
"Green",
IF ( Table[A] = BLANK () && Table[B] = BLANK (), "Red" )
)
-
测量
Measure X =
IF(COUNTBLANK(Table[A]) = 0
&& COUNTBLANK(Table[B]) = 0 , "#00FF00",
IF(COUNTBLANK(Table[A]) <> 0
&& COUNTBLANK(Table[B]) <> 0 , "#FF0000")
)
-
创建度量或自定义列后,转到条件格式并选择背景颜色,您可以根据自己的选择选择度量或列。这会给你想要的结果。
输出