目录
1. 数组基础
1.1 认识数组
概念:Excel中的数组是指按一行、一列或多行多列排列的一组数据元素的集合。数据的元素可以是数值、文本、日期、逻辑值,甚至还可以是错误值。
分类:
1、常量数组
2、区域数组
3、内存数组
4、命名数组 要注意内存数组与区域数组的区别:
区域数组通过单元格区域引用获得,内存数组通过公式计算获得。获得方式不同。
区域数组依赖于引用的单元格区域,内存数组独立存在于内存中。存储方式不同。
1.2 数组的运算
1、数组与单个数据之间的运算
2、一维数组与一维数组之间的运算
3、一维数组与二维数组之间的运算
4、二维数组与二维数组之间的运算
记住两句话即可:
数组与数组作运算,结果是数组,行数与列数取最大值。
结果数组中的元素是两个数组中的对应元素一一作运算,找不到的数据返回N/A。
1.3 数组公式
1、当公式的计算过程中存在数组计算,并且使用的函数不支持非常量数组的计算。
2、当公式的计算结果为数组,需要在多个单元格内存放公式计算结果时。要按ctrl + shift + enter
才能获取到正确结果
案例1:
案例2:九九乘法表
数组公式相对难理解,尤其是在修改由他人编辑完成的复杂数组公式时,如果不能完全理解写这个公式的人的思路,就会非常难修改。
由于数组公式执行的是多项计算。如果工作簿中存在较多的数组公式时,会降低我们工作簿的运算速度。量大的时候甚至会卡死。
2. 数学函数
2.1 ROW和COLUMN函数
1、ROW([reference]):返回单元格或区域的行号,如果没有参数,则返回当前函数所在行的行号。
案例1:用公式写出下面的数列
2、COLUMN([reference]):返回单元格或区域的列标,如果没有参数,则返回当前函数所在列的列标。
3、ROWS(array)
4、COLUMNS(array)
=ROW(1:9) 纵向生成1-9序列值数组
=COLUMN(A:I) 横向生成1-9序列值数组
在数组公式中构建序列值数组时常用到
案例2:提取第一个数字
2.2 MOD求余函数
=MOD(number,divisor) number是被除数,divisor是除数。返回两数相除的余数。
结果的正负号与除数相同。循环序列的通用公式:=mod(自然数序列-1,周期)+初始值。
案例1:基本用法
案例2:根据身份证号识别性别
案例3:生成1,2,3,4,1,2,3,4。。。这样的重复数列
案例4:求偶数月份的工资总额
2.3 MAX和MIN函数
=MIN(number1,number2,…) 返回一组值中的最小值。
=MAX (number1,number2,…) 返回一组值中的最大值。说明:
1、如果参数为错误值或不能转换成数字的文本,将产生错误。
2、如果参数是数组或引用,则函数 MIN,MAX 仅使用其中的数字,空白单元格、逻辑值、
文本都将被忽略。
3、如果逻辑值和文本字符串不能忽略,请使用 MINA/MAXA 函数。
4、如果参数中不含数字,则函数 MIN/MAX 返回 0。
案例1:去掉最高分和最低分,再取平均得到最后得分
案例2:计算月奖金
案例3:根据要求计算最大值和最小值
案例4:计算各部门最高和最低考核分数
2.4 INT和TRUNC函数
=INT(number):将数字向下舍入到最接近的整数
TRUNC(number, num_digits) 将数字的小数部分截去,返回整数。参数说明:
1、number 需要截尾取整的数字。
2、num_digits 用于指定取整精度的数字。 num_digits 的默认值为 0。
案例1:计算装箱
案例2:利用自然数生成循环序列数
案例3:根据月份写出对应的季度
TRUNC与INT的不同之处:
1.TRUNC可以指定小数部分,INT不能
2.对负数的处理方式不同
2.5 ROUND系列函数
ROUND(number,num_digits) 返回某个数字按指定位数取整后的数字。参数说明:
1、Number 需要进行四舍五入的数字。
2、Num_digits 指定的位数,按此位数进行四舍五入。
3、如果 num_digits 等于 0,则四舍五入到最接近的整数。
4、如果 num_digits 大于 0,则四舍五入到指定的小数位。
5、如果 num_digits 小于 0,则在小数点左侧进行四舍五入。
ROUNDUP(number,num_digits) 远离零值,向上舍入数字。
ROUNDDOWN(number,num_digits) 靠近零值,向下(绝对值减小的方向)舍入数字。参数说明:
1、Number 为需要向上/向下舍入的任意实数。
2、Num_digits 四舍五入后的数字的位数。
函数 ROUNDUP 和函数 ROUND 功能相似,不同之处在于函数 ROUNDUP 总是向上舍入数字。函数 ROUNDDOWN 和函数 ROUND 功能相似,不同之处在于函数 ROUNDDOWN 总是向下舍入数字。
1、如果 num_digits 大于 0,则向上舍入到指定的小数位。
2、如果 num_digits 等于 0,则向上舍入到最接近的整数。
3、如果 num_digits 小于 0,则在小数点左侧向上进行舍入。
案例1:演示几个函数的基本功能
案例2:利用自然数生成循环序列数
案例3:根据月份写出对应的季度
2.6 CEILING和FLOOR函数
=FLOOR(number,significance) 向下舍入为最接近的指定基数的倍数
=CEILING(number,significance) 向上舍入为最接近的指定基数的倍数
案例1:演示函数基本功能
案例2:根据月份写出对应的季度
案例3:判断下列数字,小数是否有超过3位?
2.7 RAND和RANDBETWEEN函数
=RAND() 生成大于等于0,小于1的随机数。若要生成 a 与 b 之间的随机实数,请使用:
=RAND()*(b-a)+a
RANDBETWEEN(bottom, top) 参数说明:
1、bottom 是函数 RANDBETWEEN 将返回的最小整数。
2、top是函数 RANDBETWEEN 将返回的最大整数。
案例1:生成5-10之间的随机整数(用rand函数)
案例2:生成5-10之间的随机整数(用randbetween函数)
案例3:随机生成2018-1-1 到2018-12-31的随机日期
2.8 SMALL和LARGE函数
=LARGE(array,k)
=SMALL(array,k)
分别用来返回指定区域或数组内所有数值的第k个最大值或最小值。
LARGE函数的统计范围比MAX函数广,可以返回第k个最大值,而MAX函数只能返回指定数据集合中的最大值。同理,SMALL和MIN函数也是如此。
案例1:选出前三名的成绩
案例2:随机产生数字与大小写字母
案例3:随机安排面试顺序
2.9 PRODUCT和POWER函数
=PRODUCT(number1,number2…) 返回这些参数相乘后的结果。其实质相当于乘号。说明:
1、当参数为数字、逻辑值或数字的文字型表达式时可以被计算;当参数为错误值或是不能转换成数字的文字时,将导致错误。
2、如果参数为数组或引用,只有其中的数字将被计算。数组或引用中的空白单元格、逻辑值、文本或错误值将被忽略。
=POWER(number,power) 返回给定数字的乘幂。参数胡说明
1、number 底数,可以为任意实数。
2、power 指数,底数按该指数次幂乘方。
可以用"^"运算符代替函数 POWER 来表示对底数乘方的幂次,例如 =POWER(5,2)相当于5^2。
案例1:
案例2:
案例3:将数字连接起来
案例4:根据月份写出对应的季度