快速提示: 时间 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时的键盘快捷键/热键”

使用DAX中的表和行构造器在SSAS表格中创建自定义表

Dynamic_Measures_in_Card_Visual _-_ Power_BI_Desktop

不久前,我正在进行一个Power BI项目,客户希望在模型中直接定义一个新表。在Power BI Desktop中最简单的方法是“输入数据”,它通过键入或粘贴新内容来创建新表。前几天我在想那个项目,然后想着,嘿,当SSAS Tabular 2016中没有可用的Power Query(M)语言时,我们如何在SSAS Tabular中做同样的事情。好消息是 功率查询将在SQL Server vNext的下一版本的SSAS Tabular中可用。但是,在此之前,解决方法是将数据输入CSV文件,然后将其加载到模型中。另一种方法是使用SQL Server 2016表格模型在DAX中实现自定义表 表和行构造器。在本文中,我向您展示了一种使用DAX中的表构造函数在SSAS Tabular中创建自定义表的方法。您可以在Power BI中执行相同的原则。因此,如果您不想使用“输入数据”功能(该功能有效地使用Power Query在Power BI Desktop中创建新表),则可以使用DAX进行此操作。

要求

如果还没有SQL Server 2016,则可能是时候下载并安装它了。在本文中,我将AdventureWorksDW用作示例数据库。

情境

您参与了SSAS表格项目,客户要求使用动态卡在Power BI中提供报告,以便卡可视化视图中显示的值应根据从切片器选择的度量来动态更改。您在模型中有几种不同的度量,客户希望仅在一个Card视觉中动态显示其中的一些度量。考虑您在卡中显示以下措施:

  • 互联网销售总额
  • 2014年的互联网销售
  • 互联网销售交易总数

您必须创建一个逻辑,以便用户可以选择以上任意一种措施以在单个Card视觉中显示。

这个怎么运作

满足要求后,就可以开始在SQL Server数据工具(SSDT)中实现上述方案了。在SSAS Tabular 2016中创建计算表非常容易。我们需要做的就是创建一个包含两列的自定义表。一列存储度量的友好名称,另一列包含度量的DAX表达式。您可能已经注意到,我在谈论在DAX中创建自定义表格并将其填充值。继续阅读以了解操作方法。我们要做的是使用DAX中的表构造函数创建一个计算表。 表和行构造器 在SSAS表格中的DAX的早期版本中不可用。它们非常类似于 清单 或清单 元组 就像我们在MDX中拥有的一样。

稍后,当我们在SSDT中创建示例模型时,我将对此进行解释。 继续阅读 “使用DAX中的表和行构造器在SSAS表格中创建自定义表”

在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”