创建计算列

适用于:SQL Server 2019 及更高版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium

在本课中,将通过添加计算列在模型中创建数据。 在使用“获取数据”时,可以使用Power Query 编辑器或稍后在模型设计器中创建 (作为自定义列) 创建计算列,就像在本课程中所做的那样。 若要了解详细信息,请参阅计算列

将在三个不同的表中创建五个新的计算列。 每个任务的执行步骤稍有不同,说明可通过多种方法创建列、对其进行重命名,以及将其放置在表中的各种位置。

还将在本课中首次使用数据分析表达式 (DAX)。 DAX 是一种特殊语言,用于为表格模型创建可高度自定义的公式表达式。 在本教程中,将使用 DAX 创建计算列、度量值和角色筛选器。 若要了解详细信息,请参阅表格模型中的 DAX

学完本课的估计时间: 15 分钟

先决条件

本文是表格建模教程的一部分,应当按顺序完成。 在执行本课中的任务之前,应当已完成上一课:第 4 课:创建关系

创建计算列

在 DimDate 表中创建 MonthCalendar 计算列

  1. 单击“ 扩展>模型>模型视图>数据视图”。

    只能在数据视图中使用模型设计器创建计算列。

  2. 在模型设计器中,单击“DimDate”表(选项卡)。

  3. 右键单击“CalendarQuarter”列标题,并单击“插入列”。

    一个名为“Calculated Column 1”的新列将插入到“Calendar Quarter”列的左侧。

  4. 在表上方的编辑栏中,键入以下 DAX 公式:自动完成有助于键入列和表的完全限定名称,并列出可用的函数。

    =RIGHT(" " & FORMAT([MonthNumberOfYear],"#0"), 2) & " - " & [EnglishMonthName]  
    

    然后,会在计算列中为所有行填充值。 如果在表中向下滚动,可看到,根据每行中的数据,各行中的此列可能具有不同的值。

  5. 将此列重命名为“MonthCalendar”。

    模型设计器的屏幕截图,其中列重命名为 MonthCalendar。

MonthCalendar 计算列提供月份的可排序名称。

在 DimDate 表中创建 DayOfWeek 计算列

  1. DimDate 表仍然处于活动状态的情况下,单击“ 扩展>>添加列”。

  2. 在公式栏中,键入以下公式:

    =RIGHT(" " & FORMAT([DayNumberOfWeek],"#0"), 2) & " - " & [EnglishDayNameOfWeek]  
    

    完成公式构建后,按 ENTER。 新列将添加到表的最右侧。

  3. 将此列重命名为“DayOfWeek”。

  4. 单击列标题,然后将该列拖动到 EnglishDayNameOfWeek 列和 DayNumberOfMonth 列之间。

    提示

    移动表中的列可使表变得更易于浏览。

DayOfWeek 计算列提供周几的可排序名称。

在 DimProduct 表中创建 ProductSubcategoryName 计算列

  1. 在“DimProduct”表中,滚动到表的最右侧。 请注意,最右侧的列名为 “添加列”,请单击列标题使其处于活动状态。

  2. 在公式栏中,键入以下公式:

    =RELATED('DimProductSubcategory'[EnglishProductSubcategoryName])  
    
  3. 将该列重命名为“ProductSubcategoryName”。

ProductSubcategoryName 计算列用于在 DimProduct 表中创建层次结构,该层次结构将包括 DimProductSubcategory 表的 EnglishProductSubcategoryName 列中的数据。 层次结构不能跨多个表。 稍后将在第 9 课中创建层次结构。

在 DimProduct 表中创建 ProductCategoryName 计算列

  1. DimProduct 表仍然处于活动状态的情况下,添加新列。

  2. 在公式栏中,键入以下公式:

    =RELATED('DimProductCategory'[EnglishProductCategoryName]) 
    
  3. 将该列重命名为“ProductCategoryName”。

ProductCategoryName 计算列用于在 DimProduct 表中创建层次结构,该层次结构包括 DimProductCategory 表的 EnglishProductCategoryName 列中的数据。 层次结构不能跨多个表。

在 FactInternetSales 表中创建 Margin 计算列

  1. 在模型设计器中,选择“FactInternetSales”表。

  2. 在“SalesAmount”列与“TaxAmt”列之间创建一个新的计算列。

  3. 在公式栏中,键入以下公式:

    =[SalesAmount]-[TotalProductCost]
    
  4. 将此列重命名为“Margin”。

    已调出 Margin 列的模型设计器的屏幕截图。

    Margin 计算列用来分析每次销售的利润率。

后续步骤

第 6 课:创建度量值