
不久前,我在一个项目上工作,客户对柱形图有条件格式要求。
他们希望根据基于您所处的层次结构的平均值,有条件地对图表中的列设置格式。
在这种情况下,我的日历层次结构如下:
- 日历层次结构:
- 年
- 学期
- 25美分硬币
- 月
- 天
我用 “Adventure Works DW2017,互联网销售”Excel作为Power 双 Desktop中的源。如果我想形象化“Total Sales” over the above “Calendar Hierarchy”我得到这样的东西:

现在我激活“Average Line” from “Analytics”折线图标签。

当我在折线图中向下钻取时,“平均”线显示了我所在的特定层次结构级别的平均值。这很酷,我可以根据我所获得的级别获得平均值’m in code free.

容易吧?
现在,要求是在一个“柱形图”(是的!用柱形图可视化时间序列,’则是客户的期望值),然后用橙色突出显示值低于平均值的列,其余的保留为默认主题颜色。
因此,我需要创建度量以有条件地格式化柱形图。我还需要在以下方面增加一些智能:
- 检测我所在的层次结构级别
- 计算该特定层次结构级别的平均销售额
- 更改低于平均值的列的颜色
让’s get it done!
使用ISINSCOPE()DAX函数检测层次结构级别
微软介绍 ISINSCOPE() 达克斯 功能 2018年11月版本 Power 双 桌面。宣布后不久“Kasper de Jonge” wrote a concise 博客文章 关于它。
因此,我尝试使其尽可能简单。这是工作原理,ISINSCOPE()函数返回“True”当指定的列在层次结构级别中时。如前所述,我们有一个“Calendar Hierarchy”包括以下5个级别:
- 年
- 学期
- 25美分硬币
- 月
- 天
因此,要确定我们是否处于上述每个层次结构级别中,我们只需要创建如下的DAX度量即可:
ISINSCOPE年 = ISINSCOPE('Date'[Year])
ISINSCOPE 学期 = ISINSCOPE('Date'[Semester])
ISINSCOPE 25美分硬币 = ISINSCOPE('Date'[Quarter])
ISINSCOPE 月 = ISINSCOPE('Date'[Month])
ISINSCOPE 天 = ISINSCOPE('Date'[Day])
现在让’做一个简单的实验。
- 在画布上放置一个矩阵
- 放在“Calendar Hierarchy” to “Rows”
- 采取上述措施“Values”

如你所见“ISINSCOPE 年” shows “True” for the “Year” level. 让’扩展到下一个级别,并查看其他度量如何工作:
继续阅读 “在Power 双 中使用SWITCH()和ISINSCOPE()DAX函数突出显示每个层次结构平均销售额以下”