在Power 双中使用SWITCH()和ISINSCOPE()DAX函数突出显示每个层次结构平均销售额以下

在Power 双中使用SWITCH()和ISINSCOPE()DAX函数突出显示每个层次结构平均销售额以下

不久前,我在一个项目上工作,客户对柱形图有条件格式要求。
他们希望根据基于您所处的层次结构的平均值,有条件地对图表中的列设置格式。
在这种情况下,我的日历层次结构如下:

  • 日历层次结构:
    • 学期
    • 25美分硬币

我用“Adventure Works DW2017,互联网销售”Excel作为Power 双 Desktop中的源。如果我想形象化“Total Sales” over the above “Calendar Hierarchy”我得到这样的东西:

Line Chart in Power 双, 总销售额 通过  年

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

Adding 平均线 to Line Chart in Power 双

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

Power 双,折线图中的钻井

容易吧?

现在,要求是在一个“柱形图”(是的!用柱形图可视化时间序列,’则是客户的期望值),然后用橙色突出显示值低于平均值的列,其余的保留为默认主题颜色。

因此,我需要创建度量以有条件地格式化柱形图。我还需要在以下方面增加一些智能:

  • 检测我所在的层次结构级别
  • 计算该特定层次结构级别的平均销售额
  • 更改低于平均值的列的颜色

让’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”
Detecting 年, 学期, 25美分硬币, 月 and 天 hierarchy levels with ISINSCOPE in Power 双桌面

如你所见“ISINSCOPE 年” shows “True” for the “Year” level. 让’扩展到下一个级别,并查看其他度量如何工作:

继续阅读 “在Power 双中使用SWITCH()和ISINSCOPE()DAX函数突出显示每个层次结构平均销售额以下”

SSAS表格和Power 双中的DAX度量相关性

达克斯度量是每个SSAS表格模型,Power 双和Power Pivot解决方案的核心。您编写了许多DAX度量,并可能在其他度量中引用其中的一些。因此,您编写和通过其他度量引用的DAX度量的数量增长很快。特别是在复杂的解决方案中,您可能有数百种DAX度量。尽管您的解决方案可以完美运行,但是进行微小的更改或在解决方案中添加新的度量或解决现有度量中的问题可能会令人头疼。在本文中,我将更进一步,展示一种简单的方法来获取整个数据模型的依赖关系,然后可视化Power 双中的依赖关系。您可以在本文末尾找到下载链接。

一个简单的搜索 谷歌 带给您许多讨论该主题的有用文章。在我看来,一些最好的方法如下:

在这篇文章中,我使用了DMV,它为我们提供了我们想要的一切。 ( 克里斯·韦伯 已经在这里讨论了DMV: 达克斯计算之间的文档依存关系)。运行DMV,我们可以看到其他度量引用了哪些度量,在计算出的列中引用了哪些列等等。

这是非常有用的DMV,可帮助我们更好地了解正在处理的模型。我们也可以使用此方法进行文档编制。

这个怎么运作

此方法非常简单,您只需要在SSAS表格模型或Power 双 Desktop文件之上运行以下DMV,然后将结果导入Power 双。

SELECT * FROM $ System.DISCOVER_CALC_DEPENDENCY

对于Power 双,您需要 查找本地端口号 那你就好了乍一看似乎唯一不是很简单的部分就是在Power 双 Desktop模型中查找数据库。

找到打开的Power 双 Desktop文件的本地端口号之后,一种简单的方法是在连接到Power 双 Desktop模型时从SQL Server Management Studio(SSMS)查找数据库名称:

  • 打开SSMS
  • 选择“Analysis Services” as “Server Type”
  • 输入“本地主机:PORT_NUMBER” as “Server Name” then click “Connect”

从SSMS连接到Power 双 Desktop模型

继续阅读 “SSAS表格和Power 双中的DAX度量相关性”