第 5 课:创建计算列
在本课中,将通过添加计算列在模型中创建新数据。 计算列基于模型中的现有数据。 若要了解详细信息,请参阅 计算列。
将在三个不同的表中创建五个计算列。 步骤对于每个任务略有不同。 这是为了说明有多种方法可用来创建新列、对其进行重命名,以及将其放置在表中的各种位置。
学完本课的估计时间: 15 分钟
先决条件
本主题是表格建模教程的一部分,应当按顺序完成。 在执行本课程中的任务之前,应已完成上一课: 第 4 课:创建关系。
创建计算列
在 DimDate 表中创建 MonthCalendar 计算列
单击“模型”菜单>“模型视图”视图>。
只能在数据视图中使用模型设计器创建计算列。
在模型设计器中,单击“DimDate”表(选项卡)。
右键单击“CalendarQuarter”列标题,并单击“插入列”。
一个名为“Calculated Column 1”的新列将插入到“Calendar Quarter”列的左侧。
在表上面的编辑栏中,键入以下公式。 “自动完成”可帮助你键入列和表的完全限定名称,并将列出可用的函数。
=RIGHT(" " & FORMAT([MonthNumberOfYear],"#0"), 2) & " - " & [EnglishMonthName]然后,会在计算列中为所有行填充值。 如果在表中向下滚动,会看到,根据每行中的数据,各行中的此列可能具有不同的值。
将此列重命名为“MonthCalendar”。

MonthCalendar 计算列提供月份的可排序名称。
在 DimDate 表中创建 DayOfWeek 计算列
在“DimDate”表仍然处于活动状态的情况下,单击“列”菜单,并单击“添加列”。
在公式栏中,键入以下公式:
=RIGHT(" " & FORMAT([DayNumberOfWeek],"#0"), 2) & " - " & [EnglishDayNameOfWeek]完成公式构建后,按 ENTER。 新列将添加到表的最右侧。
将此列重命名为“DayOfWeek”。
单击该列标题,然后将该列拖动到“EnglishDayNameOfWeek”列和“DayNumberOfMonth”列之间。
提示
移动表中的列可使表变得更易于浏览。
DayOfWeek 计算列提供周几的可排序名称。
在 DimProduct 表中创建 ProductSubcategoryName 计算列
在“DimProduct”表中,滚动到表的最右侧。 请注意,最右侧的列名为“添加列”(斜体),单击列标题。
在公式栏中,键入以下公式。
=RELATED('DimProductSubcategory'[EnglishProductSubcategoryName])将该列重命名为“ProductSubcategoryName”。
ProductSubcategoryName 计算列用来在 DimProduct 表中创建一个层次结构,该层次结构将包括来自 DimProductSubcategory 表的 EnglishProductSubcategoryName 列中的数据。 层次结构不能跨多个表。 后面在第 9 课,会创建层次结构。
在 DimProduct 表中创建 ProductCategoryName 计算列
在“DimProduct”表仍然处于活动状态的情况下,单击“列”菜单,并单击“添加列”。
在公式栏中,键入以下公式:
=RELATED('DimProductCategory'[EnglishProductCategoryName])将该列重命名为“ProductCategoryName”。
ProductCategoryName 计算列用来在 DimProduct 表中创建一个层次结构,该层次结构将包括来自 DimProductCategory 表的 EnglishProductCategoryName 列中的数据。 层次结构不能跨多个表。
在 FactInternetSales 表中创建 Margin 计算列
在模型设计器中,选择“FactInternetSales”表。
添加新列。
在公式栏中,键入以下公式:
=[SalesAmount]-[TotalProductCost]将此列重命名为“Margin”。
将列拖动到 SalesAmount 列和 TaxAmt 列之间。

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




