|
楼主 |
发表于 2010-6-18 11:25
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
常用数学计算函数及其应用实例
这部分内容很多都是我从来没接触过的函数,学习过程自然有很多收获,简单总结一二,如下所示:
大家可以注意一下标注颜色的部分,那是重点。
三个部分:知识概要、扩展知识点(SUBTOTAL、MMULT)、成果应用
===========================================================================================
第一部分:知识概要:
一、公式中数学运算
加(+)、减(—)、乘(*)、除(/)、百分比(%)、乘幂(^)
二、运算符的优先级
由高至低排列:负号、百分比、乘幂、乘除、加减。()强制运算。
三、常用函数分类介绍:
1、求和函数:SUM、SUMIF(条件求和)、SUMPRODUCT(多条件求和)
2、汇总函数:SUBTOTAL——根据第一参数决定运算要求
返回列表或数据库中的分类汇总。通常,使用“数据”选项卡上“大纲”组中的“分类汇总”命令更便于创建带有分 类汇总的列表。一旦创建了分类汇总,就可以通过编辑 SUBTOTAL 函数对该列表进行修改。
3、舍入取整函数:
INT:沿数值减小的方向舍去小数求整.
TRUNC:截断可选择保留位数
ROUNDUP:绝对值增大的方向向上舍入,可设位数
ROUNDDOWN:绝对值减小的方向向上舍入,可设位数
CEILING:绝对值增大/倍数
FLOOR:绝对值减小/倍数
EVEN:绝对值增大/偶数
ODD:绝对值增大/奇数
ROUND:绝对值四舍五入
4、随机函数:RAND——在0~1之间取随机数、RANDBETWEEN——在A~B之间取随机数
RAND()*(B-A)+A可从[A,B)中取值,注意和RANDBETWEEN(A,B)不同,区别在于前者是半开半闭区间,后者是闭区间取值。
5、公倍与公约函数:GCD、LCM
2003版本需要加载分析工具库
6、除法相关的函数:MOD(求余数)、QUOTIENT(取商的整数部分)
7、符号相关的函数:ABS(取绝对值)、SIGN(大于0返1,小于0返-1,等于0返0)
8、概率计算函数:FACT(求阶层)、PERMUT(排列)、COMBIN(组合)
9、对数计算函数:LOG、LOG10、LN(以常数E为底)
10、三角函数:DEGREES、RADIANS、SIN、COS、TAN、ASIN、ACOS、ATAN
RADIANS:角度转弧度,=角度*PI/180
DEGREES:弧度转角度,=弧度*180/PI
11、矩阵函数:MMUT、MINVERSE
=======================================================================
第二部分:扩展知识点一:SUBTOTAL函数
1、SUBTOTAL函数与SUM的区别:
(1)使用“数据”→“分类汇总”功能后,对于每列既有原始输入的数据,也有自动生成的SUBTOTAL数据,这些自动生成的SUBTOTAL将被忽略,而SUM函数则把SUBTOTAL的结果也重复计算进去了。
(2)使用“数据”→“筛选”功能后,SUBTOTAL 函数忽略任何不包括在筛选结果中的行,不论使用什么 function_num 值;而SUM函数则不受筛选影响对区域内全部统计。
2、SUBTOTAL的第一参数9和109的区别:
当 function_num 为从 1 到 11 的常数时,SUBTOTAL 函数将包括通过“隐藏行”命令所隐藏的行中的值;
当 function_num 为从 101 到 111 的常数时,SUBTOTAL 函数将忽略通过“隐藏行”命令所隐藏的行中的值。
爬贴中看到草版对此函数的解读,再加以下2点
3、SUBTOTAL 函数适用于数据列或垂直区域。不适用于数据行或水平区域。
统计垂直区域的时候,隐藏行会对109有影响;
统计水平区域的时候,隐藏列不对109有影响。
4、SUBTOTAL不支持跨工作表的三维引用,但支持函数返回的三维引用;
前者举例:诸如Sheet1:Sheet3!A1:A10的形式的三维引用,SUBTOTAL 将返回错误值 #VALUE!
后者举例:重点理解后一个数组公式
- =INDEX(A:A,MIN(IF(SUBTOTAL(3,OFFSET(A$1,ROW($2:$10)-1,)),ROW($2:$10))))
复制代码- =INDEX(A:A,MIN(IF(SUBTOTAL(3,OFFSET(A$1,ROW($2:$10)-1,))*(COUNTIF(D$12:D12,$A$2:$A$10)=0),ROW($2:$10),4^8)))&""
复制代码 再引用发哥gvntw的一句话:SUBTOTAL 函数的三维引用生成内存数组非常实用,如累加单元格数据,生成内存数组,不足的缺点就是第 2 个参数必须是 ref 。
至于后来草版说的:SUBTOTAL函数还可以支持函数产生的“四维引用”
这句话不理解,有待进一步学习。
扩展知识点二:MMULT函数
MMULT(ARRAY1,ARRAY2)
MMULT函数返回2数组ARRAY1,ARRAY2的矩阵积。
第一、第二参数都只能是数值;
第一参数的列数=第二参数的行数;
结果的行数=第一参数的行数;
结果的列数=第二参数的列数。
介绍一个方版整理的好贴,可以用精彩来形容
http://club.excelhome.net/viewth ... p;page=1#pid2112368
countif、sumif、subtotal等函数都是运用于条件求和、条件计数等统计需求的常用函数,但这些函数都要求其第一参数为单元格区域的直接引用。当问题比较复杂、统计条件比较多的情况下,有些时候就无法直接使用这些函数进行条件统计,而使用mmult函数可以很好地替代这些函数,在复杂条件下的数组统计上进行运用。
应该说,mmult函数是数组条件统计的一大利器,用好mmult函数可以简化许多复杂问题的公式解决方案。
MMULT函数在Excel2003版中,其参数所构成的矩阵元素个数有一个最大数目的限制,不能超过5461。
公式=MMULT(ROW(1:5462),1),因为超出了上述限制范围,此公式会返回错误值#VALUE!。
而在Excel2007及2010版本中,MMULT的矩阵运算个数不再有具体的数目限制,而是与系统可用内存大小有关。
=========================================================================================
第三部分:结合实例应用扩展
注意理解附件中=ROUND(O4*2,-1)/2和=FLOOR(O4+2,5)和=CEILING(O4-2,5)和=MROUND(O4,5)这几种形式的使用。
根据实际需求来对公式进行变形,能够很好的解决问题。
至于最后一个lookup的使用,权当娱乐吧- =LEFT(O4,LEN(O4)-1)*10+LOOKUP(MOD(O4,10),ROW($1:$10)-1,{0,0,0,5,5,5,5,5,10,10})
复制代码
[ 本帖最后由 lrlxxqxa 于 2010-6-18 16:16 编辑 ] |
|