教程:在 Power BI Desktop 中创建自己的度量值

通过使用度量值,可以在 Power BI Desktop 中创建一些最强大的数据分析解决方案。 度量值有助于你在与报表交互时对数据执行计算。 本教程指导你了解度量值并在 Power BI Desktop 中创建自己的基本度量值。

先决条件

  • 本教程适用于已熟悉使用 Power BI Desktop 创建更高级的模型的 Power BI 用户。 你应该已经熟悉使用“获取数据和 Power Query 编辑器”导入数据、处理多个相关表以及向报表画布添加字段。 如果你不熟悉 Power BI Desktop,请务必查看 Power BI Desktop 入门

  • 本教程使用 适用于 Power BI Desktop 的 Contoso 销售示例 ,该文件包括虚构公司 Contoso 的在线销售数据。 由于此数据是从数据库导入的,因此无法连接到数据源或在 Power Query 编辑器中查看它。 下载并提取计算机上的文件。

自动化措施

Power BI Desktop 创建度量值时,通常是自动创建的。 若要查看 Power BI Desktop 如何创建度量值,请执行以下步骤:

  1. 在 Power BI Desktop 中,选择文件,然后选择打开,浏览到 Contoso 销售示例(Power BI Desktop.pbix) 文件,最后选择打开

  2. 字段窗格中,展开销售表。 然后,选中 SalesAmount 字段旁边的复选框,或将 SalesAmount 拖到报表画布上。

    新的柱形图可视化效果会出现,显示 Sales 表中 SalesAmount 列的所有值的总和。

    SalesAmount 柱形图的屏幕截图。

    字段 ”窗格中具有 sigma 图标 Sigma 图标 的任何字段(列)都是数值,并且可以聚合其值。 Power BI Desktop 不会显示具有许多值的表( SalesAmount 的 2,000,000 行),而是自动创建并计算一个度量值,以便在检测到数字数据类型时聚合数据。 Sum 是数值数据类型的默认聚合,但可以轻松应用不同的聚合,例如平均值或计数。 了解聚合是了解度量值的基础,因为每个度量值执行某种类型的聚合。

若要更改图表聚合,请执行以下步骤:

  1. 在报表画布中选择 SalesAmount 可视化效果。

  2. “可视化效果”窗格的“”区域中,选择 SalesAmount 右侧的向下箭头。

  3. 从显示的菜单中,选择“ 平均值”。

    可视化效果更改为 SalesAmount 字段中所有销售值的平均值。

    SalesAmount 平均图表的屏幕截图。

根据所需的结果,可以更改聚合的类型。 但是,并非所有类型的聚合都适用于每个数值数据类型。 例如,对于 SalesAmount 字段,Sum 和 Average 非常有用,“最小值”和“最大值”也具有其位置。 但是,Count 对 SalesAmount 字段没有意义,因为虽然其值为数值,但它们实际上是货币。

根据度量计算的值会随您与报告的互动而变化。 例如,如果将 Geography 表中的 RegionCountryName 字段拖到现有的 SalesAmount 图表上,则会更改以显示每个国家/地区的平均销售额。

显示 SaleAmount(按国家/地区)的图表的屏幕截图。

当度量值的结果因与报表的交互而更改时,会影响度量值的 上下文。 每次与报表的可视化交互时,您都在改变度量计算和显示结果的上下文。

创建和使用自己的度量值

在大多数情况下,Power BI Desktop 会根据所选字段和聚合的类型自动计算并返回值。 但是,在某些情况下,你可能想要创建自己的度量值来执行更复杂的唯一计算。 借助 Power BI Desktop,可以使用数据分析表达式(DAX)公式语言创建自己的度量值。

DAX 公式使用许多与 Excel 公式相同的函数、运算符和语法。 但是,DAX 函数旨在处理关系数据,并在与报表交互时执行更多动态计算。 有 200 多个 DAX 函数执行从简单聚合(如求和和平均值)到更复杂的统计和筛选函数等一切作。 有许多资源可帮助你了解有关 DAX 的详细信息。 完成本教程后,请参阅 Power BI Desktop 中的 DAX 基础知识

创建自己的度量值时,它称为 模型 度量值,并将其添加到所选表的 “字段 ”列表中。 模型度量的一些优点是,你可以将其命名为所需的任何名称,使它们更具可识别性。 可以将它们用作其他 DAX 表达式中的参数,并且可以使其快速执行复杂计算。

快速度量值

许多常见计算可用作 快速度量值,这些度量值基于窗口中的输入为你编写 DAX 公式。 这些快速、强大的计算也非常适合学习 DAX 或创建您自己的自定义度量值。

使用以下方法之一创建快速度量值:

  • 在“ 字段 ”窗格中的表中,右键单击或选择“ 更多选项 ”(...),然后从列表中选择 “新建快速度量 值”。

  • 在 Power BI Desktop 功能区的“开始”选项卡中的“计算”下,选择“新建快速度量值”。

有关创建和使用快速度量值的详细信息,请参阅 “使用快速度量值”。

创建度量值

假设你想要通过减去总销售额的折扣和回报来分析净销售额。 对于可视化中现有的上下文,您需要一个度量,将 DiscountAmount 和 ReturnAmount 的总和从 SalesAmount 的总和中减去。 字段列表中没有“净销售额”字段,但您可以利用现有的基础来创建自己的度量来计算净销售额。

若要创建度量值,请执行以下步骤:

  1. “字段”窗格中,右键单击“销售”表,或将鼠标悬停在表上,然后选择“更多选项”(...)。

  2. 从显示的菜单中选择“ 新建度量值”。

    此作将新度量值保存在 Sales 表中,可在其中轻松查找。

    菜单中列表中新度量值的屏幕截图。

    还可以通过在 Power BI Desktop 功能区的“开始”选项卡上的“计算”组中选择“新建度量值”来创建新度量值。

    功能区中新度量值的屏幕截图。

    小窍门

    在功能区创建度量值时,可以在任何一个表中创建,但如果能在计划使用该度量值的位置创建,就更容易找到。 在这种情况下,请先选择 Sales 表使其处于活动状态,然后选择 “新建度量值”。

    在报表画布顶部显示的编辑栏中,可以重命名度量值并输入 DAX 公式。

    公式栏的屏幕截图。

  3. 默认情况下,每个新度量值都命名为 Measure。 如果不重命名它,新度量值将命名为 Measure 2Measure 3 等。 由于我们希望此度量值更具可识别性,因此请在编辑栏中突出显示 “度量值 ”,然后将其更改为 “净销售额”。

  4. 开始输入公式。 标志 = 后,开始键入 Sum。 当您输入字符时,将会显示一个下拉建议列表,其中列出了所有以您输入字母开头的 DAX 函数。 如有必要,向下滚动以从列表中选择 SUM ,然后按 Enter

    公式栏列表中选择的 SUM 的屏幕截图。

    此时会显示一个左括号,以及可传递给 SUM 函数的可用列的下拉列表。

    选择 SUM 公式的列的屏幕截图。

  5. 表达式始终出现在左括号和右括号之间。 对于此示例,表达式包含要传递给 SUM 函数的单个参数: SalesAmount 列。 开始键入 SalesAmount ,直到 Sales(SalesAmount) 是列表中唯一留下的值。

    在表名之前的列名称被称为列的完全限定名称。 完全限定的列名使公式更易于阅读。

    为 SUM 公式选择 SalesAmount 的屏幕截图。

  6. 从列表中选择 Sales[SalesAmount] ,然后输入右括号。

    小窍门

    语法错误通常由缺失或错放的右括号引起。

  7. 减去公式中的其他两列:

    a。 在第一个表达式的右括号后,键入一个空格,一个减号运算符(-),然后键入另一个空格。

    b. 输入另一个 SUM 函数,并开始键入 DiscountAmount ,直到可以选择 Sales[DiscountAmount] 列作为参数。 添加右括号。

    c. 键入空格、减号运算符、空格,然后输入另一个以 Sales[ReturnAmount] 为参数的 SUM 函数,最后输入右圆括号。

    完整公式的屏幕截图。

  8. Enter 或选择编辑栏中的 “提交 ”(复选标记图标),以完成并验证公式。

    已验证的Net Sales度量值现已准备好在字段窗格中的销售表中使用。

    销售表字段列表中“净销售额”度量值的屏幕截图。

  9. 如果输入公式的空间不足或想要在单独的行上输入公式,请选择编辑栏右侧的向下箭头以提供更多空间。

    向下箭头变为向上箭头,并显示一个大框。

    公式向上箭头的屏幕截图。

  10. 通过按 Alt + Enter 键将公式各部分分隔到不同行,或按 Tab 键添加制表符间距。

    公式展开的屏幕截图。

在报表中使用度量值

将新的 Net Sales 度量值添加到报表画布,并为添加到报表的任何其他字段计算净销售额。

按国家/地区查看净销售额:

  1. “销售”表中选择“净销售”度量值,或将其拖到报表画布上。

  2. Geography 表中选择 RegionCountryName 字段,或将其拖到 Net Sales 图表上。

    按国家/地区分类的净销售额的屏幕截图。

  3. 若要查看按国家/地区分类的净销售额与总销售额之间的差异,请选择 SalesAmount 字段或将其拖到图表上。

    按国家/地区分类的销售金额和净销售额的屏幕截图。

    图表现在使用两个度量值:SalesAmount,这是由 Power BI 自动求和的,以及您手动创建的 Net Sales 度量值。 每个度量值是在另一个字段 RegionCountryName 的上下文中计算的。

将度量值与切片器配合使用

添加筛选器,以按日历年进一步筛选净销售额和销售金额。

  1. 选择图表旁边的空白区域。 在 “可视化效果 ”窗格中,选择 “表 ”可视化效果。

    此操作在报表画布上创建一个空白的表格可视化。

    新空白表可视化的屏幕截图。

  2. 将“ 年份 ”字段从 “日历” 表拖到新的空白表可视化效果上。

    由于 Year 是数值字段,因此 Power BI Desktop 会汇总其值。 此求和不适用于聚合;我们将在下一步中解决此问题。

    年份聚合的屏幕截图。

  3. “可视化效果”窗格中的“”框中,选择“年份”旁边的向下箭头,然后选择“不从列表中汇总”。 现在该表列出了各个年份。

    选择“不汇总”菜单的屏幕截图。

  4. “可视化效果”窗格中选择切片器图标,将表转换为切片器。 如果可视化效果显示滑块而不是列表,请从滑块的向下箭头中选择 “列表 ”。

    “可视化效果”窗格中切片器图标的屏幕截图。

  5. 选择年份切片器中的任何值,以便相应地筛选RegionCountryName图表的净销售额和销售金额。 Net SalesSalesAmount 度量值将在选择的年份字段环境中重新计算并显示结果。

    按年份切片的净销售额和SalesAmount图表的截图。

在另一个度量值中使用您的度量值

假设你想要找出哪个产品的单位净销售额最高。 你需要一个度量值,该度量值将净销售额除以销售单位的数量。 创建一个新度量值,该度量值将 Net Sales 度量值的结果除以 Sales[SalesQuantity]的总和。

  1. “字段”窗格中,在“销售”表中创建名为“每单位净销售额”的新度量值。

  2. 在编辑栏中,开始键入 Net Sales。 建议列表显示可添加的内容。 选择 “[Net Sales]”。

    在公式编辑栏中使用 Net Sales 的屏幕截图。

  3. 还可以通过键入左括号([)来引用度量值。 建议列表仅显示要添加到公式中的度量值。

    显示要添加到公式中的度量值的左括号的屏幕截图。

  4. 输入空格、除法运算符(/)、另一个空格、SUM 函数,然后键入 Quantity。 建议列表显示名称中具有 Quantity 的所有列。 选择 Sales[SalesQuantity],键入右括号,然后按 Enter 或选择 “提交 ”(复选标记图标)验证公式。

    生成的公式应如下所示:

    Net Sales per Unit = [Net Sales] / SUM(Sales[SalesQuantity])

  5. “销售”表中选择“每单位净销售额”度量值,或将其拖到报表画布中的空白区域。

    此图表显示每个单位销售的所有产品的净销售额。 此图表没有信息性;我们将在下一步中解决此问题。

    销售的所有产品的单位净销售额的屏幕截图。

  6. 对于其他外观,请将图表可视化类型更改为 树状图

    图表已更改为树状图的屏幕截图。

  7. 选择“产品类别”字段,或将其拖到“可视化效果”窗格的树状图或“组”字段上。 现在你有一些有用的信息!

    产品类别树状图的屏幕截图。

  8. 请尝试删除 ProductCategory 字段,并将 ProductName 字段拖动到图表上。

    按产品名称列出的树状图的屏幕截图。

    好吧,我们现在只是在玩,但你必须承认这很酷! 尝试使用其他方法来筛选和设置可视化效果的格式。

所学知识

度量值赋予您从数据中获得所需见解的能力。 你学习了如何使用公式栏创建度量值,并给它们命名便于理解的名称。 你已了解如何使用 DAX 建议列表查找和选择正确的公式元素。 最后,你被介绍到上下文,其中度量值中的计算结果会根据公式中的其他字段或其他表达式而变化。

其他相关文章: