excel最多有256列,65535行
excel绝对引用,想哪个不变就在哪个前面加$,如 $B$7(横拖竖拖都值不变),B$7(列边行不变),$B7(列变行不变)
单元格保护,先对整张表取消保护,再对选定区域进行保护,可设置密码等,使得其他user不得修改选定区域内容
①ctrl+1,protection取消lock
②Format-Protection sheet, 选择需要保护的操作,设置密码
excel常用函数:
计数:
①COUNTIF(range,condition)
报名人数超过3000的课程一共有多少人?
E.g. COUNTIF(B2:B7,">=3000") 计算在B2:B7这个范围大于3000的数有几个
②COUNTIFS(range1,condition1,range2,condition2)
报名人数超过5000,单价超过1000的课程有多少个?
E.g. COUNTIFS(B2:B7,">=5000",C2:C7,">1000") 计算在B2:B7这个范围大于5000并且在C2:C7这个范围大于1000的行的个数
COUNTIFS(B2:B7,">=5000",B2:B7,"<5000") 计算在B2:B7这个范围大于3000并且小于5000的数有几个
求和:
①SUMIF(range1,condition1,sum_range)
报名人数超过3000的课程一共有多少人参加?
E.g. SUMIF(B2:B7,">=3000",B2:B7) 满足在B2:B7范围内大于等于3000的数的总和
报名人数超过3000的课程一共有多少收入?
SUMIF(B2:B7,">=3000",D2:D7) 满足在B2:B7范围内大于等于3000输对应在D2:D7的的总和
②SUMIFS(sum_range, range1, condition1, range2, condition2)
报名人数在3000到10000的课程一共有多少收入?
E.g. SUMIFS(D2:D7,B2:B7,">=3000",B2:B7,"<10000") 在B2:B7范围内大于等于3000且小于等于10000的课程,对应D2:D7范围的总和
排序:
RANK(number,ref,order)
E.g. RANK(B2, B2:B7) 显示B2在B2:B7这个范围的排名
RANK.AVG() 有相同的排名时取平均值
逻辑函数:AND,OR,NOT,IF,IFERROR,FALSE,TRUE
E.g. IF(B2>=10000,1,0) 如果满足条件return 1,else 2
IF(AND(B2>1000,C2<=2000), "good","bad") AND写在开头
OR(B4>1000,C4<50) AND,OR,NOT
NOT(C5>1000)
IFERROR(A2/B2,"错误") 判断A2/B2是否正确,如果正确返回A2/B2结果,否则返回“错误”字符
索引:
INDEX(data_range, x, y) x:行坐标,y列坐标,从1开始
E.g. INDEX(B20:F25,1,1) 在范围B20:F25中第一行第一列的值,打架
MATCH(target_pos, data_range) 返回一行/列的索引,通常与INDEX()配合使用
E.g. MATCH(G22,A20:A25) 返回列A20:A25中,G22中值(造纸)的坐标
MATCH(G21,B19:F19) 返回行B19:F19中,G21中值(2013年)的坐标
通过match我们已经计算了x,y的坐标值,保存在H21,H22中,然后通过index()函数定位“2013年造纸的招生人数”
INDEX(B20:F25,H22,H21)
查找函数:
VLOOKUP纵向查找,HLOOKUP横向查找
VLOOKUP适用场景:两张表中用一个关键字联合检索时,第一列必须是lookup_value说关联的列
HLOOKUP适用场景:两张表中用一个关键字联合检索时,第一列必须是lookup_value说关联的行
VLOOKUP(lookup_value, table_array, col_index_num, range_lookup)
E.g. 用成绩计算对应等级 VLOOKUP(C28,$I$28:$K$34,2,TRUE) 计算820属于哪个等级,通过等级匹配,在第二个表中第2列是“等级”, TRUE代表近似匹配(FLASE精确匹配)
E.g. HLOOKUP(C28,$M$35:$T$37,3,1)*$N$27 通过成绩计算奖学金比例*奖学金池
生成随机数:
RANDBETWEEN(bottom, top)
E.g. RANDBETWEEN(0,50) 生成0到50的随机数
INDIRECT函数:
E.g. INDIRECT(H21) 引用H21单元格内的内容
引用单元格作为临时变量,通常用来作为分级菜单
步骤:
如果一级菜单排成一列:Formulas->Create from selection选择Left column,排成一行:选Top row
这种选left column
第一级菜单,数据有效性:List, 选择一级菜单内容,假如内容在A1:A6,source=$A$1:$A$6
第二级菜单,数据有效性:List,source=INDIRECT(S2), S2为显示一级菜单的位置
文本函数:
LEFT, RIGHT, MID,FIND,LEN,SUBSTITUTE
LEFT(TEXT, num_char) 从TEXT左边开始取,取num_char位
RIGHT(TEXT, num_char) 从TEXT右边开始取,取num_char位
MID(TEXT, start_num, num_char) 从TEXT字符串start_num处开始取,取num_char位
FIND(find_text,within_text, start_num) Find(要查找的文本,文本所在的单元格,从第几个字符开始查找[可选,省略默认为1,从第一个开始查找)
LEN(TEXT) 文本的长度
SUBSTITUTE(TEXT, old_text, new_text, instance_num) 替换字符串中的部分字符
CONCATENATE(text1,text2,...) 将text1, text2,...连接起来
UPPER(text) 转大写
LOWER(text) 转小写
EXACT(text1,text2) 比较text1, text2,相同为true,不同为false
E.g.
查找结果:
通常我们需要把几个函数结合使用:
结果: