我在 Power BI 中遇到这个问题,我无法弄清楚。我在 PBI 桌面中加载了一个共享点 Excel 工作表(我无法编辑)。 它是一个矩阵/表格,包含项目、SLA 和每周实际值。需要根据我们当周是否达到 SLA 目标,对每周和值进行颜色编码。 但有些值是“越低越好”,有些是“越高越好”。
还有 53 周的栏目,我不知道如何对所有这些栏目应用条件格式,如图所示。 非常感谢您的帮助!
我尝试在列上应用条件格式,但是列太多,而且它还允许我应用“越低越好”或“越高越好”逻辑。 一定有更好的方法
项目 | SLA | 目标 | 单位 | W1 | W2 | W3 | W4 | W5 | ...... | W53 |
---|---|---|---|---|---|---|---|---|---|---|
亚马逊 | 已接听电话 | 80 | % | 90 | 70 | 85 | ||||
亚马逊 | 销售结束 | 70 | % | 75 | 80 | 90 | ||||
亚马逊 | 病假时间* | 465 | h | 200 | 560 | 540 | ||||
阿尔迪 | 已接听电话 | 80 | % | 70 | 89 | 90 | ||||
阿尔迪 | 已回复电子邮件 | 90 | % | 80 | 81 | 82 | ||||
阿尔迪 | 平均处理时间* | 300 | 秒 | 360 | 205 | 200 | ||||
乐购 | 销售结束 | 70 | % | 50 | 76 | 79 | ||||
乐购 | 已回复电子邮件 | 90 | % | 90 | 91 | 93 | ||||
乐购 | 聊天已回复 | 90 | % | 95 | 94 | 95 | ||||
乐购 | 处理呼叫的平均时间* | 350 | 秒 | 360 | 460 | 340 |
理想情况下,对于您的矩阵,您将有一种用于值的度量,以及另一种用于条件格式的度量。您还将有一个用于 W1...W53 的列,您将在矩阵列中使用它。
对于上述情况,您将需要重新塑造数据模型。在 PowerQuery 中,我会将您的一张表拆分为两张表。
SLA
。Metric Id
标题并选择 Unpivot other columns
。在公式栏中,将 Attribute
重命名为 Week
。将查询命名为 SLA Value
。Week
:let
Source = List.Generate(() => 1, each _ < 54, each _ + 1, each "W" & Text.From(_)),
#"Converted to table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Renamed columns" = Table.RenameColumns(#"Converted to table", {{"Column1", "Week"}})
in
#"Renamed columns"
您应该有三个如下所示的表:
表/查询:
SLA
(来自上面的步骤 2)
项目 | SLA | 目标 | 单位 | 公制 ID |
---|
表/查询:
SLA Value
(来自上面的步骤 3)
公制 ID | 周 | 价值 |
---|---|---|
1 | W1 | 90 |
1 | W2 | 70 |
表/查询:
Week
(来自上面的步骤 3)
周 |
---|
W1 |
W2 |
关闭并应用。
本质上,
SLA Value
是您的事实表,另外两个是您的维度表。
创建我们将用于条件格式的度量:
CF SLA Value =
var t = MIN('SLA'[Target])
var v = MIN('SLA Value'[Value])
var lowerBetter = CONTAINSSTRING(SELECTEDVALUE('SLA'[SLA]), "~*")
return IF(
lowerBetter,
IF(v <= t, "G", "R"),
IF(v >= t, "G", "R")
)
构建矩阵:
Rows
:从 SLA
表中添加:项目、SLA、单位、目标Columns
:从 Week
表中添加:周Values
:从 SLA Value
表中添加:值然后展开所有行。
在视觉属性中的行标题下:
+/- icons
Stepped layout
然后关闭 Column subtotals
和 Row subtotals
。在
Cell elements
下,添加背景颜色条件格式,如下所示:
希望能给你一个像这样的矩阵: