王佩丰excel2010基础教程学习笔记(第十六讲到第二十讲)

简单文本函数:left,right,mid,find

left()函数有两个参数,参数一是字符串所在单元格,参数二是从字符串左边开始取几位。


从字符串左边开始取三位。

right()函数一样,不过是从字符串右边开始取。


从字符串右边开始取四位。

mid()函数有三个参数,参数一是字符串所在单元格,参数二是从第几位开始取,参数三是取几位。


从A3单元格的第四位开始取,取100位。

find()函数有三个参数,参数一是要查找的字符,参数二是字符所在区域,参数三表示从哪一位开始找起。


表示取单元格的@左边的内容。


表示取单元格的@后面的内容

left函数结合vlookup函数可以查找身份证对应的地区。


表示取单元格左边的前六位,并转化为数据格式(left()函数前面的--表示将文本格式转为数据格式),然后根据数据查找对应的地区。

text函数结合mid函数可以将身份证上的生日转化为日期格式


也可以结合DATE和MID函数达到相同效果



数学函数介绍

round()函数是保留小数函数,有两个参数,参数一是数据所在单元格,数据二是保留几位小数

如round(F2,2)表示将F2单元格的数据四舍五入保留两位小数。

roundup()函数是向上取整的函数。

比如H4单元格的数值是1.234,rounup(H4,2)会返回1.24,即无论第三位小数是多少,舍弃掉之后第二位都会加一。

rounddown()函数则是向下取整,如1.239保留两位会返回1.23。

int()函数则直接舍弃掉小数位取整数(无论小数位是多少)

返回1

如果是负数的话int()会向下取整

返回-2

有意思的是如果用round(-1.5,0)反而会返回-1,看来用的是绝对值。

mod()函数是返回余数的函数

如mod(10,3),表示10除3,返回余数1。


对数据进行转置

王佩丰excel2010基础教程学习笔记(第十六讲到第二十讲)_第1张图片

一种方法是复制要转置的数据,选择性粘贴:转置。

还有一种方法是结合index()和column()函数实现。

=index($A:$A,column()-2)

参数二是当前单元格所在列数-2。

有时候要有规律地取数据中的某些数据,可以结合index()和column()、row()函数,并观察规律来实现。


认识数组

A2:A22是不同的销售区域

现在要找出销售区域为广州的,可以写成

=(A2:A22=$K$8)

即将指定区域和指定单元格的内容进行比较,相同的话就返回True,否则返回False。

上面的函数返回的是一个数组


True表示1,False表示0,再将数组与另一个金额区域相乘,即可得到广州区域的金额。

=(A2:A22=$K$8)*E2:E22


再套一个sum函数,即可求出销售区域为广州的金额总和。

=sum((A2:A22=$K$8)*E2:E22)

不过此处不能直接enter,需要ctrl加shift加enter才会显示结果。

练习:使用数组求指定区域和指定部门的金额总和。



如果用的是sumproduct函数可以直接enter得出结果。


lookup()函数

有三个参数,参数一是查找值,参数二是查找区域,参数三是返回数据的列。没有模糊/精确参数,直接用常会出错,通常结合数组进行使用。

举个例子,现在要根据客户ID返回公司名称。

王佩丰excel2010基础教程学习笔记(第十六讲到第二十讲)_第2张图片

=LOOKUP(1,0/($A:$A=$C3),$B:$B)

参数二是一个数组,除了正确匹配的客户ID外其他都是错误值,参数一无法匹配错误值,只能匹配到正确值,返回B列对应行数的信息。

也可以进行多个条件的匹配,数组要多写几个。

练习:通过使用数组求纳税

王佩丰excel2010基础教程学习笔记(第十六讲到第二十讲)_第3张图片


indirect函数

举个例子,A1单元格的内容是1,在A2单元格内输入公式=indirect("A1"),A2单元格会显示1,即将A1单元格的内容返回。

通过indriect函数实现跨表引用。

例子:文件中有12个月份的工作表,现在要将每张工作表中的员工张三的业绩信息汇总到一张表中。

王佩丰excel2010基础教程学习笔记(第十六讲到第二十讲)_第4张图片

每张月份表中张三的业绩都是固定位置且只有一个


此时公式应写为=indirect(A4&"!g2"),即可跨表引用数据。

如果在每张表中张三的位置是乱序的情况下,需要结合vlookup函数。

=vlookup("张三",indirect(A4&"!A:G),7,0)

表示跨表引用A:G区域并查找关键字,返回对应的第七列数据。

还有个问题,可能在每张表中有多个张三,我们需要将他们加起来才能得到结果。

可以结合sum、indirect和数组解决。

=sum((indirect(A4&"!A2:A100")="张三")*indirect(A4&"!G2:G100"))

跨表引用姓名区域和"张三"比较返回的数组与跨表引用金额区域相乘,并将这个数组求和。

也可以通过sumif函数解决

sumif(indirect(A4&"!A:A"),"张三",indirect(A4&"!G:G"))

在跨表姓名区域查找"张三",将对应的金额列求和。

练习:将各员工不同月份的业绩进行汇总

王佩丰excel2010基础教程学习笔记(第十六讲到第二十讲)_第5张图片

sumif(indirect($A3&"!A:A"),B$2,indirect($A3&"!G:G"))


定义名称

选择一个区域,新建名称

王佩丰excel2010基础教程学习笔记(第十六讲到第二十讲)_第6张图片

此后如果需要引用该区域时可以用定义好的名称代替。

比如要对该区域求和。



结合sum函数,indirect函数,下拉列表,定义名称可以实现动态引用数据区域。

比如对各员工业绩的动态求和。

首先用定义名称将各员工的业绩数据区域定义为姓名,然后通过数据验证在某区域建立一个下拉列表,由员工姓名组成,最后用indirect函数通过员工姓名引用数据区域,再加上sum函数。

王佩丰excel2010基础教程学习笔记(第十六讲到第二十讲)_第7张图片


通过数据有效性和indirect函数和定义名称创建二级下拉菜单

举个例子,以省为一级菜单,市为二级菜单。

王佩丰excel2010基础教程学习笔记(第十六讲到第二十讲)_第8张图片

通过定义名称,将各市所在区域定义为省名。

王佩丰excel2010基础教程学习笔记(第十六讲到第二十讲)_第9张图片

将某一列设置省份为下拉菜单

王佩丰excel2010基础教程学习笔记(第十六讲到第二十讲)_第10张图片

旁边那列通过indirect函数引用省份获取市级下拉菜单。

王佩丰excel2010基础教程学习笔记(第十六讲到第二十讲)_第11张图片

你可能感兴趣的:(excel)