Power BI 度量值

2024 年 9 月 20 日 | 阅读 14 分钟

Power BI 中的度量值是报告数据上使用的动态计算或聚合。它们对于帮助从未经处理的数据中提取知识和绩效指标至关重要。数据分析表达式 (DAX) 是一种强大的公式语言,专为与数据模型配合使用而设计。它主要用于制定度量值。

Power BI Measure

对数据报告和分析的重要性

由于多种原因,度量值对于 Power BI 的数据分析和报告过程至关重要。

  1. 动态计算:度量值允许创建动态计算,这些计算会响应用户交互和数据模型的更改。度量值不是静态计算,而是会适应其使用情况。
  2. 聚合和分析:通过实现数据收集,度量值有助于计算总计、平均值和其他统计指标,以及关键绩效指标 (KPI)。理解数据的趋势、模式和异常值需要执行此操作。
  3. 交互性:度量值通过允许用户深入研究特定方面或从不同角度检查数据来使报告更具交互性。它们使用户能够直观地检查和理解数据。
  4. 一致性:度量值可以在不同的报告和可视化之间一致且统一地计算。这保证了报告的准确性和一致性。

度量的语法和结构

DAX 语法概述

Power BI 使用称为数据分析表达式 (DAX) 的数学语言创建度量值。DAX 公式包含对数据模型列、运算符和函数的引用,具有独特的语法。DAX 度量值的基本语法如下:

  • MeasureName:这是度量值的用户定义的名称。
  • DAXFormula:实际的 DAX 表达式定义了计算或聚合。

度量值的 DAX 公式可能包含不同的组件,例如:

  1. 列引用:描述数据模型的列。以 [SalesAmount] 为例。
  2. 常量:在计算中使用的文本或数值。例如,“High”或 100。
  3. 运算符:执行逻辑或数学过程。一些例子是 +、、/ 和 &&。
  4. 函数:用于特定计算的预制函数。SUM、AVERAGE、COUNT 等等是例子。

示例

1. 简单的总销售额度量值

此度量值计算“Sales”表中“SalesAmount”列的总和。

2. 每单位平均价格度量值

此度量值通过将总价除以“Products”表中的总销售单位来计算每单位的平均价格。

3. 动态年度至今销售额度量值

此度量值根据“Date”列动态计算年度至今销售额。

4. 使用 IF 语句的条件度量值

此度量值根据“Sales”表中的总利润对总体盈利能力进行分类。

在 Power BI 中创建度量值

1. 启动 Power BI Desktop

  • 在您的 PC 上启动 Power BI Desktop。如果尚未安装,您可以通过官方 [Power BI 网站] 获取。

2. 加载您的数据

  • 打开 Power BI 并导入您要处理的数据。这些数据可以来自各种来源,例如 SQL Server、Excel 或其他兼容的数据源。

3. 进入数据视图

  • 在 Power BI Desktop 界面左侧,单击“数据”视图图标。您可以在此视图中看到数据表。

4. 选择一个表

  • 在“数据”视图中,选择您要在其中构建度量值的表。例如,以“Sales”表为例。

5. 创建新度量值

  • 在“建模”选项卡上,选择“新建度量值”按钮。另一种方法是右键单击“字段”窗口中的表,然后选择“新建度量值”。
Power BI Measure

6. 应用 DAX 公式栏

  • 选择“新建度量值”后,将出现 DAX 公式栏,您可以在其中定义度量值。

7. 建立您的度量值

  • 在公式栏中,输入您的 DAX 公式。例如,让我们创建一个简单的总销售额度量值:
Power BI Measure

按 Enter 应用公式。

8. 检查度量值

  • 您创建的度量值将显示在“字段”窗口中相应表的下方。现在您可以查看它并在报告中使用它。

9. 在可视化中使用度量值

  • 导航到“报告”窗口,然后使用鼠标将您的度量值拖到可视化中。例如,您可以将“TotalProfit”度量值拖到卡片或表格可视化中以显示总销售额。

10. 保存您的 Power BI 文件

  • 生成并确认您的度量值后,保存您的 Power BI 文件。

如何在 Power BI 度量值中使用 IF 语句?

IF 语句是 Power BI 数据分析表达式 (DAX) 语言中的一个灵活工具,它允许在度量值中创建条件逻辑。本教程将深入探讨使用 IF 语句度量值的细微差别,提供全面的解释和实际示例。

条件逻辑是数据分析的关键组成部分,它使得对各种情况做出灵活响应。Power BI 中的度量值是动态聚合和分析数据的计算。用户可以使用 IF 语句向度量值添加条件,这使得计算能够响应预定的标准。

语法

DAX 中的 IF 语句具有简单的语法。

  • Condition:确定要生成哪个结果的逻辑先决条件。
  • Result if true:如果满足条件,则出现的结果。
  • Result if false:如果条件不满足,则出现的结果。

示例:基于销售绩效的奖金计算

现在,让我们来看一个实际示例,了解如何使用 IF 语句度量值。假设一种情况是销售代表获得的奖金根据总销售额的不同而有所不同。使用 IF 条件可以动态确定奖金金额。

1. 建立新度量值

  • 在 Power BI Desktop 中,转到“建模”选项卡并选择“新建度量值”。

2. 使用 IF 创建 DAX 公式


Power BI Measure
  • 该条件检查总销售额是否超过 10,000 美元。
  • 如果为真,则奖金按总销售额的 10% 计算;否则,按 5% 计算。

3. 在可视化中实现度量值

  • 将 Bonus 度量值拖到表格或可视化中,以查看奖金如何根据总销售额动态计算。

实际案例

设想一个由 A、B、C 和 D 代表组成的销售团队,他们的累计销售额各不相同。

销售代表总销售额奖励
代表 A12,0001,200
代表 B8,000400
代表 C15,0001,500
代表 D6,000300
  • 销售额超过 10,000 美元的代表 A 和 C 有资格获得更高的奖金(总销售额的 10%)。
  • 代表 B 和 D 的标准奖金为销售额的 5%,低于该门槛。

关键信息

  1. 灵活的条件:根据业务案例的具体要求调整 IF 语句中的条件。
  2. 多个条件:使用 ELSEIF 子句扩展 IF 语句以处理多个条件。
  3. 可读性:保持正确的格式和缩进,以提高可读性,尤其是在复杂的情况下。
  4. 动态计算:奖金根据当前总销售额动态计算,以确保对不断变化的销售数据做出响应。

Power BI 中的隐式度量值和显式度量值

用户可以轻松地使用 Microsoft 的商业分析产品 Power BI 来分析和可视化数据。度量值是应用于数据的计算或聚合,在这个过程中至关重要。这些度量值分为隐式度量值和显式度量值两类。在本调查中,我们将检查隐式和显式度量值的细微差别,以及它们在 Power BI 数据分析中的应用和影响。

隐式度量值

在 Power BI 中,隐式度量值是简单性的基础。当您将数字字段拖放到可视化中的“值”部分时,Power BI 会在后台创建一个隐式度量值。这意味着 Power BI 使用默认聚合(通常是 SUM)对数字字段进行操作,以生成结果,而无需专门创建度量值。

隐式度量值的重要特性

  1. 自动聚合:Power BI 使用内置聚合函数(如 SUM)自动聚合数字字段。
  2. 简化的拖放界面:用户可以通过将字段直接拖放到可视化画布上来快速轻松地创建可视化。

隐式度量值的示例

  • 简单可视化:非常适合快速探索和可视化,特别是对于只需要快速信息摘要的用户。
  • 基本聚合:符合基本数据聚合的报告要求,用于初步分析。

显式度量值

相比之下,使用显式度量值可为用户提供更大的自定义和计算控制。用户直接使用 DAX(数据分析表达式)语言构建这些度量值,从而实现适合特定业务需求的广泛聚合、计算和自定义逻辑。

显式度量值的原理

Power BI Measure
  1. 用户定义的计算:用户可以通过 DAX 公式灵活地构建自定义聚合和计算。
  2. 高级逻辑:支持实现复杂的计算、时间智能和高级业务逻辑。
  3. 自定义聚合:用户可以从 AVERAGE、COUNT、MIN、MAX 等 DAX 函数中进行选择,以开发超出标准 SUM 的度量值。

显式度量值的应用

Power BI Measure
  1. 复杂的业务逻辑:适用于需要精确计算或复杂业务逻辑的情况。
  2. 自定义聚合:当隐式度量值提供的标准聚合不足时,显式度量值允许您构建自定义聚合。
  3. 时间智能:这对于实现与时间相关的计算(如移动平均值、年初至今和月度至今)特别有用。

显式和隐式度量值比较

Power BI Measure

1. 灵活性

  • 隐式度量值:它们缺乏灵活性,因为它们依赖于默认聚合。
  • 显式度量值:非常灵活,允许用户创建自己的聚合和推理。

2. 复杂性

  • 隐式度量值:对于基础分析来说简单快捷。
  • 显式度量值:更复杂但能满足高级分析需求。

3. 定制化

  • 隐式度量值:通过隐式度量值自定义选项有限。
  • 显式度量值:高度自定义允许用户调整计算以满足特定要求。

4. 性能

  • 隐式度量值:对于基本计算,通常速度更快。
  • 显式度量值:这可能需要更多处理时间,尤其是在复杂的 DAX 计算中。

Power BI 度量值中的嵌套 IF 语句

Power BI 中的嵌套 IF 语句提供了一种可靠的方法来同时管理多个条件。嵌套 IF 语句的语法、实际用途和真实世界示例很复杂。

嵌套 IF 语句的语法

在 DAX 中,嵌套 IF 语句具有以下结构化语法:

可以扩展此模式以包含更多条件。

实际用途:费用分类

现在,让我们来看一个使用嵌套 IF 语句的实际示例。假设我们希望使用预定的阈值将费用划分为多个级别。

1. 构建新度量值

  • 在 Power BI Desktop 中,导航到“建模”菜单并选择“新建度量值”。

2. 编写 DAX 的嵌套 IF 公式


Power BI Measure

示例

  • 如果总费用超过 50,000 美元,则类别为“高”。
  • 如果总费用在 20,000 美元到 50,000 美元之间,则类别为“中”。
  • 如果总支出金额低于 20,000 美元,则类别为“低”。

实际解释

检查显示多个部门总支出的收入数据集:

部门总费用费用类别
HR120,000
融资40,000
IT15,000最小
  • 人力资源部被归类为“高”支出。
  • 财务部被归类为“低”支出。
  • IT 部门属于“最低”费用类别。

关键注意事项

  1. 灵活的层次结构:嵌套 IF 语句通过支持条件的灵活层次结构来处理各种情况。
  2. 顺序评估:通过一个接一个地评估条件来控制逻辑流。
  3. 可读性:确保结构清晰且组织良好,尤其是在场景中存在多个嵌套条件时。
  4. 动态分类:随着数据集的变化,根据总费用动态分配类别。

减去两个度量值

Power BI 中度量值的算术运算将您的数据分析提升到一个新的复杂水平。

1. 计算要减去的度量值

  • 假设您的数据集中的两个度量值对应于不同的指标。例如,考虑这两个度量值:

在公司环境中,这些度量值可能占总销售额和支出的比例。确保您的 Power BI 模型已适当定义了这些度量值。

2. 创建新的减法度量值

  • 您现在希望从 TotalSales 中减去 TotalExpenses 以获得净利润。创建一个名为 NetProfit 的新度量值来表示此减法:

3. 在可视化中使用结果

  • 一旦有了 NetProfit 度量值,您就可以在各种可视化中使用它来查看公司的财务状况。例如,您可以创建一个卡片可视化来显示净利润。

示例:计算净利润

  • 考虑到 TotalSales 和 TotalExpenses 已定义以下场景:
  • 现在,创建一个新的净利润度量值:
  • 此 NetProfit 度量值计算总销售额和总成本之间的实时差额。它可用于在各种可视化中跟踪和检查净利润随时间的变化。
Power BI Measure

关键注意事项

  1. 数据类型兼容性:验证已减度量值的数据类型是否兼容。在这种情况下,TotalSales 和 TotalExpenses 都应为数值。
  2. 动态计算:根据 Power BI 报告的当前上下文,新度量值 (NetProfit) 会动态重新计算。净利润计算将更新以反映对筛选器或切片器的任何修改。
  3. 可视化表示:为了在报告中成功表示和传达净利润,请使用卡片、表格或图表等视觉辅助工具。

通过表关系合并来自不同表的数据

Power BI 中的度量值作为动态计算,将数据分析提升到一个新的水平。度量值具有聚合来自多个表数据的强大能力,这开启了获得全面见解的可能性。本指南将通过检查表关系的影响和实际示例,全面介绍跨表聚合的细微差别。

典型的 Power BI 数据模型由通过关系连接的多个表组成。度量值可以轻松地遍历这些关系并跨表聚合数据。在数据分散在不同组织中的复杂业务情况下,跨表聚合特别有利。

关系对度量值计算的影响

在深入研究示例之前,理解关系在度量值计算中的作用至关重要。使用关系,Power BI 在表之间创建链接,以便度量值可以逻辑地组合数据。关系分为两种:一对多和多对一。

1. 一对多关系:主表中的一行可以在辅助表中具有多个链接。

  • 一个很好的例子是主销售表与辅助产品表关联,其中单个产品可能有多个销售。

2. 多对一关系:辅助表中的一个相关行可以映射到主表中的多行。

  • 一个例子是主产品表与辅助类别表关联,该表在一个类别下有多个产品。
  • 基于表中已建立的连接的度量值可以聚合。

跨表聚合示例

让我们看一个例子,其中有三个表:一个用于销售,一个用于产品,一个用于类别。我们希望开发一个度量值,该度量值确定每个产品类别的总销售额。

1. 创建关系

  • 确保表之间具有正确的关系:
  • 产品表和销售表之间的一对多关系
  • 产品表和类别表之间的多对一关系

2. 计算按类别的总销售额度量值。

  • RELATEDTABLE('Product') 函数遍历销售和产品之间的关系。
  • SUMX 然后计算每个关联产品的总销售额。

通过遍历产品和类别表之间的链接,此度量值聚合了销售表中的销售数据。

实际应用:多维销售分析

想象一家零售公司,有多个表包含销售信息、产品表中的产品信息以及类别表中建立的类别。TotalSalesByCategory 度量值使得多维分析成为可能,它提供了对不同产品类别销售绩效的洞察。

关键注意事项

  1. 数据模型设计:要成功进行跨表聚合,需要精心设计并建立链接的数据模型。
  2. 关系基数:要预测数据如何组合,请了解关系的基数(多对多、多对一)。
  3. 上下文敏感性:考虑切片器、筛选器和用户交互,度量值会动态适应当前的报告上下文。

Power BI 中的 Switch 度量值

Power BI 提供了一种动态且高效的方法,可在单个报告中使用 SWITCH 函数在度量值之间切换。

Power BI 中的 SWITCH 函数针对一系列值估算一个表达式,并返回一个可能的结果。当您想一次显示一个度量值时,这尤其有用,可以优化报告或仪表板中的有限空间。

创建 Switch 度量值

1. 创建度量值表

  • 首先,创建一个表,该表将作为切换的参数。在本例中,此表名为“Measures Table”,它将包含您要切换的不同度量值。请按照以下步骤操作:
  • 转到功能区 -> 主页 -> 输入数据(数据面板)。
  • 输入您要为度量值输入的值(例如,总收入、支出、利润),并将其命名为“Measures Table”。

2. 使用 DAX 定义 Switch 度量值

  • 现在,您将使用 SWITCH 函数创建一个度量值。此度量值(此处命名为“Selected Measure”)将根据用户的选择动态切换不同的度量值。使用以下 DAX 表达式。

在此表达式中:

  • SELECTEDVALUE('Measures Table'[Measures]) 从“Measures Table”中获取选定的值。
  • SWITCH 函数在将选定值与指定选项进行比较后,返回适当的度量值结果。

3. 自定义您的示例

  • 创建一个条形图,将分类字段(如日期)放在 y 轴上,将“Selected Measure”放在 x 轴上。根据选定的指标动态刷新此图表。

4. 使用切片器进行度量值选择

  • 创建带有“Measures Table”中“Measures”字段的切片器,以便用户可以快速切换度量值。执行以下操作:
  • 为您的报告添加切片器可视化。
  • 可以将“Measures”字段从“Measures Table”拖到切片器中。
  • 转到“格式化视觉对象”->“切片器设置”->“样式”->“磁贴”->“选择”->“单选”。

5. 按顺序排列按钮

  • 确保您的切片器按钮按正确的顺序显示。执行以下操作:
  • 在“Measures Table”的“数据”窗格中选择“Measures”字段。
  • 从功能区的“按列排序”菜单中选择“排序”。您现在可以按适当的顺序排列按钮。

6. 自定义您的显示

  • 为了改善用户体验,请对报告的视觉属性进行更改。要创建视觉上美观且直观的报告,请排列元素、调整颜色方案并格式化您的视觉对象。

实际用途:多度量评估

设想您有一个包含利润、支出和总收入等指标的财务数据集。用户可以轻松地在这些指标之间切换,从而获得对财务绩效各个方面的洞察。

关键注意事项

  1. 精确匹配:验证“Measures Table”中的值以及 SWITCH 函数中使用的值是否完全匹配。任何差异都可能导致异常行为。
  2. 动态适应性:由于 SWITCH 度量值会动态适应用户选择,因此用户体验是响应式且引人入胜的。
  3. 切片和排序:这些功能通过提供对切换的外观和操作的更多控制来改善用户导航。

利润率的动态格式化

让我们来看一个新示例,您想根据各种阈值动态格式化利润率,并且您有一个销售数据集。利润率百分比(表示为 (利润 / 收入) * 100)由 ProfitMargin 度量值表示。使用基于不同利润率范围的动态格式化如下:

在这里,我们将使用 SWITCH 函数根据不同的利润率范围应用条件格式。

  • SWITCH 函数执行第一个为真的条件,该条件按顺序评估条件。
  • 每个条件都应用特定的格式并验证不同的利润率范围。
  • 如果未满足任何特定条件,则使用默认格式。

这种方法得到了利润率的一个简单结论,满足设定的标准。