Excel DAX – 运算符

Excel DAX – 运算符


DAX 是一种公式语言,由可用于公式或表达式的函数、运算符和值组成,用于计算和返回一个或多个值。

您可以使用DAX 运算符来比较值、执行算术计算和连接字符串。在本章中,您将了解 DAX 运算符以及如何使用它们。

DAX 运算符的类型

DAX 支持以下类型的运算符 –

DAX 运算符优先顺序

您可以拥有一个 DAX 公式,其中许多 DAX 运算符结合了多个值或表达式。在这种情况下,最终结果将取决于执行操作的顺序。DAX 为您提供默认运算符优先顺序以及覆盖默认优先顺序的方法。

下表列出了 DAX 默认运算符优先级。

Precedence Order 操作员 手术
1 ^ 求幂
2 ——
符号
3 * 和 / 乘法和除法
4 不是
5 + 和 – 加减
6 & 级联
7 =、<、>、<=、>= 和 <> 等于、小于、大于、小于或等于、大于或等于和不等于

DAX 表达式语法

您需要首先了解 DAX 表达式语法以及如何使用操作数和运算符完成表达式计算。

  • 所有表达式始终以等号 (=) 开头。等号表示后面的字符构成一个表达式。

  • 在等号的右侧,您将拥有由 DAX 运算符连接的操作数。例如,= 5 + 4 > 5。

    = 5 * 6 – 3。

  • 表达式始终从左到右读取,并根据上一节中给出的 DAX 运算符优先级按该顺序完成计算。

  • 如果 DAX 运算符具有相同的优先级值,则从左到右计算它们。例如,=5*6/10。* 和 / 具有相同的先例顺序。因此,表达式的计算结果为 30/10 = 3。

  • 如果表达式中的 DAX 运算符具有不同的优先级值,则按从左到右的优先级顺序计算它们。

    • = 5 + 4 > 7。默认优先级是 + first 和 > next。因此,表达式是从左到右计算的。– 首先计算 5 + 4 得出 9,然后计算 9 > 5 得出 TRUE。

    • = 5 * 6 – 3。默认优先级是 * first 和 – next。因此,表达式是从左到右计算的。– 首先计算 5 * 6 得到 30,然后计算 30 – 3 得到 27。

    • = 2 * 5 – 6 * 3。默认优先级是 * first,* next 然后 -。因此,表达式的计算结果为 10 – 18,然后为 -8。请注意,不是 10 – 6 导致 4,然后 4*3 是 12。

使用括号控制 DAX 计算顺序

您可以通过使用括号、对操作数和运算符进行分组来控制计算顺序来更改 DAX 默认运算符优先顺序。

例如,= 5 * 6 – 3 使用 DAX 默认运算符优先顺序计算为 27。如果使用括号将操作数和运算符分组为 = 5 * (6 – 3),则首先计算 6 – 3,结果为 3,然后计算 5 * 3,结果为 15。

= 2 * 5 – 6 * 3 使用 DAX 默认运算符优先顺序计算为 -8。如果使用括号将操作数和运算符分组为 = 2 * (5 – 6) * 3,则首先计算 5 – 6 的结果为 -1,然后计算 2 * (-1) * 3 的结果为 -6 .

如您所见,使用相同的操作数和运算符,通过对它们进行分组的方式可能会产生不同的结果。因此,当您在 DAX 公式中使用 DAX 运算符时,您应该注意计算顺序如何。

Excel 和 DAX 之间的差异

尽管 DAX 与 Excel 公式有相似之处,但两者之间存在某些显着差异。

  • 由于其底层内存常驻计算引擎,DAX 比 Excel 更强大。

  • DAX 支持的数据类型比 Excel 多。

  • DAX 提供关系数据库数据模型的其他高级功能,包括对日期和时间类型的更丰富的支持。

在某些情况下,DAX 中的计算结果或函数行为可能与 Excel 中的不同。这是由于以下差异 –

  • 数据类型转换
  • 数据类型

数据类型转换的差异

在 DAX 中,当您有表达式 =value1 运算符 value2 时,两个操作数 value1 和 value2 应具有相同的数据类型。如果数据类型不同,DAX 会先将它们隐式转换为通用数据类型。有关详细信息,请参阅“DAX 语法”一章。

例如,您必须比较不同数据类型的两个操作数,比如一个由公式得出的数字,例如 =[Amount] * 0.08 和一个整数。第一个数字可以是一个有很多小数位的十进制数字,而第二个数字是一个整数。然后 DAX 处理它如下 –

  • 首先,DAX 将使用可以存储两种数字的最大数字格式将两个操作数转换为实数。

  • 接下来,DAX 将比较两个实数。

相比之下,Excel 会尝试比较不同数据类型的值,而无需先将它们强制转换为通用数据类型。因此,对于相同的比较表达式,您可能会在 DAX 和 Excel 中发现不同的结果。

数据类型的差异

DAX 和 Excel 中的运算符优先顺序相同。但是,DAX 不支持 Excel 支持的运算符百分比 (%) 和数据范围。此外,DAX 支持表作为数据类型,而 Excel 中并非如此。

此外,在 Excel 公式中,您可以引用单个单元格、数组或单元格区域。在 DAX 公式中,您不能引用其中任何一个。DAX 公式对数据的引用应按表、列、计算字段和计算列进行。

如果您从 Excel 复制公式并将其粘贴到 DAX 中,请确保 DAX 公式的正确性,因为 DAX 语法与 Excel 公式语法不同。另外,即使函数在 DAX 和 Excel 中具有相同的名称,其参数也可能不同,函数的结果也可能不同。

您将在后续章节中了解更多关于所有这些的信息。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁