常见的数学函数
DAX 的数学函数集与 Excel 的非常相似,具有相同的语法和行为。
ABS
ABS ( <Number> )
返回给定数字的绝对值,具有相同数据类型但没有符号的数值。
DIVIDE
DIVIDE(<numerator>, <denominator>, [<alternateresult>])
安全除法,可以在除数为 0 时返回替代结果<alternateresult>或空值(默认)。
DIVIDE(5,2) => 2.5 DIVIDE(5,0) => 空值 DIVIDE(5,0,1) => 1
EXP
EXP ( <Number> )
返回自然常数 e 的给定数字次方
FACT
FACT ( <Number> )
返回一个数字的阶乘,等于 1*2*3*…* <Number>
LN
LN ( <Number> )
返回一个数字的自然对数
LOG
LOG ( <Number>, [<Base>] )
返回以指定数字为底的对数,省略 Base 以 10 为底数
LOG10
LOG10 ( <Number> )
返回以 10 为底的对数
MOD
MOD ( <Number>, <Divisor> )
返回指定数字被整除后的余数
MOD ( 0, 2 ) -- returns 0 MOD ( 5, 2 ) -- returns 1 MOD ( 6, 3 ) -- returns 0 MOD ( 7, 3 ) -- returns 1 MOD ( 8, 3 ) -- returns 2
PI
PI ( )
返回圆周率 3.14159265358979 的值,精确到 15 位
POWER
POWER ( <Number>, <Power> )
返回提升到幂的数字的结果
5 ^ 4 = POWER ( 5, 4 )
SIGN
SIGN ( <Number> )
返回数字的符号:如果数字是正数,则返回 1;如果数字是零,则返回 0;如果数字是负数,则返回-1
SQRT
SQRT ( <Number> )
返回给定数字的平方根
RAND
RAND ( )
返回一个大于等于 0 且小于 1 的随机数,均匀分布。随机数在重新计算时发生变化。
RANDBETWEEN
RANDBETWEEN ( <Bottom>, <Top> )
返回指定数字之间的随机数
EVEN
EVEN ( <Number> )
向上舍入到最近的偶数数字<你可以使用此函数来处理成对出现的项。
=EVEN(1.5) -- returns 2 =EVEN(3) -- returns 4 =EVEN(2) -- returns 2 =EVEN(-1) -- returns -2
ODD
ODD ( <Number> )
向上舍入到最近的奇数数字
=ODD(1.5) -- returns 3 =ODD(3) -- returns 3 =ODD(2) -- returns 3 =ODD(-1) -- returns -1 =ODD(-2) -- returns -3
GCD
GCD ( <Number1>, <Number2> )
返回两个整数的最大公约数。最大公约数是除 1 和 2 而没有余数的最大整数。
LCM
LCM ( <Number1>, <Number2> )
返回整数的最小公倍数。最小公倍数是最小的正整数,它是两个整数参数 1 和 2 的倍数。使用 LCM 添加不同分母的分数。
QUOTIENT
QUOTIENT ( <Numerator>, <Denominator> )
返回除法的整数部分
QUOTIENT ( 0, 2 ) -- returns 0 QUOTIENT ( 1, 2 ) -- returns 0 QUOTIENT ( 4, 2 ) -- returns 2 QUOTIENT ( 5, 2 ) -- returns 2 QUOTIENT ( 6, 2 ) -- returns 3 QUOTIENT ( 6, 3 ) -- returns 2 QUOTIENT ( 7, 3 ) -- returns 2
数学函数实例
最后,有几个四舍五入函数值得举例说明;实际上,你可以使用几种方法来获得相同的结果。下图中公式和列将一起展示,如图所示:
FLOOR = FLOOR ( Tests[Value], 0.01 ) TRUNC = TRUNC ( Tests[Value], 2 ) ROUNDDOWN = ROUNDDOWN ( Tests[Value], 2 ) MROUND = MROUND ( Tests[Value], 0.01 ) ROUND = ROUND ( Tests[Value], 2 ) CEILING = CEILING ( Tests[Value], 0.01 ) ISO.CEILING = ISO.CEILING ( Tests[Value], 0.01 ) ROUNDUP = ROUNDUP ( Tests[Value], 2 ) INT = INT ( Tests[Value] ) FIXED = FIXED ( Tests[Value], 2, TRUE )
如你所见,除了可以指定四舍五入的位数,FLOOR、TRUNC 和 ROUNDDOWN 在其他方面非常相似。而 CEILING 和 ROUNDUP 是结果非常相似的两个函数。你还可以看到 MROUND 和 ROUND 这两个函数之间舍入的方式有一些不同。
Floor 和turnc 有什么区别么
智商堪忧,求大佬帮忙解释一下EVEN函数提到的例子,包装板条箱接受一行或两行的货物,是什么意思呢,为什么会有取偶数的需求呢,万分感谢。