通过使用度量值,可以在 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 如何创建度量值,请执行以下步骤:
在 Power BI Desktop 中,选择文件,然后选择打开,浏览到 Contoso 销售示例(Power BI Desktop.pbix) 文件,最后选择打开。
在字段窗格中,展开销售表。 然后,选中 SalesAmount 字段旁边的复选框,或将 SalesAmount 拖到报表画布上。
新的柱形图可视化效果会出现,显示 Sales 表中 SalesAmount 列的所有值的总和。
“ 字段 ”窗格中具有
的任何字段(列)都是数值,并且可以聚合其值。 Power BI Desktop 不会显示具有许多值的表( SalesAmount 的 2,000,000 行),而是自动创建并计算一个度量值,以便在检测到数字数据类型时聚合数据。 Sum 是数值数据类型的默认聚合,但可以轻松应用不同的聚合,例如平均值或计数。 了解聚合是了解度量值的基础,因为每个度量值执行某种类型的聚合。
若要更改图表聚合,请执行以下步骤:
在报表画布中选择 SalesAmount 可视化效果。
在“可视化效果”窗格的“值”区域中,选择 SalesAmount 右侧的向下箭头。
从显示的菜单中,选择“ 平均值”。
可视化效果更改为 SalesAmount 字段中所有销售值的平均值。
根据所需的结果,可以更改聚合的类型。 但是,并非所有类型的聚合都适用于每个数值数据类型。 例如,对于 SalesAmount 字段,Sum 和 Average 非常有用,“最小值”和“最大值”也具有其位置。 但是,Count 对 SalesAmount 字段没有意义,因为虽然其值为数值,但它们实际上是货币。
根据度量计算的值会随您与报告的互动而变化。 例如,如果将 Geography 表中的 RegionCountryName 字段拖到现有的 SalesAmount 图表上,则会更改以显示每个国家/地区的平均销售额。
当度量值的结果因与报表的交互而更改时,会影响度量值的 上下文。 每次与报表的可视化交互时,您都在改变度量计算和显示结果的上下文。
创建和使用自己的度量值
在大多数情况下,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 的总和中减去。 字段列表中没有“净销售额”字段,但您可以利用现有的基础来创建自己的度量来计算净销售额。
若要创建度量值,请执行以下步骤:
在“字段”窗格中,右键单击“销售”表,或将鼠标悬停在表上,然后选择“更多选项”(...)。
从显示的菜单中选择“ 新建度量值”。
此作将新度量值保存在 Sales 表中,可在其中轻松查找。
还可以通过在 Power BI Desktop 功能区的“开始”选项卡上的“计算”组中选择“新建度量值”来创建新度量值。
小窍门
在功能区创建度量值时,可以在任何一个表中创建,但如果能在计划使用该度量值的位置创建,就更容易找到。 在这种情况下,请先选择 Sales 表使其处于活动状态,然后选择 “新建度量值”。
在报表画布顶部显示的编辑栏中,可以重命名度量值并输入 DAX 公式。
默认情况下,每个新度量值都命名为 Measure。 如果不重命名它,新度量值将命名为 Measure 2、 Measure 3 等。 由于我们希望此度量值更具可识别性,因此请在编辑栏中突出显示 “度量值 ”,然后将其更改为 “净销售额”。
开始输入公式。 标志
=后,开始键入 Sum。 当您输入字符时,将会显示一个下拉建议列表,其中列出了所有以您输入字母开头的 DAX 函数。 如有必要,向下滚动以从列表中选择 SUM ,然后按 Enter。
此时会显示一个左括号,以及可传递给 SUM 函数的可用列的下拉列表。
表达式始终出现在左括号和右括号之间。 对于此示例,表达式包含要传递给 SUM 函数的单个参数: SalesAmount 列。 开始键入 SalesAmount ,直到 Sales(SalesAmount) 是列表中唯一留下的值。
在表名之前的列名称被称为列的完全限定名称。 完全限定的列名使公式更易于阅读。
从列表中选择 Sales[SalesAmount] ,然后输入右括号。
小窍门
语法错误通常由缺失或错放的右括号引起。
减去公式中的其他两列:
a。 在第一个表达式的右括号后,键入一个空格,一个减号运算符(-),然后键入另一个空格。
b. 输入另一个 SUM 函数,并开始键入 DiscountAmount ,直到可以选择 Sales[DiscountAmount] 列作为参数。 添加右括号。
c. 键入空格、减号运算符、空格,然后输入另一个以 Sales[ReturnAmount] 为参数的 SUM 函数,最后输入右圆括号。
按 Enter 或选择编辑栏中的 “提交 ”(复选标记图标),以完成并验证公式。
已验证的Net Sales度量值现已准备好在字段窗格中的销售表中使用。
如果输入公式的空间不足或想要在单独的行上输入公式,请选择编辑栏右侧的向下箭头以提供更多空间。
向下箭头变为向上箭头,并显示一个大框。
通过按 Alt + Enter 键将公式各部分分隔到不同行,或按 Tab 键添加制表符间距。
在报表中使用度量值
将新的 Net Sales 度量值添加到报表画布,并为添加到报表的任何其他字段计算净销售额。
按国家/地区查看净销售额:
从“销售”表中选择“净销售”度量值,或将其拖到报表画布上。
从 Geography 表中选择 RegionCountryName 字段,或将其拖到 Net Sales 图表上。
若要查看按国家/地区分类的净销售额与总销售额之间的差异,请选择 SalesAmount 字段或将其拖到图表上。
图表现在使用两个度量值:SalesAmount,这是由 Power BI 自动求和的,以及您手动创建的 Net Sales 度量值。 每个度量值是在另一个字段 RegionCountryName 的上下文中计算的。
将度量值与切片器配合使用
添加筛选器,以按日历年进一步筛选净销售额和销售金额。
选择图表旁边的空白区域。 在 “可视化效果 ”窗格中,选择 “表 ”可视化效果。
此操作在报表画布上创建一个空白的表格可视化。
将“ 年份 ”字段从 “日历” 表拖到新的空白表可视化效果上。
由于 Year 是数值字段,因此 Power BI Desktop 会汇总其值。 此求和不适用于聚合;我们将在下一步中解决此问题。
在“可视化效果”窗格中的“值”框中,选择“年份”旁边的向下箭头,然后选择“不从列表中汇总”。 现在该表列出了各个年份。
在“可视化效果”窗格中选择切片器图标,将表转换为切片器。 如果可视化效果显示滑块而不是列表,请从滑块的向下箭头中选择 “列表 ”。
选择年份切片器中的任何值,以便相应地筛选RegionCountryName图表的净销售额和销售金额。 Net Sales 和 SalesAmount 度量值将在选择的年份字段环境中重新计算并显示结果。
在另一个度量值中使用您的度量值
假设你想要找出哪个产品的单位净销售额最高。 你需要一个度量值,该度量值将净销售额除以销售单位的数量。 创建一个新度量值,该度量值将 Net Sales 度量值的结果除以 Sales[SalesQuantity]的总和。
在“字段”窗格中,在“销售”表中创建名为“每单位净销售额”的新度量值。
在编辑栏中,开始键入 Net Sales。 建议列表显示可添加的内容。 选择 “[Net Sales]”。
还可以通过键入左括号([)来引用度量值。 建议列表仅显示要添加到公式中的度量值。
输入空格、除法运算符(/)、另一个空格、SUM 函数,然后键入 Quantity。 建议列表显示名称中具有 Quantity 的所有列。 选择 Sales[SalesQuantity],键入右括号,然后按 Enter 或选择 “提交 ”(复选标记图标)验证公式。
生成的公式应如下所示:
Net Sales per Unit = [Net Sales] / SUM(Sales[SalesQuantity])从“销售”表中选择“每单位净销售额”度量值,或将其拖到报表画布中的空白区域。
此图表显示每个单位销售的所有产品的净销售额。 此图表没有信息性;我们将在下一步中解决此问题。
对于其他外观,请将图表可视化类型更改为 树状图。
选择“产品类别”字段,或将其拖到“可视化效果”窗格的树状图或“组”字段上。 现在你有一些有用的信息!
请尝试删除 ProductCategory 字段,并将 ProductName 字段拖动到图表上。
好吧,我们现在只是在玩,但你必须承认这很酷! 尝试使用其他方法来筛选和设置可视化效果的格式。
所学知识
度量值赋予您从数据中获得所需见解的能力。 你学习了如何使用公式栏创建度量值,并给它们命名便于理解的名称。 你已了解如何使用 DAX 建议列表查找和选择正确的公式元素。 最后,你被介绍到上下文,其中度量值中的计算结果会根据公式中的其他字段或其他表达式而变化。
相关内容
要了解有关 Power BI Desktop 快速度量的更多信息,这些度量为您提供了许多常见的计算,请参阅 使用快速度量进行常见计算。
若要深入了解 DAX 公式并创建一些更高级的措施,请参阅 Power BI Desktop 中的 Learn DAX 基础知识。 本文重点介绍 DAX 中的基本概念,例如语法、函数和更深入地了解上下文。
请务必将 数据分析表达式(DAX)引用 添加到收藏夹。 在此参考中,可以找到有关 DAX 语法、运算符和 200 多个 DAX 函数的详细信息。
其他相关文章: