快速提示 : 时间 Dimension with 时间 Bands at Seconds Granularity in Power 双 和 SSAS 表格

时间 Dimension with 时间 Bands at Seconds Granularity in  Power  双    和   SSAS 表格

过去我也写过其他有关此主题的文章,您可以找到它们 这里 这里 。在第一篇文章中,我解释了如何创建“Time”时间带的维度 分钟 粒度。然后,我的一位客户要求“Time”几秒钟内的尺寸,这鼓励了我写第二篇博客文章。在第二篇博文中,虽然我没有’t做时间带,所以我在这里写第三篇文章,这是第二篇文章支持5分钟,15分钟,30分钟,45分钟和60分钟的时间带的变体。“Time”尺寸降至秒。在这篇快速文章中,我直接跳到重点,向您展示如何生成“Time”维度以三种不同的方式,即在SQL Server中使用T-SQL,使用Power Query(M)和DAX。然后是这里:

时间 Dimension at Second Grain with 功率查询 (M) Supporting 时间 Bands:

在查询编辑器中复制/粘贴以下代码’s 高级 Editor to generate 时间 dimension in 功率查询:

let
Source = Table.FromList({1..86400}, Splitter.SplitByNothing()),
    #"Renamed Columns" = Table.RenameColumns(Source,{{"Column1", "ID"}}),
    #"时间 Column Added" = Table.AddColumn(#"Renamed Columns", "时间", each 时间.From(#datetime(1970,1,1,0,0,0) +  #duration (0,0,0,[ID]))),
    #"Hour Added" = Table.AddColumn(#"时间 Column Added", "Hour", each 时间.Hour([Time])),
    #"Minute Added" = Table.AddColumn(#"Hour Added", "Minute", each 时间.Minute([Time])),
    #"5 Min Band Added" = Table.AddColumn(#"Minute Added", "5 Min Band", each 时间.From(#datetime(1970,1,1,0,0,0) +  #duration (0, 0, Number.RoundDown(Time.Minute([Time])/5) * 5, 0))  +   #duration (0, 0, 5, 0)),
    #"15 Min Band Added" = Table.AddColumn(#"5 Min Band Added", "15 Min Band", each 时间.From(#datetime(1970,1,1,0,0,0) +  #duration (0, 0, Number.RoundDown(Time.Minute([Time])/15) * 15, 0))  +   #duration (0, 0, 15, 0)),
    #"30 Min Band Added" = Table.AddColumn(#"15 Min Band Added", "30 Min Band", each 时间.From(#datetime(1970,1,1,0,0,0) +  #duration (0, 0, Number.RoundDown(Time.Minute([Time])/30) * 30, 0))  +   #duration (0, 0, 30, 0)),
    #"45 Min Band Added" = Table.AddColumn(#"30 Min Band Added", "45 Min Band", each 时间.From(#datetime(1970,1,1,0,0,0) +  #duration (0, 0, Number.RoundDown(Time.Minute([Time])/45) * 45, 0))  +   #duration (0, 0, 45, 0)),
    #"60 Min Band Added" = Table.AddColumn(#"45 Min Band Added", "60 Min Band", each 时间.From(#datetime(1970,1,1,0,0,0) +  #duration (0, 0, Number.RoundDown(Time.Minute([Time])/60) * 60, 0))  +   #duration (0, 0, 60, 0)),
    #"Removed Other Columns" = Table.SelectColumns(#"60 Min Band Added",{"时间", "Hour", "Minute", "5 Min Band", "15 Min Band", "30 Min Band", "45 Min Band", "60 Min Band"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Removed Other Columns",{{"时间", type time}, {"Hour", Int64.Type}, {"Minute", Int64.Type}, {"5 Min Band", type time}, {"15 Min Band", type time}, {"30 Min Band", type time}, {"45 Min Band", type time}, {"60 Min Band", type time}})
in
#"Changed Type"
继续阅读 “Quick Tips: 时间 Dimension with 时间 Bands at Seconds Granularity in Power 双 和 SSAS 表格”

在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  双  , 总销售额 by 年

现在我激活“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美分硬币 ,  月   和   天  hierarchy levels with  ISINSCOPE  in  Power  双  桌面

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

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

快速提示:使用DAX Studio一次即可导出Power 双 桌面和Power 双 服务模型数据

出口ing Model  数据  to  CSV  
or  的SQL 服务器 in One Shot

在一些最流行的旧帖子中,我解释了如何 导出数据Power 双 Desktop 要么 Power 双 服务数据 到不同的目的地 CSV , 电子表格 的SQL 服务器。在这个快速提示中,我解释了一种非常简单的方法,可以将模型数据整体导出到DAX Studio的CSV或SQL Server中。

丹尼尔 从XXL 双 well explained 这种方法, 但是我’d迅速解释其工作原理并添加更多信息。

发布2.8版本之后 达克斯 Studio ,您现在可以一口气将整个模型快速导出到CSV和SQL Server。

在DAX Studio中启用导出所有数据

  • 打开DAX Studio
  • 请点击“File”
  • 请点击“Options”
  • 请点击“Advanced”
  • 蜱“显示导出所有数据按钮”
  达克斯  Studio 导出Power  双 模型数据设置

将Power 双 模型数据导出到CSV

  达克斯  Studio 将Power  双 模型数据导出到CSV
继续阅读 “快速提示:使用DAX Studio一次即可导出Power 双 桌面和Power 双 服务模型数据”

XMLA 端点对Power 双 意味着什么,以及如何免费对其进行测试?

 Power  双    XMLA 端点的测试环境

XMLA 端点连接以进行公共预览 已于2019年3月下旬宣布。到今天为止,它仅适用于Power 双 保费 容量用户。对于许多没有高级功能的人来说,这听起来像是一个巨大的限制,但他们希望了解它的工作原理。在本文中,我向您展示了一种尽快获得Power 双 XMLA 端点的简便方法。在开始之前,我想简单地解释一下XMLA终结点,以及它对Power 双 用户的真正意义。

Power 双 就像洋葱!它有层!

一般而言,Power 双 具有两个不同的层,表示层和数据模型层。表示层是可视层,您可以进行所有这些引人注目的报告和可视化。顾名思义,数据模型是在其中创建数据模型的层。您可以通过XMLA连接性访问该层。

在Power 双 Desktop文件中,您可以看到两个图层:

 Power  双  的不同层

XMLA 如何与Power 双 中的不同层相关?

您可能已经猜到了,XMLA仅与数据模型层有关,而与表示层无关。所以你可能 连接到数据模型, 浏览数据模型, 将数据从模型导入到其他平台,例如Excel 等等。

XMLA 并不新鲜!

认真吗是的,认真。这不是新的。已经到了 多年了,也许您已经使用了无数次。每当 您正在连接到SQL Server Analysis Services的一个实例 来自任何工具(例如SQL Server管理Studio)的多维或表格形式 (SSMS),Power 双 Report Builder,Excel,Tableau等…,您正在使用XMLA connectivity indeed.

Power 双 是SSAS表格的实例

是真的。 Power 双 运行SSAS表格的本地实例 模型。因此,每当您打开Power 双 桌面文件(PBIX)时,Power 双 都会创建一个 具有随机本地端口号的SSAS表格模型的本地实例,可以 只能在本地计算机上访问。关闭文件时,本地 SSAS 表格 实例关闭,并释放其端口号。

我首先揭示了一个事实,你可以 在2016年6月通过各种工具(例如SSMS,SQL Server Profiler,Excel等)连接到Power 双 Desktop中的基础数据模型。因此,我们确实使用XMLA长时间连接到Power 双 数据模型。我们甚至可以更进一步 将我们的Power 双 数据模型导入SSAS表格实例。从这个意义上讲,我们实际上是从Power 双 生成XMLA脚本,以在SSAS 表格 中创建相同的数据模型。多么酷啊?

太…什么是新的?

继续阅读 “XMLA端点对Power 双 意味着什么,以及如何免费对其进行测试?”