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

时间 Dimension with 时间 Bands at Seconds Granularity in  Power BI   和   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 BI 和 SSAS 表格”

快速提示:在Power BI Desktop中编写DAX时的键盘快捷键/热键

 Power BI 桌面中的DAX键盘快捷键

对于可以真正改善Power BI Desktop中的报表开发的开发而言,键盘快捷键是一个有趣的主题。在本文中,我将向您展示在Power BI Desktop中编写DAX时的一些键盘快捷键/热键。

 

  • 向右下移:Ctrl +]
  • 向左缩进:Ctrl + [

小提示:您也可以通过按TAB键向右缩进代码,或通过按Shift + TAB键向左缩进代码。但是,不同之处在于,如果光标位于一行的中间,则按TAB键会将代码分为两部分,并从光标所在的位置向右插入字符。

  • 新行保持缩进:Shift + Enter
  • 从第一行开始的新行:Alt + Enter
  • 激活智能许可证:Ctrl +空格键
  • 多行注释:Ctrl + KC或Ctrl + /
  • 取消注释多行:Ctrl + KU或Ctrl + /
  • 上/下移动当前行:Alt +上/下箭头键
  • 一次输入多行代码:Ctrl + Alt +向上/向下箭头键
  • 查找并替换单词:Ctrl + D突出显示当前单词,再次按Ctrl + D查找/突出显示下一个单词。继续按Ctrl + D查找/突出显示所有相同的单词,然后开始输入以一次替换所有单词
  • 一次查找并替换所有同类:Ctrl + Shift + L突出显示DAX表达式的一部分,然后开始输入以立即替换突出显示的单词

继续阅读 “快速提示:在Power BI Desktop中编写DAX时的键盘快捷键/热键”

使用“IN” Operator in 达克斯

 达克斯 中的IN运算符

如果您是一名SQL专家,那么我敢打赌,您已经使用过无数次“ IN”运算符。您可能还会在DAX中寻找相同的功能,并且我确定您找到了许多精彩的博客文章,向您展示了如何在DAX中模仿相同的功能。的 Power BI 桌面的十月发行 充满了新的分析功能,例如 分组,装箱和TOPN 过滤。最重要的是,DAX中的“ IN”运算符是本文撰写时尚未记录的一项新功能,或者至少我在互联网上找不到任何功能。在本文中,我将向您展示如何在DAX表达式中使用它。

要求

注1: 您需要安装SSMS2016才能编写本文中提供的DAX查询。或者,您可以使用 达克斯 Studio 。如果出于任何原因您不能使用SSMS 2016或DAX Studio,而仅拥有Power BI Desktop,请不用担心,我也会在Power BI Desktop中提供一些示例。

笔记2: 如果您运行早期版本的SQL Server,那绝对没问题。对于AdventureWorksDW2016CTP3,本文没有什么特别之处,您没有从示例数据库的旧版本中获得。但是请记住,SQL Server 2016 Developer Edition现在是免费的,您可以非常轻松地下载它。 看一下这个 如果您有兴趣了解操作方法。

入门

下载最新版本的Power BI Desktop之后,请运行它

  • 从SQL Server“获取数据”
  • 从AdventureWorksDW2016CTP3将“ FactResellerSales”,“ DimProduct”,“ DimProductCategory”,“ DimProductSubCategory”和“ DimDate”加载到Power BI Desktop模型
  • 通过从以下路径打开“ msmdsrv.port.txt”文件,找到Power BI Desktop的本地端口:

“%UserProfile%\ AppData \ Local \ Microsoft \ Power BI 桌面 \ AnalysisServicesWorkspaces \ AnalysisServicesWorkspace XXXXXXXX \数据”

注意: XXXXXXXX 后缀是一个随机数。 

  • 打开SSMS 2016并连接到Power BI Desktop模型作为Analysis Services本地服务器。您是否想了解更多有关如何通过不同软件连接Power BI Desktop模型的信息?然后 看一下这个.

SSMS连接到Power BI桌面模型

  • 打开一个MDX新查询
  • 运行以下DAX查询
EVALUATE
    SUMMARIZE('FactResellerSales'
                , DimDate[CalendarYear]
                , "Total Reseller Sales"
                , SUM('FactResellerSales'[SalesAmount])
                )

结果如下:

在SSMS中编写DAX

现在,我们要过滤“ CalendarYear”,以便查询仅显示2011年和2012年的销售值。在先前版本的Power BI Desktop,Power Pivot或SSAS表格模型中,我们必须执行的一种常见方案是使用逻辑OR运算符“ || 如下所示:

EVALUATE
FILTER(SUMMARIZE(FactResellerSales
                    , DimDate[CalendarYear]
                    , "Total Reseller Sales"
                    , sum(FactResellerSales[SalesAmount])
                    ) , DimDate[CalendarYear] = 2011  ||  DimDate[CalendarYear] = 2012
                    )

从现在开始,我们可以使用DAX中的“ IN”运算符编写上述查询,如下所示:

EVALUATE
    FILTER(
        SUMMARIZE(FactResellerSales
                    , DimDate[CalendarYear]
                    , "Total Reseller Sales"
                    , sum(FactResellerSales[SalesAmount])
                    ) 
            , DimDate[CalendarYear] 
                IN (2011, 2012)
            )

结果如下:

 达克斯 中的IN运算符

继续阅读 “Using “IN” Operator in 达克斯 ”

在Power BI中的表,矩阵和卡可视化中使用KPI

在Power BI中的表,矩阵和卡可视化中使用KPI

动力枢轴中最酷的功能之一是能够根据计算得出的指标定义KPI。您也可以在SSAS表格中创建KPI。不幸的是,Power BI中缺少此功能。在本文中,我向您展示了一种非常简单的方法来导入KPI,并在Power BI中的表,矩阵,多行卡和卡可视化中使用它们。

我使用“导入”一词,因为Power BI Desktop中尚不提供此功能,因此我们不能直接在Power BI Desktop中创建KPI,但是有解决方法,我将在本文中进行解释。

要求

  • 最新版本的Power BI Desktop
  • Microsoft 电子表格 (2007或更高版本)
  • 如果使用Excel 2007至2013,则Power Pivot加载项(Excel 2016中已提供Power Pivot)
  • 如果需要转换数据,可以使用Power Query附加组件(仅在以下位置提供Power Query: 电子表格 2010 Professional Plus和Excel 2013。它是内置功能添加到Excel 2016中。 查看此内容以了解有关Excel 2016中BI功能的更多信息)。在这篇文章中,我不会使用Power Query加载数据,因此如果您想按照本文使您的第一个示例KPI工作,则可以忽略Power Query。

这个怎么运作

解决方法非常容易。你只需要

  • 打开Excel
  • 从源将数据加载到Power Pivot模型中
  • 在Power Pivot中创建所需的计算量度
  • 在您计算的度量之上创建所需的KPI
  • 保存模型(Excel文件)
  • 将模型导入到Power BI Desktop

让我们逐步完成整个过程,看看它如何在现实世界中发挥作用。

注意 : 我使用Excel 2016和Adventure Works DW 的SQL 服务器示例数据库。如果您使用的是早期版本的Excel,则必须 下载并安装Power Pivot for 电子表格 。以下所有步骤几乎相同。

  • 打开Excel 2016
  • 在“数据”选项卡中,单击“管理数据模型”

 电子表格  2016管理数据模型

注意: 如果您使用的是早期版本的Excel,则需要在Power Pivot选项卡中单击“管理”。所有其他步骤将是相同的。

  • 从SQL Server获取外部数据动力枢轴从中获取外部数据
  • 输入服务器名称和数据库名称,然后单击下一步

动力枢轴从SQL Server获取数据

  • 选择“ FactResellerSales”,“ DimProduct”,“ DimProductCategory”和“ DimProductSubCategory”,然后单击“完成”。

动力枢轴从SQL Server获取数据

  • 成功导入数据后,单击“关闭”。

动力枢轴从SQL Server获取数据

继续阅读 “在Power BI中的表,矩阵和卡可视化中使用KPI”