从数据到信息
从信息到洞察

数学函数

常见的数学函数

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
DIVIDE检查分母是否为零比IF语句更快,但是,DIVIDE在公式引擎中执行,它的速度不如直接相除来的快,关于DIVIDE性能的分析,可以参考这篇文章

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这两个函数之间舍入的方式有一些不同。

原创内容 转载请联系作者授权:PowerBI极客 » 数学函数

1
说点什么

avatar
1000
 
鼓掌微笑开心憧憬爱你色并不觉得吃瓜doge二哈喵喵思考笑哭捂脸悲伤大哭抓狂汗偷笑打脸捂眼黑线问号晕拜拜闭嘴衰咒骂ok作揖
0 评论数
0 被回复的评论
1 订阅评论的人数
 
查看最近回复
查看最热评论
  订阅本文评论  
最新 最旧 得票最多
提醒