[知识体系] 数学函数

  [复制链接]
查看138059 | 回复134 | 2021-2-21 19:30:25 | 显示全部楼层 |阅读模式
常见的数学函数

DAX 的数学函数集与 Excel 的非常相似,具有相同的语法和行为。

ABS
  1. ABS ( <Number> )
复制代码

返回给定数字的绝对值,具有相同数据类型但没有符号的数值。

DIVIDE
  1. DIVIDE(<numerator>, <denominator>, [<alternateresult>])
复制代码

安全除法,可以在除数为 0 时返回替代结果<alternateresult>或空值(默认)。
  1. DIVIDE(5,2) => 2.5
  2. DIVIDE(5,0) => 空值
  3. DIVIDE(5,0,1)  => 1
复制代码
DIVIDE 检查分母是否为零比 IF 语句更快,但是,DIVIDE 在公式引擎中执行,它的速度不如直接相除来的快,关于 DIVIDE 性能的分析,可以参考这篇文章
EXP
  1. EXP ( <Number> )
复制代码

返回自然常数 e 的给定数字次方

FACT
  1. FACT ( <Number> )
复制代码

返回一个数字的阶乘,等于 1*2*3*…* <Number>

LN
  1. LN ( <Number> )
复制代码

返回一个数字的自然对数

LOG
  1. LOG ( <Number>, [<Base>] )
复制代码

返回以指定数字为底的对数,省略 Base 以 10 为底数

LOG10
  1. LOG10 ( <Number> )
复制代码

返回以 10 为底的对数

MOD
  1. MOD ( <Number>, <Divisor> )
复制代码

返回指定数字被整除后的余数
  1. MOD ( 0, 2 ) -- returns 0
  2. MOD ( 5, 2 ) -- returns 1
  3. MOD ( 6, 3 ) -- returns 0
  4. MOD ( 7, 3 ) -- returns 1
  5. MOD ( 8, 3 ) -- returns 2
复制代码
PI
  1. PI ( )
复制代码

返回圆周率 3.14159265358979 的值,精确到 15 位

POWER
  1. POWER ( <Number>, <Power> )
复制代码

返回提升到幂的数字的结果
  1. 5 ^ 4 = POWER ( 5, 4 )
复制代码
SIGN
  1. SIGN ( <Number> )
复制代码

返回数字的符号:如果数字是正数,则返回 1;如果数字是零,则返回 0;如果数字是负数,则返回-1

SQRT
  1. SQRT ( <Number> )
复制代码

返回给定数字的平方根

RAND
  1. RAND ( )
复制代码

返回一个大于等于 0 且小于 1 的随机数,均匀分布。随机数在重新计算时发生变化。

RANDBETWEEN
  1. RANDBETWEEN ( <Bottom>, <Top> )
复制代码

返回指定数字之间的随机数

EVEN
  1. EVEN ( <Number> )
复制代码

向上舍入到最近的偶数数字<你可以使用此函数来处理成对出现的项。
  1. =EVEN(1.5) -- returns 2
  2. =EVEN(3)   -- returns 4
  3. =EVEN(2)   -- returns 2
  4. =EVEN(-1) -- returns -2
复制代码
ODD
  1. ODD ( <Number> )
复制代码

向上舍入到最近的奇数数字
  1. =ODD(1.5) -- returns 3
  2. =ODD(3)   -- returns 3
  3. =ODD(2)         -- returns 3
  4. =ODD(-1)  -- returns -1
  5. =ODD(-2)  -- returns -3
复制代码
GCD
  1. GCD ( <Number1>, <Number2> )
复制代码

返回两个整数的最大公约数。最大公约数是除 1 和 2 而没有余数的最大整数。

LCM
  1. LCM ( <Number1>, <Number2> )
复制代码

返回整数的最小公倍数。最小公倍数是最小的正整数,它是两个整数参数 1 和 2 的倍数。使用 LCM 添加不同分母的分数。

QUOTIENT
  1. QUOTIENT ( <Numerator>, <Denominator> )
复制代码

返回除法的整数部分
  1. QUOTIENT ( 0, 2 ) -- returns 0
  2. QUOTIENT ( 1, 2 ) -- returns 0
  3. QUOTIENT ( 4, 2 ) -- returns 2
  4. QUOTIENT ( 5, 2 ) -- returns 2
  5. QUOTIENT ( 6, 2 ) -- returns 3
  6. QUOTIENT ( 6, 3 ) -- returns 2
  7. QUOTIENT ( 7, 3 ) -- returns 2
复制代码
数学函数实例



最后,有几个四舍五入函数值得举例说明;实际上,你可以使用几种方法来获得相同的结果。下图中公式和列将一起展示,如图所示:
  1. FLOOR = FLOOR ( Tests[Value], 0.01 )

  2. TRUNC = TRUNC ( Tests[Value], 2 )

  3. ROUNDDOWN = ROUNDDOWN ( Tests[Value], 2 )

  4. MROUND = MROUND ( Tests[Value], 0.01 )

  5. ROUND = ROUND ( Tests[Value], 2 )

  6. CEILING = CEILING ( Tests[Value], 0.01 )

  7. ISO.CEILING = ISO.CEILING ( Tests[Value], 0.01 )

  8. ROUNDUP = ROUNDUP ( Tests[Value], 2 )

  9. INT = INT ( Tests[Value] )

  10. FIXED = FIXED ( Tests[Value], 2, TRUE )
复制代码

7129211936391.jpeg

不同舍入函数的效果汇总


如你所见,除了可以指定四舍五入的位数,FLOORTRUNCROUNDDOWN 在其他方面非常相似。而 CEILINGROUNDUP 是结果非常相似的两个函数。你还可以看到 MROUNDROUND 这两个函数之间舍入的方式有一些不同。
回复

使用道具 举报

火嘴 | 2021-4-24 17:15:35 来自手机 | 显示全部楼层
好帖必须得顶起
回复

使用道具 举报

Laken | 2021-9-21 10:35:28 来自手机 | 显示全部楼层
说的不错,学习了
回复

使用道具 举报

sd3001 | 2021-10-2 06:00:00 | 显示全部楼层
有空一起交流一下
回复

使用道具 举报

ld103 | 2021-10-19 22:47:03 来自手机 | 显示全部楼层
越办越好,经常过来学习视频~~~~~~~~~
回复

使用道具 举报

ecc83 | 2021-10-22 21:36:47 | 显示全部楼层
嘘,低调。
回复

使用道具 举报

newman | 2021-10-22 21:50:27 | 显示全部楼层
学习下
回复

使用道具 举报

一万 | 2021-11-1 17:07:29 | 显示全部楼层
这个不错,学习了
回复

使用道具 举报

really | 2021-11-12 12:54:33 来自手机 | 显示全部楼层
边撸边过
回复

使用道具 举报

mzxds | 2021-11-12 15:51:23 | 显示全部楼层
我也来支持一下,很喜欢这里老师
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则