快速提示: 时间 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 Advanced 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函数突出显示每个层次结构平均销售额以下”

快速提示:如何按列的降序对矩阵进行排序

如何按列降序对矩阵进行排序

今天微软发布了 Power 双 桌面 2020年3月 我希望它在Matrix visual上包含一个简单的功能,以便能够按列以降序对Martix进行排序,但是,它没有’t。因此,在本文中,我快速向您展示如何按列降序对Matrix进行排序。

这是场景。我的一位客户正在Power 双 中生成一个报表,该报表按以下矩阵显示按年,月和周的销售额。

Power  双 中的Matrix Visual
Power 双 中的Matrix Visual

一切看起来都很好!但是快速查看Matrix排序可以发现该功能不可用(YET)。但是客户希望看到按年份降序排列的矩阵,像这样。

按列标题降序排列矩阵
按列标题降序排列矩阵

这是超级简单的解决方案。

继续阅读 “快速提示:如何按列的降序对矩阵进行排序”

通过颜色编码在Power 双 中增强故事讲述数据的可视化能力

Power  双 中的颜色编码

这篇文章在我的博客列表中等待了一段时间,现在这是我在2019年发布的最后一篇文章。我希望大家度过美好的一年。

在这篇文章中,我讨论了数据可视化的一个非常重要的方面。颜色编码。我相信,颜色编码是向用户提供适当信息的最强大,最有效的方法之一。作为人类,我们知道颜色可以说明很多事情。例如,我们看着绿草,如果是浅绿色,我们会立即了解到草非常新鲜和健康。当她有点发黄时,我们知道她’也许渴了。当它变成棕色时,可能为时已晚。

另一个完美的例子是交通信号灯。当它是绿色时,每个人都很高兴,当它是黄色时,每个人都在竞速通过路口,好吧,我’我只是在开玩笑,有些人倾向于通过黄灯,而每个人都知道当红绿灯亮时必须停车吗?和…红色时,我们必须停下来。关于颜色编码及其对我们的生活的日常影响已经足够多了。让’谈论Power 双 中的颜色编码,并迅速获得更多令人兴奋的内容。

So…在Power 双 中进行颜色编码,好吧,我们可以从Power 双 诞生的第一天开始进行颜色编码,但也许不是’我将在这篇文章中进行解释。条件格式也存在了一段时间。在这篇文章中,我展示了一种我们可以在Power 双 中实现的技术,以便在整个报表中使用一致的颜色编码。

这是没有颜色编码的报告:

  无需颜色编码的Power  双 报表
无需颜色编码的Power 双 报表

现在看起来是相同的报告,用颜色编码:

 彩色Power  双 报告
彩色Power 双 报告

让’s get into it.

入门

在这项技术中,我们’请按照以下步骤操作:

  • 我们使用一些很棒的免费调色板网站在线上生成了我们所需要的颜色’d想在我们的报告中使用
  • 我们复制十六进制值并粘贴到Power 双 (通过输入数据)
  • 我们定义一个数字范围以标识我们的值将属于的范围。我个人使用百分比,但在您的情况下可能还有其他用途
  • 然后,我们定义一些度量以为要着色的度量选择特定的颜色
继续阅读 “通过颜色编码在Power 双 中增强故事讲述数据的可视化能力”