Data Modeling With Dax 简明教程

Extending the Data Model

在本章中,您将学习如何扩展在前面的章节中创建的数据模型。扩展数据模型包括:

  1. Addition of tables

  2. 在现有表中添加计算列

  3. 在现有表中创建度量

其中,创建度量至关重要,因为它涉及在数据模型中提供新的数据见解,这些见解将使用户在分析数据和做出决策时可以避免返工并节省时间。

由于损益分析涉及使用时间段并且您将使用 DAX 时间智能函数,因此您需要在数据模型中拥有“日期”表。

如果您不了解“日期”表,请通读章节——理解“日期”表。

您可以按以下方式扩展数据模型 -

  1. 为了在数据表(即“财务数据”表)与“日期”表之间创建关系,您需要在“财务数据”表中创建计算列“日期”。

  2. 为了执行不同类型的计算,您需要在数据表 - “财务数据”和查找表 - “帐户”和“地理位置”之间创建关系。

  3. 您需要创建各种度量,这些度量可帮助您执行多个计算并进行所需的分析。

这些步骤实质上构成了使用数据模型进行损益分析的数据建模步骤。但是,这是对您要使用 Power Pivot 数据模型执行的任何类型数据分析执行的一系列步骤。

此外,您还将在后续章节中了解如何创建度量以及如何在 Power 透视表中使用它们。这将让您充分了解使用 DAX 建模数据和使用 Power 透视表对数据进行分析的情况。

Adding a Date Table to the Data Model

为跨越财政年度的时间段创建“日期”表,如下所示 -

  1. 在新 Excel 工作表中创建一个单列表格,其中标题为 - “日期”,连续日期范围从 7/1/2011 到 6/30/2018。

  2. 从 Excel 中复制表格并将其粘贴到 Power Pivot 窗口中。这将在 Power Pivot 数据模型中创建一个新表格。

  3. 将该表命名为“日期”。

  4. 确保“日期”表中的“日期”列的数据类型为 - 日期 (DateTime)。

接下来,您需要根据以下步骤向“日期”表中添加计算列——财政年度、财政季度、财政月份和月份 -

Fiscal Year

假设财政年度末为 6 月 30 日。那么,一个财政年度从 7 月 1 日跨度到 6 月 30 日。例如,时期 7/1/2011 (7/1/2011) 至 6/30/2012 (6/30/2012) 将是财政年度 2012 年。

在“日期”表中,假设您想表示与 FY2012 相同的内容。

  1. 你需要首先提取日期的财政年度部分,并用 FY 附加。对于 2011 年 7 月到 2011 年 12 月的日期,财政年度为 1+2011。对于 2012 年 1 月到 2012 年 6 月的日期,财政年度为 0+2012。概括地说,如果财政年度结束的月份为 FYE,请执行以下操作 - Integer Part of ((Month – 1)/FYE) + Year 接下来,获取最右边的 4 个字符以获取财政年度。

  2. 在 DAX 中,你可以表示为 -RIGHT(INT((MONTH('Date'[Date])-1)/'Date'[FYE])+YEAR('Date'[Date]),4)

  3. 使用 DAX 公式 -="FY"&RIGHT(INT((MONTH('Date'[Date])-1)/'Date'[FYE])+YEAR('Date'[Date]),4) 在 Date 表中添加计算的列 Fiscal Year

Fiscal Quarter

如果 FYE 表示财政年度结束的月份,则财政季度可获得为

Integer Part of ((Remainder of ((Month+FYE-1)/12) + 3)/3)

  1. 在 DAX 中,你可以表示为 -INT((MOD(MONTH('Date'[Date])+'Date'[FYE]-1,12)+3)/3)

  2. 使用 DAX 公式 -'Date'[FiscalYear]&"-Q"&FORMAT( INT((MOD(MONTH('Date'[Date]) + 'Date'[FYE]-1,12) + 3)/3), "0") 在 Date 表中添加计算的列 Fiscal Quarter

Fiscal Month

如果 FYE 表示财政年度结束,则财政月份可获得为

(Remainder of (Month+FYE-1)/12) + 1

  1. 在 DAX 中,您可以表示为 −MOD(MONTH('Date'[Date])+'Date'[FYE]-1,12)+1

  2. 添加日期表中计算的列 Fiscal Month,DAX 公式为 −='Date'[Fiscal Year]&"-P" & FORMAT(MOD(MONTH([Date])+[FYE]-1,12)+1,"00")

Month

最后,添加计算的列 Month,表示财年中表示月份数,如下所示 −

=FORMAT(MOD(MONTH([Date])+[FYE]-1,12)+1,"00") & "-" & FORMAT([Date],"mmm")

生成日期表如下面截图所示。

month

标记表 – 指定日期为日期表,以 - 日期作为具有唯一值的列,如下面截图所示。

mark as data table

Adding Calculated Columns

要创建财务数据表和日期表之间的关系,需要在财务数据表中创建一列日期值。

  1. 在财务数据表中添加计算的列日期,使用 DAX 公式 −= DATEVALUE ('Finance Data'[Fiscal Month])

Defining Relationships Between Tables in the Data Model

在数据模型中有以下表 −

  1. 数据表 - 财务数据

  2. 查找表 - 帐户和地理位置

  3. Date table - Date

若要在数据模型中的表格之间定义关系,请执行以下步骤:

  1. 查看 Power Pivot 中的“图表视图”中的表格。

  2. 创建表格之间的下列关系:财务数据表格与帐户表格间的关系,其中包含帐户列。财务数据表格与地理位置表格间的关系,其中包含利润中心列。财务数据表格与日期表格间的关系,其中包含日期列。

relationships

Hiding Columns from Client Tools

若数据表格中包含任何不作为任何数据透视表的字段的列,则可将它们隐藏在数据模型中。然后,它们将不会在“数据透视表字段”列表中显示。

在“财务数据”表格中,有 4 个列(财政月份、日期、帐户和利润中心),这些列将不会用作任何数据透视表的字段。因此,可隐藏它们,以便它们不会显示在“数据透视表字段”列表中。

  1. 在“财务数据”表格中选择列 - 财政月份、日期、帐户和利润中心。

  2. 右键单击,然后在下拉列表中选择“隐藏于客户端工具”。

hiding columns from client tools

Creating Measures in the Tables

你现在已经准备好使用数据模型和 Power 数据透视表来进行数据建模和 DAX 分析。

在后续章节中,你将学习如何创建度量,以及如何在 Power 数据透视表中使用它们。你将在数据表格(即财务数据表格)中创建所有度量。

你将在数据表(财务数据)中使用 DAX 公式创建度量,你可将其用于任意数量的数据透视表,以进行数据分析。度量本质上是元数据。在数据表中创建度量是数据建模的一部分,而在 Power 数据透视表中对它们进行汇总是数据分析的一部分。