Excel
函数应用之逻辑函数
编者语:Excel 是办公室自动化中非常重要的一款软件,很多巨型国际企业都是依靠 Excel 进行
数据管理。它不仅仅能够方便的处理表格和进行图形分析,其更强大的功能体现在对数据的自
动处理和计算,然而很多缺少理工科背景或是对 Excel 强大数据处理功能不了解的人却难以进
一步深入。编者以为,对 Excel 函数应用的不了解正是阻挡普通用户完全掌握 Excel 的拦路虎,
然而目前这一部份内容的教学文章却又很少见,所以特别组织了这一个 《Excel 函数应用》系列,
希望能够对 Excel 进阶者有所帮助。《Excel 函数应用》系列,将每周更新,逐步系统的介绍
Excel 各类函数及其应用,敬请关注!
用来判断真假值,或者进行复合检验的 Excel 函数,我们称为逻辑函数。在 Excel 中提供了六
种逻辑函数。即 AND、OR、NOT、FALSE、IF、TRUE 函数。
一、AND、OR、NOT 函数
这三个函数都用来返回参数逻辑值。详细介绍见下:
(一)AND 函数
所有参数的逻辑值为真时返回 TRUE;只要一个参数的逻辑值为假即返回 FALSE。简言之,就是
当 AND 的参数全部满足某一条件时,返回结果为 TRUE,否则为 FALSE。
语法为 AND(logical1,l ogical2, ...),其中Logical1, logical2, ... 表示待检测的 1 到 30
个条件值,各条件值可能为 TRUE,可能为 FALSE。 参数必须是逻辑值,或者包含逻辑值的数组
或引用。举例说明:
1、 在 B2 单元格中输入数字 50,在 C2 中写公式=AND(B2>30,B2<60)。由于 B2 等于 50 的确大于
30、小于 60。所以两个条件值(logical)均为真,则返回结果为 TRUE。
图 1 AND 函数示例 1
2、 如果 B1-B3 单元格中的值为 TRUE、FALSE、TRUE,显然三个参数并不都为真,所以 在 B4
单元格中的公式=AND(B1:B3 ) 等于 FALSE
www.manaren.com
图 2 AND 函数示例 2
(二)OR 函数
OR 函数指在其参数组中,任何一个参数逻辑值为 TRUE,即返回 TRUE。它与 AND 函数的区别在
于,AND 函数要求所有函数逻辑值均为真,结果方为真。而 OR 函数仅需其中任何一个为真即可
为真。比如,上面的示例 2,如果在 B4 单元格中的公式写为=OR (B1:B3)则结果等于 TRUE
图 3 OR 函数示例
(三)NOT 函数
NOT 函数用于对参数值求反。当要确保一个值不等于某一特定值时,可以
使用 NOT 函数。简言之,就是当参数值为 TRUE 时,NOT 函数返回的结果恰与之相反,结果为
FALSE.
比如 NOT(2+2=4),由于 2+2 的结果的确为 4,该参数结果为 TRUE,由于是 NOT 函数,因此返回
函数结果与之相反,为 FALSE。
二、TRUE、FALSE 函数
TRUE、FALSE 函数用来返回参数的逻辑值,由于可以直接在单元格或公式中键入值 TRUE 或者
FALSE。因此这两个函数通常可以不使用。
三、IF 函数
(一)IF 函数说明
IF 函数用于执行真假值判断后,根据逻辑测试的真假值返回不同的结果,因此 If 函数也称之为
www.manaren.com
条件函数。它的应用很广泛,可以使用函数 IF 对数值和公式进行条件检测。
它的语法为 IF(logical_test,value_if_true,value_if_false)。其中 Logical_test 表示计算
结果为 TRUE 或 FALSE 的任意值或表达式。本参数可使用任何比较运算符。
Value_if_true 显示在 logical_test 为 TRUE 时返回的值, Value_if_true 也可以是其他公式。
Value_if_false logic al_test 为 FALSE 时返回 的值。Value_if_false 也可以是其他 公式。
简言之, 如果第一个参数 logical_test 返回的结果为真的话, 则执行第二个参数 Value_if_true
的结果, 否则执行第三个参数 Value_if_false 的结果。 IF 函数可以嵌套七层,用 value_if_false
及 value_if_true 参数可以构造复杂的检测条件。
Excel 还提供了可根据某一条件来分析数据的其他函数。例如,如果要计算单元格区域中某个
文本串或数字出现的次数,则可使用 COUNTIF 工作表函数。如果要根据单元格区域中的某一文
本串或数字求和,则可使用 SUMIF 工作表函数。
(二)IF 函数应用
1、 输出带有公式的空白表单
图 5 人事分析表 1
以图中所示的人事状况分析表为例,由于各部门关于人员的组成情况的数据尚未填写,在总计
栏(以单元格 G5 为例)公式为:
=SUM(C5:F5)
www.manaren.com
我们看到计算为 0 的结果。如果这样的表格打印出来就页面的美观来看显示是不令人满意的。
是否有办法去掉总计栏中的 0 呢?你可能会说,不写公式不就行了。当然这是一个办法,但是,
如果我们利用了 IF 函数的话,也可以在写公式的情况下,同样不显示这些 0。如何实现呢?只
需将总计栏中的公式(仅以单元格 G5 为例)改写成:
=IF(SUM(C5:F5),SUM(C5:F5),"")
通俗的解释就是:如果 SUM(C5:F5)不等于零,则在单元格中显示 SUM(C5:F5)的结果,否则显示
字符串。
几点说明:
(1) SUM(C5:F5)不等于零的正规写法是 SUM(C5:F5)<>0,在 EXCEL 中可以省略<>0;
(2) ""表示字符串的内容为空,因此执行的结果是在单元格中不显示任何字符。
图4
2、 不同的条件返回不同的结果
如果对上述例子有了很好的理解后,我们就很容易将 IF 函数应用到更广泛的领域。比如,在成
绩表中根据不同的成绩区分合格与不合格。现在我们就以某班级的英语成绩为例具体说明用法。
www.manaren.com
图6
某班级的成绩如图 6 所示,为了做出最终的综合评定,我们设定按照平均分判断该学生成绩是
否合格的规则。如果各科平均分超过 60 分则认为是合格的,否则记作不合格。
根据这一规则,我们在综合评定中写公式(以单元格 B12 为例):
=IF(B11>60,"合格","不合格")
语法解释为,如果单元格 B11 的值大于 60,则执行第二个参数即在单元格 B12 中显示合格字样,
否则执行第三个参数即在单元格 B12 中显示不合格字样。
在综合评定栏中可以看到由于 C 列的同学各科平均分为 54 分,综合评定为不合格。其余均为合
格。
3、 多层嵌套函数的应用
在上述的例子中,我们只是将成绩简单区分为合格与不合格,在实际应用中,成绩通常是有多
个等级的,比如优、良、中、及格、不及格等。有办法一次性区分吗?可以使用多层嵌套的办
法来实现。仍以上例为例,我们设定综合评定的规则为当各科平均分超过 90 时,评定为优秀。
如图 7 所示。
www.manaren.com
图7
说明:为了解释起来比较方便,我们在这里仅做两重嵌套的示例,您可以按照实际情况进行更
多重的嵌套,但请注意 Excel 的 IF 函数最多允许七重嵌套。
根据这一规则,我们在综合评定中写公式(以单元格 F12 为例):
=IF(F11>60,IF(AND(F11>90),"优秀","合格"),"不合格")
语法解释为,如果单元格 F11 的值大于 60,则执行第二个参数,在这里为嵌套函数,继续判断
单元格 F11 的值是否大于 90(为了让大家体会一下 AND 函数的应用,写成 AND(F11>90),实际
上可以仅写 F11>90),如果满足在单元格 F12 中显示优秀字样,不满足显示合格字样,如果 F11
的值以上条件都不满足,则执行第三个参数即在单元格 F12 中显示不合格字样。
在综合评定栏中可以看到由于 F 列的同学各科平均分为 92 分,综合评定为优秀。
(三)根据条件计算值
在了解了 IF 函数的使用方法后,我们再来看看与之类似的 Excel 提供的可根据某一条件来分析
数据的其他函数。例如,如果要计算单元格区域中某个文本串或数字出现的次数,则可使用
COUNTIF 工作表函数。如果要根据单元格区域中的某一文本串或数字求和,则可使用 SUMIF 工
作表函数。关于 SUMIF 函数在数学与三角函数中以做了较为详细的介绍。这里重点介绍 COUNTIF
的应用。
COUNTIF 可以用来计算给定区域内满足特定条件的单元格的数目。比如在成绩表中计算每位学生
取得优秀成绩的课程数。在工资表中求出所有基本工资在 2000 元以上的员工数。
语法形式为 COUNTIF(ra nge,criteria)。其中 Range 为需要计算其中满足条件的单元格数目的单
元格区域。Criteria 确定哪些单元格将被计算在内的条件,其形式可以为数字、表达式或文本。
例如,条件可以表示为 32、"32"、">32"、"apples"。
www.manaren.com
1、成绩表
这里仍以上述成绩表的例子说明一些应用方法。我们需要计算的是:每位学生取得优秀成绩的
课程数。规则为成绩大于 90 分记做优秀。如图 8 所示
图8
根据这一规则,我们在优秀门数中写公式(以单元格 B13 为例):
=COUNTIF(B4:B10,">90")
语法解释为,计算 B4 到 B10 这个范围,即 jarry 的各科成绩中有多少个数值大于 90 的单元格。
在优秀门数栏中可以看到 jarry 的优秀门数为两门。其他人也可以依次看到。
2、 销售业绩表
销售业绩表可能是综合运用 IF、SUMIF、COUNTIF 非常典型的示例。比如,可能希望计算销售人
员的订单数,然后汇总每个销售人员的销售额,并且根据总发货量决定每次销售应获得的奖金。
原始数据表如图 9 所示(原始数据是以流水单形式列出的,即按订单号排列)
www.manaren.com
图 9 原始数据表
按销售人员汇总表如图 10 所示
图 10 销售人员汇总表
如图 10 所示的表完全是利用函数计算的方法自动汇总的数据。首先建立一个按照销售人员汇总
的表单样式,如图所示。然后分别计算订单数、订单总额、销售奖金。
(1) 订单数 --用 COUNTIF 计算销售人员的订单数。
以销售人员 ANNIE 的订单数公式为例。公式:
=COUNTIF($C$2:$C$13,A17)
www.manaren.com
语法解释为计算单元格 A17(即销售人员 ANNIE)在"销售人员"清单$C$2:$C$13 的范围内(即图 9
所示的原始数据表)出现的次数。
这个出现的次数即可认为是该销售人员 ANNIE 的订单数。
(2) 订单总额--用 SUMIF 汇总每个销售人员的销售额。
以销售人员 ANNIE 的订单总额公式为例。公式:
=SUMIF($C$2:$C$13,A17,$B$2:$B$13)
此公式在"销售人员"清单$C$2:$C$13 中检查单元格 A17 中的文本(即销售人员 ANNIE),然后
计算"订单金额"列($B$2:$B$13)中相应量的和。
这个相应量的和就是销售人员 ANNIE 的订单总额。
(3) 销售奖金--用 IF 根据订单总额决定每次销售应获得的奖金。
假定公司的销售奖金规则为当订单总额超过 5 万元时,奖励幅度为百分之十五,否则为百分之
十。根据这一规则仍以销售人员 ANNIE 为例说明。公式为:
=IF(C17<50000,10%,15%)*C17
如果订单总额小于 50000 则奖金为 10%;如果订单总额大于等于 50000,则奖金为 15%。
至此,我们已完全了解了 EXCEL 函数的逻辑函数,相信大家在实际工作中会想出更多更有用的
运用。
Excel函数应用之数学和三角函数
(陆元婕 2001 年 05 月 23 日 10:12)
编者语: Excel是办公室自动化中非常重要的一款软件,很多巨型国际企业都是依靠 Excel进行数据管理。它不仅仅能够方便的处理表
格和进行图形分析,其更强大的功能体现在对数据的自动处理和计算,然而很多缺少理工科背景或是对 Excel强大数据处理功能不了
解的人却难以进一步深入。编者以为,对 Excel函数应用的不了解正是阻挡普通用户完全掌握 Excel的拦路虎,然而目前这一部份内
容的教学文章却又很少见,所以特别组织了这一个《Excel 函数应用》系列,希望能够对Excel进阶者有所帮助。《Excel 函数应用》
系列,将每周更新,逐步系统的介绍 Excel各类函数及其应用,敬请关注!
学习 Excel 函数,我们还是从“数学与三角函数”开始。毕竟这是我们非常熟悉的函数,这些正弦函数、余弦
函数、取整函数等等从中学开始,就一直陪伴着我们。
首先,让我们一起看看 Excel 提供了哪些数学和三角函数。笔者在这里以列表的形式列出 Excel 提供的所有数
学和三角函数,详细请看附注的表格。
从表中我们不难发现,Excel 提供的数学和三角函数已基本囊括了我们通常所用得到的各种数学公式与三角函
数。这些函数的详细用法,笔者不在这里一一赘述,下面从应用的角度为大家演示一下这些函数的使用方法。
一、与求和有关的函数的应用
SUM 函数是 Excel 中使用最多的函数,利用它进行求和运算可以忽略存有文本、空格等数据的单元格,语法简单、
使用方便。相信这也是大家最先学会使用的 Excel 函数之一。但是实际上,Excel 所提供的求和函数不仅仅只有
SUM 一种,还包括 SUBTOTAL、SUM、SUMIF、SUMPRODUCT、SUMSQ、SUMX2MY2、SUMX2PY2、SUMXMY2 几种函数。
这里笔者将以某单位工资表为例重点介绍 SUM(计算一组参数之和)、SUMIF(对满足某一条件的单元格区域求
和)的使用。(说明:为力求简单,示例中忽略税金的计算。)
图 1 函数求和
SUM
www.manaren.com
www.manaren.com
1、行或列求和
以最常见的工资表(如上图)为例,它的特点是需要对行或列内的若干单元格求和。
比如,求该单位 2001 年 5 月的实际发放工资总额,就可以在 H13 中输入公式:
=SUM(H3:H12)
2、区域求和
区域求和常用于对一张工作表中的所有数据求总计。此时你可以让单元格指针停留在存放结果的单元格,然后
在 Excel 编辑栏输入公式"=SUM()",用鼠标在括号中间单击,最后拖过需要求和的所有单元格。若这些单元
格是不连续的,可以按住 Ctrl 键分别拖过它们。对于需要减去的单元格,则可以按住 Ctrl 键逐个选中它们,
然后用手工在公式引用的单元格前加上负号。当然你也可以用公式选项板完成上述工作,不过对于 SUM 函数来
说手工还是来的快一些。比如,H13 的公式还可以写成:
=SUM(D3:D12,F3:F12)-SUM(G3:G12)
3、注意
SUM 函数中的参数,即被求和的单元格或单元格区域不能超过 30 个。换句话说,SUM 函数括号中出现的分隔符
(逗号)不能多于 29 个,否则 Excel 就会提示参数太多。对需要参与求和的某个常数,可用"=SUM(单元格区
域,常数)"的形式直接引用,一般不必绝对引用存放该常数的单元格。
SUMIF
SUMIF 函数可对满足某一条件的单元格区域求和,该条件可以是数值、文本或表达式,可以应用在人事、工资和
成绩统计中。
仍以上图为例,在工资表中需要分别计算各个科室的工资发放情况。
要计算销售部 2001 年 5 月加班费情况。则在 F15 种输入公式为
=SUMIF($C$3:$C$12,"销售部",$F$3:$F$12)
其中"$C$3:$C$12"为提供逻辑判断依据的单元格区域,"销售部"为判断条件即只统计$C$3:$C$12 区域中部门为"
销售部"的单元格,$F$3:$F$12 为实际求和的单元格区域。
二、与函数图像有关的函数应用
我想大家一定还记得我们在学中学数学时,常常需要画各种函数图像。那个时候是用坐标纸一点点描绘,常常
因为计算的疏忽,描不出平滑的函数曲线。现在,我们已经知道 Excel 几乎囊括了我们需要的各种数学和三角
函数,那是否可以利用 Excel 函数与 Excel 图表功能描绘函数图像呢?当然可以。
Excel 进阶
● Excel进阶技巧(一)
● Excel进阶技巧(二)
● Excel进阶技巧(三)
● Excel进阶技巧(四)
● Excel进阶技巧(五)
这里,笔者以正弦函数和余弦函数为例说明函数图像的描绘方法。
图 2 函数图像绘制
1、 录入数据--如图所示,首先在表中录入数据,自 B1 至 N1 的单元格以 30 度递增的方式录入从0至360的数
字,共 13 个数字。
2、 求函数值--在第 2 行和第三行分别输入 SIN 和 COS 函数,这里需要注意的是:由于 SIN 等三角函数在 Excel
的定义是要弧度值,因此必须先将角度值转为弧度值。具体公式写法为(以 D2 为例): =SIN(D1*PI()/180)
3、 选择图像类型--首先选中制作函数图像所需要的表中数据,利用 Excel 工具栏上的图表向导按钮(也可利
用"插入"/"图表"),在"图表类型"中选择"XY 散点图",再在右侧的"子图表类型"中选择"无数据点平滑线散点
图",单击[下一步],出现"图表数据源"窗口,不作任何操作,直接单击[下一步]。
4、 图表选项操作--图表选项操作是制作函数曲线图的重要步骤,在"图表选项"窗口中进行(如图 3),依次进
行操作的项目有:
标题--为图表取标题,本例中取名为"正弦和余弦函数图像";为横轴和纵轴取标题。
坐标轴--可以不做任何操作;
网格线--可以做出类似坐标纸上网格,也可以取消网格线;
图例--本例选择图例放在图像右边,这个可随具体情况选择;
数据标志--本例未将数据标志在图像上,主要原因是影响美观。如果有特殊要求例外。5、完成图像--操作结束
后单击[完成],一幅图像就插入 Excel 的工作区了。
6、 编辑图像--图像生成后,字体、图像大小、位置都不一定合适。可选择相应的选项进行修改。所有这些操
作可以先用鼠标选中相关部分,再单击右键弹出快捷菜单,通过快捷菜单中的有关项目即可进行操作。
至此,一幅正弦和余弦函数图像制作完成。用同样的方法,还可以制作二次曲线、对数图像等等。
www.manaren.com
三、常见数学函数使用技巧--四舍五入
在实际工作的数学运算中,特别是财务计算中常常遇到四舍五入的问题。虽然,excel 的单元格格式中允许你定
义小数位数,但是在实际操作中,我们发现,其实数字本身并没有真正的四舍五入,只是显示结果似乎四舍五
入了。如果采用这种四舍五入方法的话,在财务运算中常常会出现几分钱的误差,而这是财务运算不允许的。
那是否有简单可行的方法来进行真正的四舍五入呢?其实,Excel 已经提供这方面的函数了,这就是 ROUND 函数,
它可以返回某个数字按指定位数舍入后的数字。
在 Excel 提供的"数学与三角函数"中提供了一个名为 ROUND(number,num_digits)的函数,它的功能就是根据指
定的位数,将数字四舍五入。这个函数有两个参数,分别是 number 和 num_digits。其中 number 就是将要进行
四舍五入的数字;num_digits 则是希望得到的数字的小数点后的位数。如图 3 所示:
单元格 B2 中为初始数据 0.123456,B3 的初始数据为 0.234567,将要对它们进行四舍五入。在单元格 C2 中输入
"=ROUND(B2,2)",小数点后保留两位有效数字,得到 0.12、0.23。在单元格 D2 中输入"=ROUND(B2,4)",则小数
点保留四位有效数字,得到 0.1235、0.2346。
图 3 对数字进行四舍五入
对于数字进行四舍五入,还可以使用 INT(取整函数),但由于这个函数的定义是返回实数舍入后的整数值。因
此,用 INT 函数进行四舍五入还是需要一些技巧的,也就是要加上 0.5,才能达到取整的目的。仍然以图 3 为例,
如果采用 INT 函数,则 C2 公式应写成:"=INT(B2*100+0.5)/100"。
最后需要说明的是:本文所有公式均在 Excel97 和 Excel2000 中验证通过,修改其中的单元格引用和逻辑条件
值,可用于相似的其他场合。
附注:Excel 的数学和三角函数一览表
ABS 工作表函数 返回参数的绝对值
ACOS 工作表函数 返回数字的反余弦值
ACOSH 工作表函数 返回参数的反双曲余弦值
ASIN 工作表函数 返回参数的反正弦值
ASINH 工作表函数 返回参数的反双曲正弦值
ATAN 工作表函数 返回参数的反正切值
ATAN2 工作表函数 返回给定的 X 及 Y 坐标值的反正切值
www.manaren.com
www.manaren.com
ATANH 工作表函数 返回参数的反双曲正切值
CEILING 工作表函数 将参数 Number 沿绝对值增大的方向,舍入为最接近的整数或基数
COMBIN 工作表函数 计算从给定数目的对象集合中提取若干对象的组合数
COS 工作表函数 返回给定角度的余弦值
COSH 工作表函数 返回参数的双曲余弦值
COUNTIF 工作表函数 计算给定区域内满足特定条件的单元格的数目
DEGREES 工作表函数 将弧度转换为度
EVEN 工作表函数 返回沿绝对值增大方向取整后最接近的偶数
EXP 工作表函数 返回 e 的 n 次幂常数 e 等于 2.71828182845904,是自然对数的底数
FACT 工作表函数 返回数的阶乘,一个数的阶乘等于 1*2*3*...* 该数
FACTDOUBLE 工作表函数 返回参数 Number 的半阶乘
FLOOR 工作表函数 将参数 Number 沿绝对值减小的方向去尾舍入,使其等于最接近的 significance 的倍数
GCD 工作表函数 返回两个或多个整数的最大公约数
INT 工作表函数 返回实数舍入后的整数值
LCM 工作表函数 返回整数的最小公倍数
LN 工作表函数 返回一个数的自然对数自然对数以常数项 e (2.71828182845904)为底
LOG 工作表函数 按所指定的底数,返回一个数的对数
LOG10 工作表函数 返回以 10 为底的对数
MDETERM 工作表函数 返回一个数组的矩阵行列式的值
MINVERSE 工作表函数 返回数组矩阵的逆距阵
MMULT 工作表函数 返回两数组的矩阵乘积结果
MOD 工作表函数 返回两数相除的余数结果的正负号与除数相同
MROUND 工作表函数 返回参数按指定基数舍入后的数值
MULTINOMIAL 工作表函数 返回参数和的阶乘与各参数阶乘乘积的比值
ODD 工作表函数 返回对指定数值进行舍入后的奇数
PI 工作表函数 返回数字 3.14159265358979,即数学常数 pi ,精确到小数点后 15 位
POWER 工作表函数 返回给定数字的乘幂
PRODUCT 工作表函数 将所有以参数形式给出的数字相乘,并返回乘积值
QUOTIENT 工作表函数 回商的整数部分,该函数可用于舍掉商的小数部分
RADIANS 工作表函数 将角度转换为弧度
RAND 工作表函数 返回大于等于 0 小于 1 的均匀分布随机数
RANDBETWEEN 工作表函数 返回位于两个指定数之间的一个随机数
ROMAN 工作表函数 将阿拉伯数字转换为文本形式的罗马数字
ROUND 工作表函数 返回某个数字按指定位数舍入后的数字
ROUNDDOWN 工作表函数 靠近零值,向下(绝对值减小的方向)舍入数字
ROUNDUP 工作表函数 远离零值,向上(绝对值增大的方向)舍入数字
SERIESSUM 工作表函数 返回基于以下公式的幂级数之和:
SIGN 工作表函数 返回数字的符号当数字为正数时返回 1 ,为零时返回 0,为负数时返回 -1
SIN 工作表函数 返回给定角度的正弦值
SINH 工作表函数 返回某一数字的双曲正弦值
SQRT 工作表函数 返回正平方根
SQRTPI 工作表函数 返回某数与 pi 的乘积的平方根
SUBTOTAL 工作表函数 返回数据清单或数据库中的分类汇总
SUM 工作表函数 返回某一单元格区域中所有数字之和
SUMIF 工作表函数 根据指定条件对若干单元格求和
SUMPRODUCT 工作表函数 在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和
SUMSQ 工作表函数 返回所有参数的平方和
SUMX2MY2 工作表函数 返回两数组中对应数值的平方差之和
SUMX2PY2 工作表函数 返回两数组中对应数值的平方和之和,平方和加总在统计计算中经常使用
SUMXMY2 工作表函数 返回两数组中对应数值之差的平方和
TAN 工作表函数 返回给定角度的正切值
TANH 工作表函数 返回某一数字的双曲正切值
TRUNC 工作表函数 将数字的小数部分截去,返回整数
作者:郑如定 来源:中国电脑教育报 加入时间:2002-9-24 阅读次数: 435
阅读选项: 文字 黑色
背景 白色字号 9 pt 字型 正常 自动
滚屏[左键停止]
Excel 的强大函数功能,为我们带来了极大方便,虽然它有 200多个函数,但有时我们为实现一项
规定的功能,可能用到几个函数或者采用嵌套函数,这样应用起来,也不太方便。其实对于我们经常
用到的功能,我们可以创建自定义函数 UDF(User—defined function),它的运行与 Excel中自带的函数
完全相同。建立自定义函数有以下几个优点:建立自己特殊的功能和名称的函数;能将复杂的、嵌套
的、多个原有的函数组合在一起,发挥更大的威力。
比如现在我们要根据收入来计算个人收入调节税,按照规定每月收入减去 800元基础后,除去养
老保险金、失业保险金、医疗保险金、住房公积金、工会费,对剩下的余额征收个税。余额在 500元
内的征收余额的 5%,余额为500~2000元的征收余额的 10%,余额为2000~5000元的征收余额的
15%……征收个税的最高税率为 45%(余额在 10万元以上的)。如果用 Excel的函数,则要进行多层
if 嵌套,稍有不注意,可能造成计算上差错,我们建立自己的函数来解决这个问题。
www.manaren.com
www.manaren.com
首先进入Excel,在[工具] →[宏]→[Visul Basic 编辑器](也可按组合键[Alt+F11] ),在“Visul Basic
编辑器” 中选择[插入]→[添加模块] ,在代码窗口输入下列函数:
Function tax(income As Single) As Single
Select Case income
Case 0 To 800
tax = 0
Case 800.01 To 1300
tax = (income - 800) * 0.05
Case 1300.01 To 2800
tax = (income - 1300) * 0.1 + 25
www.manaren.com
Case 2800.01 To 5800
tax = (income - 2800) * 0.15 + 175
Case 5800.01 To 20800
tax = (income - 5800) * 0.2 + 625
Case 20800.01 To 40800
tax = (income - 20800) * 0.25 + 3625
Case 40800.01 To 60800
tax = (income - 40800) * 0.3 + 8625
Case 60800.01 To 80800
www.manaren.com
tax = (income - 60800) * 0.35 + 14625
Case 80800.01 To 100800
tax = (income - 80800) * 0.4 + 21625
Case Is >= 100800
tax = (income - 100800) * 0.45 + 29625
Case Is < 0
MsgBox "你的工资 " && income && " 输入有误"
End Select
End Function
我们知道,Excel中函数都有一个说明,帮助使用,我们也要给这个函数添加一个说明。在工具
栏中选择“ 对象浏览器”( 如图1),选择我们所做 Tax模块,在其[右键] →[属性] 中添加关于对这个函数
的描述,这个描述将出现在 Excel中关于函数的说明中,如果你要对软件保密的话,在“ 模块”上按右
键,[VBAproject 属性]→[保护中设置密码] ,嘿嘿!别人就看不到你的源程序了。
图 1 添加自制函数说明
这时,退出,回到 Excel界面, 将这个文件另存为:类型为“Microsoft Excel 加载宏”,在Excel 2000
中,它会自动更改保存位置为 c:\windows\application data\microsoft\addins(系统装在c:\windows ),当
然,你也可以把这个文件 tax.xla,直接复制到 office\library(office的安装路径下),而在 Excel 97中
只能放在后一个位置。使用函数很简单,点击[工具] →[加载宏] ,在你创建的 Tax前打个勾,在单元格
直接输入“=tax()” ,是不是像Microsoft office 提供的函数一样(如图 2),很有点专业味道。
图 2 使用自制函数
假如你把调用这个宏的 Excel文件拷贝到别的机子上运行,会出现“ 当前所要打开的文档含有其他
文档的链接,是否要使用其他工作簿中的改动更新当前工作簿” 的提示,可以显示原先计算的数据,这
是因为在 Excel中的[工具] →[选项] →[重新计算] 中,一般选中“ 保存外部链接数据” ,但你不能重新计
算,因为不能链接这个宏,别人机子上根本就没有这个函数。
www.manaren.com
图 3 我的函数好像不够专业
只不过在“ 加载宏”时,我自己创建的函数,是一个英文标题,而且下面也没有说明(如图 3),
你是不是觉得有点不够专业。跟我来,再教你一招,如果你使用的是 Excel 2000时,找到tax.xla,点
击[右键] →[属性]→[摘要 ] (如图 4),在描述里添加所需内容来对函数进行相关描述,其中“ 标题”部
分将出现在“ 加载宏”的方框中, “备注” 部分将出现在下面的函数说明部分。这时再看看,够不够专业。
在 Excel 97 中也可以在其右键属性中作相应更改。
图 4 添加中文描述
函数名 功能 用途示例
ABS 求出参数的绝对值。 数据计算
AND “与”运算,返回逻辑值,仅当有参数的结果均为逻辑“真(TRUE)”时返回逻辑“真(TRUE)”,反之
www.manaren.com
www.manaren.com
返回逻辑“假(FALSE)”。 条件判断
AVERAGE 求出所有参数的算术平均值。 数据计算
COLUMN 显示所引用单元格的列标号值。 显示位置
CONCATENATE 将多个字符文本或单元格中的数据连接在一起,显示在一个单元格中。 字符合并
COUNTIF 统计某个单元格区域中符合指定条件的单元格数目。 条件统计
DATE 给出指定数值的日期。 显示日期
DATEDIF 计算返回两个日期参数的差值。 计算天数
DAY 计算参数中指定日期或引用单元格中的日期天数。 计算天数
DCOUNT 返回数据库或列表的列中满足指定条件并且包含数字的单元格数目。 条件统计
FREQUENCY 以一列垂直数组返回某个区域中数据的频率分布。 概率计算
IF 根据对指定条件的逻辑判断的真假结果,返回相对应条件触发的计算结果。 条件计算
INDEX 返回列表或数组中的元素值,此元素由行序号和列序号的索引值进行确定。 数据定位
www.manaren.com
INT 将数值向下取整为最接近的整数。 数据计算
ISERROR 用于测试函数式返回的数值是否有错。如果有错,该函数返回 TRUE,反之返回 FALSE。 逻辑判断
LEFT 从一个文本字符串的第一个字符开始,截取指定数目的字符。 截取数据
LEN 统计文本字符串中字符数目。 字符统计
MATCH 返回在指定方式下与指定数值匹配的数组中元素的相应位置。 匹配位置
MAX 求出一组数中的最大值。 数据计算
MID 从一个文本字符串的指定位置开始,截取指定数目的字符。 字符截取
MIN 求出一组数中的最小值。 数据计算
MOD 求出两数相除的余数。 数据计算
MONTH 求出指定日期或引用单元格中的日期的月份。 日期计算
NOW 给出当前系统日期和时间。 显示日期时间
OR 仅当所有参数值均为逻辑“假(FALSE)”时返回结果逻辑“假(FALSE)”,否则都返回逻辑“真
(TRUE)”。 逻辑判断
www.manaren.com
RANK 返回某一数值在一列数值中的相对于其他数值的排位。 数据排序
RIGHT 从一个文本字符串的最后一个字符开始,截取指定数目的字符。 字符截取
SUBTOTAL 返回列表或数据库中的分类汇总。 分类汇总
SUM 求出一组数值的和。 数据计算
SUMIF 计算符合指定条件的单元格区域内的数值和。 条件数据计算
TEXT 根据指定的数值格式将相应的数字转换为文本形式 数值文本转换
TODAY 给出系统日期 显示日期
VALUE 将一个代表数值的文本型字符串转换为数值型。 文本数值转换
VLOOKUP 在数据表的首列查找指定的数值,并由此返回数据表当前行中指定列处的数值 条件定位
WEEKDAY 给出指定日期的对应的星期数。 星期计算
Excel 部分函数列表.
函数的步骤:①选中存放结果的单元格
②单击“=”(编辑公式)
③找函数(单击“三角形”形状按钮。或者直接输入函数名
www.manaren.com
④选范围
⑤CTRL+回车键
①求和函数 SUM( )
②平均函数 AVERAGE( )
③排位函数 RANK ( )
例: Rank(A1:$A$1:$A$15)
行号和列号前面加上“$“符号 A 叫行号。 1 或者 15 叫列号,表示单元格所在的位置 数据单元
格在A列1号 或者 是A列15号
④最大值函数 MAX ( )
⑤最小值函数 MIN ( )
⑥统计函数 COUNTIF( )
计算满足给定单元格的数目
例:Countif ( A1:B5,”>60”)
统计分数大于 60 分的人数,注意,条件要加双引号,在英文状态下输入。
⑦单元格内容合并 CONCTENATE( )
将若干文字串合并到一个字符串中
www.manaren.com
⑧ RIGHT(A1,4)
提取字符串最右边的若干字符,长度为 4 位
⑨LEFT ( )
返回字符串最左边的若干字符
⑩MIDB( )
自文字的指定位置开始向右提取指定长度的字符串
11、重复函数 REPT( )
单元格重量出现的次数。
12、NOW( )
返回电脑内部的系统日期与时间
13、MONTH( )
将序列数转换为对应的月份数
编者语:Excel 是办公室自动化中非常重要的一款软件,很多巨型国际企业都是依靠 Excel 进行数据管理。它不仅仅
能够方便的处理表格和进行图形分析,其更强大的功能体现在对数据的自动处理和计算,然而很多缺少理工科背景
或是对 Excel 强大数据处理功能不了解的人却难以进一步深入。编者以为,对 Excel 函数应用的不了解正是阻挡普
通用户完全掌握 Excel 的拦路虎,然而目前这一部份内容的教学文章却又很少见,所以特别组织了这一个《Excel 函
数应用》系列,希望能够对 Excel 进阶者有所帮助。《Excel 函数应用》系列,将每周更新,逐步系统的介绍 Excel
各类函数及其应用,敬请关注!
----------------------------------
术语说明
www.manaren.com
什么是参数?参数可以是数字、文本、形如 TRUE 或 FALSE 的逻辑值、数组、形如 #N/A 的错误值或单
元格引用。给定的参数必须能产生有效的值。参数也可以是常量、公式或其它函数。
参数不仅仅是常量、公式或函数,还可以是数组、单元格引用等:
1.数组--用于建立可产生多个结果或可对存放在行和列中的一组参数进行运算的单个公式。在 Microsoft Excel
有两类数组:区域数组和常量数组。区域数组是一个矩形的单元格区域,该区域中的单元格共用一个公式;常量数
组将一组给定的常量用作某个公式中的参数。
2.单元格引用--用于表示单元格在工作表所处位置的坐标值。例如,显示在第 B 列和第 3 行交叉处的单元格,
其引用形式为"B3"。
3.常量--常量是直接键入到单元格或公式中的数字或文本值,或由名称所代表的数字或文本值。例如,日
期 10/9/96、数字 210 和文本"Quarterly Earnings"都是常量。公式或由公式得出的数值都不是常量。
---------------------------------------------
Excel 的数据处理功能在现有的文字处理软件中可以说是独占鳌头,几乎没有什么软件能够与它匹敌。在您学会了
Excel 的基本操作后,是不是觉得自己一直局限在 Excel 的操作界面中,而对于 Excel 的函数功能却始终停留在求和、
求平均值等简单的函数应用上呢?难道 Excel 只能做这些简单的工作吗?其实不然,函数作为 Excel 处理数据的一
个最重要手段,功能是十分强大的,在生活和工作实践中可以有多种应用,您甚至可以用 Excel 来设计复杂的统计
管理表格或者小型的数据库系统。
请跟随笔者开始 Excel 的函数之旅。这里,笔者先假设您已经对于 Excel 的基本操作有了一定的认识。首先我们先
来了解一些与函数有关的知识。
一、什么是函数
Excel 中所提的函数其实是一些预定义的公式,它们使用一些称为参数的特定数值按特定的顺序或结构进行计算。用
户可以直接用它们对某个区域内的数值进行一系列运算,如分析和处理日期值和时间值、确定贷款的支付额、确定
单元格中的数据类型、计算平均值、排序显示和运算文本数据等等。例如,SUM 函数对单元格或单元格区域进行加
法运算。
函数是否可以是多重的呢?也就是说一个函数是否可以是另一个函数的参数呢?当然可以,这就是嵌套函数的含义。
所谓嵌套函数,就是指在某些情况下,您可能需要将某函数作为另一函数的参数使用。例如图 1 中所示的公式使用
了嵌套的 AVERAGE 函数,并将结果与 50 相比较。这个公式的含义是:如果单元格 F2 到 F5 的平均值大于 50,
则求 F2 到 F5 的和,否则显示数值 0。
察看原图 发送到手机
图 1 嵌套函数
在学习 Excel 函数之前,我们需要对于函数的结构做以必要的了解。如图 2 所示,函数的结构以函数名称开始,后
面是左圆括号、以逗号分隔的参数和右圆括号。如果函数以公式的形式出现,请在函数名称前面键入等号(=)。在
创建包含函数的公式时,公式选项板将提供相关的帮助。
察看原图 发送到手机
图 2 函数的结构
www.manaren.com
公式选项板--帮助创建或编辑公式的工具,还可提供有关函数及其参数的信息。单击编辑栏中的"编辑公式"按钮,
或是单击"常用"工具栏中的"粘贴函数" 按钮之后,就会在编辑栏下面出现公式选项板。整个过程如图 3 所示。
察看原图 发送到手机
图 3 公式选项板
二、使用函数的步骤
在 Excel 中如何使用函数呢?
1.单击需要输入函数的单元格,如图 4 所示,单击单元格 C1,出现编辑栏
www.manaren.com
察看原图 发送到手机
图 4 单元格编辑
2.单击编辑栏中"编辑公式"按钮 ,将会在编辑栏下面出现一个"公式选项板",此时"名称"框将变成"函数"按钮,
如图 3 所示。
3.单击"函数"按钮右端的箭头,打开函数列表框,从中选择所需的函数;
察看原图 发送到手机
图 5 函数列表框
4.当选中所需的函数后,Excel 2000 将打开"公式选项板"。用户可以在这个选项板中输入函数的参数,当输入完参
数后,在"公式选项板"中还将显示函数计算的结果;
www.manaren.com
5.单击"确定"按钮,即可完成函数的输入;
6.如果列表中没有所需的函数,可以单击"其它函数"选项,打开"粘贴函数"对话框,用户可以从中选择所需的函数,
然后单击"确定"按钮返回到"公式选项板"对话框。
在了解了函数的基本知识及使用方法后,请跟随笔者一起寻找 Excel 提供的各种函数。您可以通过单击插入栏中的"
函数"看到所有的函数。
察看原图 发送到手机
图 6 粘贴函数列表
www.manaren.com
www.manaren.com
三、函数的种类
Excel 函数一共有 11 类,分别是数据库函数、日期与时间函数、工程函数、财务函数、信息函数、逻辑函数、查询
和引用函数、数学和三角函数、统计函数、文本函数以及用户自定义函数。
1.数据库函数--当需要分析数据清单中的数值是否符合特定条件时,可以使用数据库工作表函数。例如,在一个包
含销售信息的数据清单中,可以计算出所有销售数值大于 1,000 且小于 2,500 的行或记录的总数。
Microsoft Excel 共有 12 个工作表函数用于对存储在数据清单或数据库中的数据进行分析,这些函数的统一
名称为 Dfunctions,也称为 D 函数,每个函数均有三个相同的参数:database、field 和 criteria。这些
参数指向数据库函数所使用的工作表区域。其中参数 database 为工作表上包含数据清单的区域。参
数 field 为需要汇总的列的标志。参数 criteria 为工作表上包含指定条件的区域。
2.日期与时间函数--通过日期与时间函数,可以在公式中分析和处理日期值和时间值。
3.工程函数--工程工作表函数用于工程分析。这类函数中的大多数可分为三种类型:对复数进行处理的函数、在不
同的数字系统(如十进制系统、十六进制系统、八进制系统和二进制系统)间进行数值转换的函数、在不同的度量
系统中进行数值转换的函数。
4.财务函数--财务函数可以进行一般的财务计算,如确定贷款的支付额、投资的未来值或净现值,以及债券或息票
的价值。财务函数中常见的参数:
未来值 (fv)--在所有付款发生后的投资或贷款的价值。
期间数 (nper)--投资的总支付期间数。
付款 (pmt)--对于一项投资或贷款的定期支付数额。
现值 (pv)--在投资期初的投资或贷款的价值。例如,贷款的现值为所借入的本金数额。
www.manaren.com
利率 (rate)--投资或贷款的利率或贴现率。
类型 (type)--付款期间内进行支付的间隔,如在月初或月末。
5.信息函数--可以使用信息工作表函数确定存储在单元格中的数据的类型。信息函数包含一组称为 IS 的工作表
函数,在单元格满足条件时返回 TRUE。例如,如果单元格包含一个偶数值,ISEVEN 工作表函数返回 TRUE。如
果需要确定某个单元格区域中是否存在空白单元格,可以使用 COUNTBLANK 工作表函数对单元格区域中的空白单
元格进行计数,或者使用 ISBLANK 工作表函数确定区域中的某个单元格是否为空。
6.逻辑函数--使用逻辑函数可以进行真假值判断,或者进行复合检验。例如,可以使用 IF 函数确定条件为真还
是假,并由此返回不同的数值。
7.查询和引用函数--当需要在数据清单或表格中查找特定数值,或者需要查找某一单元格的引用时,可以使用查询
和引用工作表函数。例如,如果需要在表格中查找与第一列中的值相匹配的数值,可以使用 VLOOKUP 工作表函数。
如果需要确定数据清单中数值的位置,可以使用 MATCH 工作表函数。
8.数学和三角函数--通过数学和三角函数,可以处理简单的计算,例如对数字取整、计算单元格区域中的数值总和
或复杂计算。
9.统计函数--统计工作表函数用于对数据区域进行统计分析。例如,统计工作表函数可以提供由一组给定值绘制出
的直线的相关信息,如直线的斜率和 y 轴截距,或构成直线的实际点数值。
10.文本函数--通过文本函数,可以在公式中处理文字串。例如,可以改变大小写或确定文字串的长度。可以将日期
插入文字串或连接在文字串上。下面的公式为一个示例,借以说明如何使用函数 TODAY 和函数 TEXT 来创建一
条信息,该信息包含着当前日期并将日期以"dd-mm-yy"的格式表示。
11.用户自定义函数--如果要在公式或计算中使用特别复杂的计算,而工作表函数又无法满足需要,则需要创建用户
自定义函数。这些函数,称为用户自定义函数,可以通过使用 Visual Basic for Applications 来创建。
www.manaren.com
以上对 Excel 函数及有关知识做了简要的介绍,在以后的文章中笔者将逐一介绍每一类函数的使用方法及应用技巧。
但是由于 Excel 的函数相当多,因此也可能仅介绍几种比较常用的函数使用方法,其他更多的函数您可以从 Excel
的在线帮助功能中了解更详细的资讯。
Excel 是办公应用中的常用软件,它不光有统计功能,在进行查找、计算时,Excel 也有诸多的函数可以简化我们的操作。需要注意的 是对
中英文的处理是不大相同的,中文的一个字是按两个字节计算的,稍不注意就可能忽略这一点,造成错误。其实 Excel 函数中有专门针对
双字节字符的函数。
让我们先来看看函数 FIND 与函数 FINDB 的区别。
语法:
FIND(find_text,within_text,start_num)
FINDB(find_text,within_text,start_num)
两个函数的参数相同。
作用:FIND 函数用于查找文本(within_ text)中的字符串(find_text),并从 within_text 的首字符开 始返回 find_text 的起始位置编
号。也可使用 SEARCH 查找字符串,但是,FIND 和 SEARCH 不同,FIND 区分大小写并且不允许使用通配符。
FINDB 函数用于查找文本(within_te xt)中的字符串(find_text),并基于字节数从 within_text 的首 字符开始返回 find_text 的起始位
置编号。此函数用于双字节字符。
示例:在图 1 中,单元 B2 中的公式为“=FIND("雨",A2)”
单元格 B3 中的公式为“=FINDB("雨",A2)”
两个函数公式得出的结果不一样,这是因为在 FIND 函数中,“雨”位于“吴雨峰”串中的第二个位置,故返回“2”;而在 FINDB 函数中,
每个汉字按 2 个字节算,所以“雨”是从第三个字节开始的,返回“3”。
察看原图 发送到手机
图 1 请注意两个函数的不同结果
同理:LEFT 与 LEFTB、RIGHT 与 RIGHTB、LEN 与 LE NB、MID 与 MIDB、REPLACE 与 REPLACEB、SEARCH 与 SEARCHB 的关系也如是。即不带字母
B 的函数是按字符操作的,而带字母 B 的函数是按字节进行操作的。
我们在编辑、修改、计算工作簿数据时,经常会用到许多汉字字符,如果使用以上带字母 B 的函数对汉字字符进行操作,就会很方便。
学习 Excel 函数,我们还是从“数学与三角函数”开始。毕竟这是我们非常熟悉的函数,这些正弦函数、余弦函数、取整函数等等从中学
开始,就一直陪伴着我们。
www.manaren.com
首先,让我们一起看看 Excel 提供了哪些数学和三角函数。笔者在这里以列表的形式列出 Excel 提供的所有数学和三角函数,详细请看附
注的表格。
从表中我们不难发现,Excel 提供的数学和三角函数已基本囊括了我们通常所用得到的各种数学公式与三角函数。这些函数的详细用法,笔
者不在这里一一赘述,下面从应用的角度为大家演示一下这些函数的使用方法。
一、与求和有关的函数的应用
SUM 函数是 Excel 中使用最多的函数,利用它进行求和运算可以忽略存有文本、空格等数据的单元格,语法简单、使用方便。相信这也是 大
家最先学会使用的 Excel 函数之一。但是实际上,Excel 所提供的求和函数不仅仅只有 SUM 一种,还包括 SUBTOTAL、SUM 、SUMIF、SUMPROD
UCT、SUMSQ、SU MX2MY2、SUMX2PY2、SU MXMY2 几种函数。
这里笔者将以某单位工资表为例重点介绍 SUM(计算一组参数之和)、SUMIF(对满足某一条件的单元格区域求和)的使用。(说明:为力求
简单,示例中忽略税金的计算。)
察看原图 发送到手机
图 1 函数求和
www.manaren.com
www.manaren.com
SUM
1、行或列求和
以最常见的工资表(如上图)为例,它的特点是需要对行或列内的若干单元格求和。
比如,求该单位 2001 年 5 月的实际发放工资总额,就可以在 H13 中输入公式:
=SUM(H3:H12)
2、区域求和
区域求和常用于对一张工作表中的所有数据求总计。此时你可以让单元格指针停留在存放结果的单元格,然后在 Excel 编辑栏输入公式"= S
UM()",用鼠标在括号中间单击,最后拖过需要求和的所有单元格。若这些单元格是不连续的,可以按住 Ctrl 键分别拖过它们。对于需
要减去的单元格,则可以按住 Ctrl 键逐个选中它们,然后用手工在公式引用的单元格前加上负号。当然你也可以用公式选项板完成上述工
作,不过对于 SUM 函数来说手工还是来的快一些。比如,H13 的公式还可以写成:
=SUM(D3:D12,F3:F12)-SUM(G3:G12)
3、注意
SUM 函数中的参数,即被求和的单元格或单元格区域不能超过 30 个。换句话说,SUM 函数括号中出现的分隔符(逗号)不能多于 29 个, 否
则 Excel 就会提示参数太多。对需要参与求和的某个常数,可用"=SUM(单元格区域,常数)"的形式直接引用,一般不必绝对引用存 放该
常数的单元格。
www.manaren.com
SUMIF
SUMIF 函数可对满足某一条件的单元格区域求和,该条件可以是数值、文本或表达式,可以应用在人事、工资和成绩统计中。
仍以上图为例,在工资表中需要分别计算各个科室的工资发放情况。
要计算销售部 2001 年 5 月加班费情况。则在 F15 种输入公式为
=SUMIF($C$3:$C$12,"销售部",$F$3: $F$12)
其中"$C$3:$C$ 12"为提供逻辑判断依据的单元格区域,"销售部"为判断条件即只统计$C$ 3:$C$12 区域中部门为"销售部"的单元格,$F$3:$F
$12 为实际求和的单元格区域。
二、与函数图像有关的函数应用
我想大家一定还记得我们在学中学数学时,常常需要画各种函数图像。那个时候是用坐标纸一点点描绘,常常因为计算的疏忽,描不出平
滑的函数曲线。现在,我们已经知道 Excel 几乎囊括了我们需要的各种数学和三角函数,那是否可以利用 Excel 函数与 Excel 图表 功能描
绘函数图像呢?当然可以。
这里,笔者以正弦函数和余弦函数为例说明函数图像的描绘方法。
察看原图 发送到手机
图 2 函数图像绘制
1、 录入数据--如图所示,首先在表中录入数据,自 B1 至 N1 的单元格以 30 度递增的方式录入从 0 至 360 的数字,共 13 个数字。
2、 求函数值--在第 2 行和第三行分别输入 SIN 和 COS 函数,这里需要注意的是:由于 SIN 等三角函数在 Excel 的定义是要弧度 值,因此
必须先将角度值转为弧度值。具体公式写法为(以 D2 为例): =SIN(D 1*PI()/180)
3、 选择图像类型--首先选中制作函数图像所需要的表中数据,利用 Excel 工具栏上的图表向导按钮(也可利用"插入"/"图表") ,在"
图表类型"中选择"XY 散点图",再在右侧的"子图表类型"中选择" 无数据点平滑线散点图",单击[下一步],出现"图表数据源"窗口 ,不作任
何操作,直接单击[下一步]。
4、 图表选项操作--图表选项操作是制作函数曲线图的重要步骤,在"图表选项"窗口中进行(如图 3),依次进行操作的项目有:
www.manaren.com
www.manaren.com
标题--为图表取标题,本例中取名为"正弦和余弦函数图像";为横轴和纵轴取标题。
坐标轴--可以不做任何操作;
网格线--可以做出类似坐标纸上网格,也可以取消网格线;
图例--本例选择图例放在图像右边,这个可随具体情况选择;
数据标志--本例未将数据标志在图像上,主要原因是影响美观。如果有特殊要求例外。5、完成图像--操作结束后单击[完成],一幅图像就
插入 Excel 的工作区了。
6、 编辑图像--图像生成后,字体、图像大小、位置都不一定合适。可选择相应的选项进行修改。所有这些操作可以先用鼠标选中相关部
分,再单击右键弹出快捷菜单,通过快捷菜单中的有关项目即可进行操作。
至此,一幅正弦和余弦函数图像制作完成。用同样的方法,还可以制作二次曲线、对数图像等等。
三、常见数学函数使用技巧--四舍五入
在实际工作的数学运算中,特别是财务计算中常常遇到四舍五入的问题。虽然,excel 的单元格格式中允许你定义小数位数,但是在实际操
作中,我们发现,其实数字本身并没有真正的四舍五入,只是显示结果似乎四舍五入了。如果采用这种四舍五入方法的话,在财务运算中
常常会出现几分钱的误差,而这是财务运算不允许的。那是否有简单可行的方法来进行真正的四舍五入呢?其实,Excel 已经提供这方面的
函数了,这就是 ROUND 函数,它可以返回某个数字按指定位数舍入后的数字。
在 Excel 提供的"数学与三角函数"中提供了一个名为 ROU ND(number,num_digits)的函数,它的功能就是根据指定的位数,将数字四舍五入。
这个函数有两个参数,分别是 number 和 num_digits。 其中 number 就是将要进行四舍五入的数字;num_digits则是希望得到的数字的小数
点后的位数。如图 3 所示:
单元格 B2 中为初始数据 0.123456,B3 的初始数据为 0.234567,将要对它们进行四舍五入。在单元格 C2 中输入"=ROUND(B2,2)",小数点后
保留两位有效数字,得到 0.12、0.23。在单元格 D2 中输入"=R OUND(B2,4)",则小数点保留四位有效数字,得到 0.1235、0.2346。
察看原图 发送到手机
图 3 对数字进行四舍五入
对于数字进行四舍五入,还可以使用 INT(取整函数),但由于这个函数的定义是返回实数舍入后的整数值。因此,用 INT 函数进行四舍五
入还是需要一些技巧的,也就是要加上 0.5,才能达到取整的目的。仍然以图 3 为例,如果采用 INT 函数,则 C2 公式应写成:"=INT (B2*1
00+0.5)/100"。
最后需要说明的是:本文所有公式均在 Excel97 和 Exc el2000 中验证通过,修改其中的单元格引用和逻辑条件值,可用于相似的 其他场合。
附注:Excel 的数学和三角函数一览表
ABS 工作表函数 返回参数的绝对值
ACOS 工作表函数 返回数字的反余弦值
ACOSH 工作表函数 返回参数的反双曲余弦值
ASIN 工作表函数 返回参数的反正弦值
www.manaren.com
www.manaren.com
ASINH 工作表函数 返回参数的反双曲正弦值
ATAN 工作表函数 返回参数的反正切值
ATAN2 工作表函数 返回给定的 X 及 Y 坐标值的反正切值
ATANH 工作表函数 返回参数的反双曲正切值
CEILING 工作表函数 将参数 Number 沿绝对值增大的方向,舍入为最接近的整数或基数
COMBIN 工作表函数 计算从给定数目的对象集合中提取若干对象的组合数
COS 工作表函数 返回给定角度的余弦值
COSH 工作表函数 返回参数的双曲余弦值
COUNTIF 工作表函数 计算给定区域内满足特定条件的单元格的数目
DEGREES 工作表函数 将弧度转换为度
EVEN 工作表函数 返回沿绝对值增大方向取整后最接近的偶数
EXP 工作表函数 返回 e 的 n 次幂常数 e 等于 2.71828182845904,是自然对数的底数
FACT 工作表函数 返回数的阶乘,一个数的阶乘等于 1* 2*3*...*该数
FACTDOUBLE 工作表函数 返回参数 Number 的半阶乘
FLOOR 工作表函数 将参数 Number 沿绝对值减小的方向去尾舍入,使其等于最接近的 signif icance 的倍数
GCD 工作表函数 返回两个或多个整数的最大公约数
INT 工作表函数 返回实数舍入后的整数值
LCM 工作表函数 返回整数的最小公倍数
LN 工作表函数 返回一个数的自然对数自然对数以常数项 e(2.7182 8182845904)为底
LOG 工作表函数 按所指定的底数,返回一个数的对数
LOG10 工作表函数 返回以 10 为底的对数
MDETERM 工作表函数 返回一个数组的矩阵行列式的值
MINVERSE 工作表函数 返回数组矩阵的逆距阵
www.manaren.com
MMULT 工作表函数 返回两数组的矩阵乘积结果
MOD 工作表函数 返回两数相除的余数结果的正负号与除数相同
MROUND 工作表函数 返回参数按指定基数舍入后的数值
MULTINOMIAL 工作表函数 返回参数和的阶乘与各参数阶乘乘积的比值
ODD 工作表函数 返回对指定数值进行舍入后的奇数
PI 工作表函数 返回数字 3.14159265358979,即数学常数 pi,精确到小数点后 15 位
POWER 工作表函数 返回给定数字的乘幂
PRODUCT 工作表函数 将所有以参数形式给出的数字相乘,并返回乘积值
QUOTIENT 工作表函数 回商的整数部分,该函数可用于舍掉商的小数部分
RADIANS 工作表函数 将角度转换为弧度
RAND 工作表函数 返回大于等于 0 小于 1 的均匀分布随机数
RANDBETWEE N 工作表函数 返回位于两个指定数之间的一个随机数
ROMAN 工作表函数 将阿拉伯数字转换为文本形式的罗马数字
ROUND 工作表函数 返回某个数字按指定位数舍入后的数字
ROUNDDOWN 工作表函数 靠近零值,向下(绝对值减小的方向)舍入数字
ROUNDUP 工作表函数 远离零值,向上(绝对值增大的方向)舍入数字
SERIESSUM 工作表函数 返回基于以下公式的幂级数之和:
SIGN 工作表函数 返回数字的符号当数字为正数时返回 1,为零时返回 0,为负数时返回 -1
SIN 工作表函数 返回给定角度的正弦值
SINH 工作表函数 返回某一数字的双曲正弦值
SQRT 工作表函数 返回正平方根
SQRTPI 工作表函数 返回某数与 pi 的乘积的平方根
SUBTOTAL 工作表函数 返回数据清单或数据库中的分类汇总
www.manaren.com
SUM 工作表函数 返回某一单元格区域中所有数字之和
SUMIF 工作表函数 根据指定条件对若干单元格求和
SUMPRODUCT 工作表函数 在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和
SUMSQ 工作表函数 返回所有参数的平方和
SUMX2MY2 工作表函数 返回两数组中对应数值的平方差之和
SUMX2PY2 工作表函数 返回两数组中对应数值的平方和之和,平方和加总在统计计算中经常使用
SUMXMY2 工作表函数 返回两数组中对应数值之差的平方和
TAN 工作表函数 返回给定角度的正切值
TANH 工作表函数 返回某一数字的双曲正切值
TRUNC 工作表函数 将数字的小数部分截去,返回整数
用来判断真假值,或者进行复合检验的 Excel 函数,我们称为逻辑函数。在 Excel 中提供了六种逻辑函数。即 AND、OR、NOT、FALSE、IF、
TRUE 函数。
一、AND、OR、NOT 函数
这三个函数都用来返回参数逻辑值。详细介绍见下:
(一)AND 函数
所有参数的逻辑值为真时返回 TRUE;只要一个参数的逻辑值为假即返回 FALSE。简言之,就是当 AND 的参数全部满足某一条件时 ,返回
结果为 TRUE,否则为 FALSE。
语法为 AND(logical 1,logical2, ...),其中 Logical1, logi cal2, ... 表示待检测的 1 到 30 个条件值,各条件值可能为 TRU
E,可能为 FALSE。 参数必须是逻辑值,或者包含逻辑值的数组或引用。举例说明:
1、 在 B2 单元格中输入数字 50,在 C2 中写公式=AND(B2>30,B2<60)。由于 B2 等于 50 的确大于 30、小于 60。所 以两个条件值(logical)
均为真,则返回结果为 TRUE。
察看原图 发送到手机
图1 AND函数示例1
2、 如果 B1-B3 单元格中的值为 TRUE、FALSE、TRUE,显然三个参数并不都为真,所以 在 B4 单元格中的公式=A ND(B1:B3) 等于 F
ALSE
察看原图 发送到手机
图2 AND函数示例2
www.manaren.com
(二)OR 函数
OR 函数指在其参数组中,任何一个参数逻辑值为 TRUE,即返回 TRUE。它与 AND 函数的区别在于,AND 函数要求所有函数逻辑值均为真,
结果方为真。而 OR 函数仅需其中任何一个为真即可为真。比如,上面的示例 2,如果在 B4 单元格中的公式写为=OR(B1:B3)则结果 等于 TRU
E
察看原图 发送到手机
图 3 OR 函数示例
(三)NOT 函数
NOT 函数用于对参数值求反。当要确保一个值不等于某一特定值时,可以使用 NOT 函数。简言之,就是当参数值为 TRUE 时,NOT 函数返
回的结果恰与之相反,结果为 FALSE.
比如 NOT(2+2=4),由于 2+2 的结果的确为 4,该参数结果为 TRUE,由于是 NOT 函数,因此返回函数结果与之相反,为 FAL SE。
二、TRUE、FALSE 函数
www.manaren.com
www.manaren.com
TRUE、FALSE 函数用来返回参数的逻辑值,由于可以直接在单元格或公式中键入值 TRUE 或者 FALSE。因此这两个函数通常可以 不使用。
三、IF 函数
(一)IF 函数说明
IF 函数用于执行真假值判断后, 根据逻辑测试的真假值返回不同的结果, 因此 If 函数也称之为条件函数。它的应用很广泛,可以使用函数 I
F 对数值和公式进行条件检测。
它的语法为 IF(logical_test,value _if_true,value_if_false)。其中 Logical_te st 表示计算结果为 TRUE 或 FALSE 的任意值或表达
式。本参数可使用任何比较运算符。
Value_if_t rue 显示在 logical _test 为 TRUE 时返回的值,Val ue_if_true 也可以是其他公式。Value_if_false logical_tes
t 为 FALSE 时返回的值。Val ue_if_false 也可以是其他公式。
简言之,如果第一个参数 logical_test 返回的结果为真的话,则执行第二个参数 Value_if_true 的结果,否则执行第 三个参数 Value_if_
false 的结果。IF 函数可以嵌套七层,用 value_if_false 及 value_if_true 参数可以构造复杂的检 测条件。
Excel 还提供了可根据某一条件来分析数据的其他函数。例如,如果要计算单元格区域中某个文本串或数字出现的次数,则可使用 CO UN
TIF 工作表函数。如果要根据单元格区域中的某一文本串或数字求和,则可使用 SUMIF 工作表函数。
(二)IF 函数应用
1、 输出带有公式的空白表单
察看原图 发送到手机
图 4 人事分析表 1
以图中所示的人事状况分析表为例,由于各部门关于人员的组成情况的数据尚未填写,在总计栏(以单元格 G5 为例)公式为:
=SUM(C5:F5)
我们看到计算为 0 的结果。如果这样的表格打印出来就页面的美观来看显示是不令人满意的。是否有办法去掉总计栏中的 0 呢?你可能会
说,不写公式不就行了。当然这是一个办法,但是,如果我们利用了 IF 函数的话,也可以在写公式的情况下,同样不显示这些 0。如何实
现呢?只需将总计栏中的公式(仅以单元格 G5 为例)改写成:
=IF(SUM(C5:F5),SUM(C5:F5),"")
www.manaren.com
通俗的解释就是:如果 SUM(C5:F5)不等于零,则在单元格中显示SUM(C5:F5)的结果,否则显示字符串。
几点说明:
(1) SUM(C5:F 5)不等于零的正规写法是 SUM(C5:F5)< >0,在 EXCEL 中可以省略<>0;
(2) ""表示字符串的内容为空,因此执行的结果是在单元格中不显示任何字符。
察看原图 发送到手机
图5
www.manaren.com
2、 不同的条件返回不同的结果
如果对上述例子有了很好的理解后,我们就很容易将 IF 函数应用到更广泛的领域。比如,在成绩表中根据不同的成绩区分合格与不合格。
现在我们就以某班级的英语成绩为例具体说明用法。
察看原图 发送到手机
图6
某班级的成绩如图 6 所示,为了做出最终的综合评定,我们设定按照平均分判断该学生成绩是否合格的规则。如果各科平均分超过 60 分则
认为是合格的,否则记作不合格。
www.manaren.com
根据这一规则,我们在综合评定中写公式(以单元格 B12 为例):
=IF(B11>60,"合格","不合格")
语法解释为,如果单元格 B11 的值大于 60,则执行第二个参数即在单元格 B12 中显示合格字样,否则执行第三个参数即在单元格 B12 中显
示不合格字样。
在综合评定栏中可以看到由于 C 列的同学各科平均分为 54 分,综合评定为不合格。其余均为合格。
3、 多层嵌套函数的应用
在上述的例子中,我们只是将成绩简单区分为合格与不合格,在实际应用中,成绩通常是有多个等级的,比如优、良、中、及格、不及格
等。有办法一次性区分吗?可以使用多层嵌套的办法来实现。仍以上例为例,我们设定综合评定的规则为当各科平均分超过 90 时,评定为
优秀。如图 7 所示。
察看原图 发送到手机
www.manaren.com
www.manaren.com
图7
说明:为了解释起来比较方便,我们在这里仅做两重嵌套的示例,您可以按照实际情况进行更多重的嵌套,但请注意 Excel 的 IF 函数最多
允许七重嵌套。
根据这一规则,我们在综合评定中写公式(以单元格 F12 为例):
=IF(F11>60,IF(AND(F11>90),"优秀","合格"),"不合格")
语法解释为,如果单元格 F11 的值大于 60,则执行第二个参数,在这里为嵌套函数,继续判断单元格 F11 的值是否大于 90(为了让大家 体
会一下 AND 函数的应用,写成 AND(F11>90) ,实际上可以仅写 F11>90),如果满足在单元格 F12 中显示优秀字样,不满足 显示合格字样,
如果 F11 的值以上条件都不满足,则执行第三个参数即在单元格 F12 中显示不合格字样。
在综合评定栏中可以看到由于 F 列的同学各科平均分为 92 分,综合评定为优秀。
(三)根据条件计算值
在了解了 IF 函数的使用方法后,我们再来看看与之类似的 Excel 提供的可根据某一条件来分析数据的其他函数。例如,如果要计算单元格
区域中某个文本串或数字出现的次数,则可使用 COUNTIF 工作表函数。如果要根据单元格区域中的某一文本串或数字求和,则可使用 S
UMIF 工作表函数。关于 SUMIF 函数在数学与三角函数中以做了较为详细的介绍。这里重点介绍 COUNTIF 的应用。
COUNTIF 可以用来计算给定区域内满足特定条件的单元格的数目。比如在成绩表中计算每位学生取得优秀成绩的课程数。在工资表中求出 所
有基本工资在 2000 元以上的员工数。
语法形式为 COUNTIF(ran ge,criteria)。其中 Range 为需要计算其中满足条件的单元格数目的单元格区域。Cri teria 确定哪些单元格将被
计算在内的条件,其形式可以为数字、表达式或文本。例如,条件可以表示为 32、"32"、">32"、"apples"。
1、成绩表
这里仍以上述成绩表的例子说明一些应用方法。我们需要计算的是:每位学生取得优秀成绩的课程数。规则为成绩大于 90 分记做优秀。如
图 8 所示
察看原图 发送到手机
图8
根据这一规则,我们在优秀门数中写公式(以单元格 B13 为例):
=COUNTIF(B4:B10,">90")
www.manaren.com
语法解释为,计算 B4 到 B10 这个范围,即 jarry 的各科成绩中有多少个数值大于 90 的单元格。
在优秀门数栏中可以看到 jarry 的优秀门数为两门。其他人也可以依次看到。
2、 销售业绩表
销售业绩表可能是综合运用 IF、SUMIF、COUNTIF 非常典型的示例。比如,可能希望计算销售人员的订单数,然后汇总每个销售人员的销售
额,并且根据总发货量决定每次销售应获得的奖金。
原始数据表如图 9 所示(原始数据是以流水单形式列出的,即按订单号排列)
察看原图 发送到手机
www.manaren.com
图 9 原始数据表
按销售人员汇总表如图 10 所示
察看原图 发送到手机
图 10 销售人员汇总表
如图 10 所示的表完全是利用函数计算的方法自动汇总的数据。首先建立一个按照销售人员汇总的表单样式,如图所示。然后分别计算订单
数、订单总额、销售奖金。
(1) 订单数 --用 COUNTIF 计算销售人员的订单数。
以销售人员 ANNIE 的订单数公式为例。公式:
=COUNTIF($C$2:$C$13,A17)
www.manaren.com
www.manaren.com
语法解释为计算单元格 A17(即销售人员 ANNIE)在"销售人员" 清单$C$2:$C$13 的范围内(即图 9 所示的原始数据表)出现的次数。
这个出现的次数即可认为是该销售人员 ANNIE 的订单数。
(2) 订单总额--用 SUMIF 汇总每个销售人员的销售额。
以销售人员 ANNIE 的订单总额公式为例。公式:
=SUMIF($C$2:$C$13,A17,$B$2:$B$13)
此公式在"销售人员"清单$C$2:$C$13 中检查单元格 A17 中的文本(即销售人员 ANNIE),然后计算"订单金额"列($B $2:$B$13)中相应量
的和。
这个相应量的和就是销售人员 ANNIE 的订单总额。
(3) 销售奖金--用 IF 根据订单总额决定每次销售应获得的奖金。
假定公司的销售奖金规则为当订单总额超过 5 万元时,奖励幅度为百分之十五,否则为百分之十。根据这一规则仍以销售人员 ANNIE 为例
说明。公式为:
=IF(C17<50000,10%,15%)*C17
如果订单总额小于 50000 则奖金为 10%;如果订单总额大于等于 50000,则奖金为 15%。
www.manaren.com
至此,我们已完全了解了 EXCEL 函数的逻辑函数,相信大家在实际工作中会想出更多更有用的运用。
所谓文本函数,就是可以在公式中处理文字串的函数。例如,可以改变大小写或确定文字串的长度;可以替换某些字符或者去除某些字符
等。而日期和时间函数则可以在公式中分析和处理日期值和时间值。关于这两类函数的列表参看附表,这里仅对一些常用的函数做简要介
绍。
一、文本函数
(一)大小写转换
LOWER--将一个文字串中的所有大写字母转换为小写字母。
UPPER--将文本转换成大写形式。
PROPER--将文字串的首字母及任何非字母字符之后的首字母转换成大写。将其余的字母转换成小写。
这三种函数的基本语法形式均为 函数名(text)。示例说明:
已有字符串为:pLease ComE Here! 可以看到由于输入的不规范,这句话大小写乱用了。
通过以上三个函数可以将文本转换显示样式,使得文本变得规范。参见图 1
Lower(pLease ComE Here!)= please come here!
upper(pLease ComE Here!)= PLEASE COME HERE!
proper(pLease ComE Here!)= Please Come Here!
察看原图 发送到手机
图1
(二)取出字符串中的部分字符
您可以使用 Mid、Left、 Right 等函数从长字符串内获取一部分字符。具体语法格式为
LEFT 函数:LEFT(te xt,num_chars)其中 Text 是包含要提取字符的文本串。Num_chars 指定要由 LEF T 所提取的字符数。
MID 函数:MID(te xt,start_num,num_cha rs)其中 Text 是包含要提取字符的文本串。Start_num 是文本中要提取的第一个字符的位置。
www.manaren.com
RIGHT 函数:RIGHT(text,num_chars)其中 Text 是包含要提取字符的文本串。Num_chars 指定希望 RIGHT 提取的字符数。
比如,从字符串"This is an apple."分别取出字符 "This"、"apple"、"is"的具体函数写法为。
LEFT("This is an apple",4)=This
RIGHT("This is an apple",5)=apple
MID("This is an apple",6,2)=is
察看原图 发送到手机
图2
(三)去除字符串的空白
www.manaren.com
在字符串形态中,空白也是一个有效的字符,但是如果字符串中出现空白字符时,容易在判断或对比数据是发生错误,在 Excel 中您可以
使用 Trim 函数清除字符串中的空白。
语法形式为:TRIM(text)其中 Text 为需要清除其中空格的文本。
需要注意的是,Trim 函数不会清除单词之间的单个空格,如果连这部分空格都需清除的话,建议使用替换功能。比如,从字符串"My nam
e is Mary"中清除空格的函数写法为:TRIM("My name is Mary")=My name is Mary 参见图 3
察看原图 发送到手机
图3
(四)字符串的比较
在数据表中经常会比对不同的字符串,此时您可以使用 EXACT 函数来比较两个字符串是否相同。该函数测试两个字符串是否完全相同。如
果它们完全相同,则返回 TRUE;否则,返回 FALSE。函数 EXACT 能区分大小写,但忽略格式上的差异。利用函数 EXA CT 可以测试
输入文档内的文字。语法形式为:EXACT(text 1,text2)Text1 为待比较的第一个字符串。Text2 为待比较的第二个 字符串。举例说明:参见
图4
www.manaren.com
EXACT("China","china")=False
察看原图 发送到手机
图4
二、日期与时间函数
在数据表的处理过程中,日期与时间的函数是相当重要的处理依据。而 Excel 在这方面也提供了相当丰富的函数供大家使用。
(一)取出当前系统时间/日期信息
用于取出当前系统时间/日期信息的函数主要有 NOW、TODAY。
语法形式均为 函数名()。
(二)取得日期/时间的部分字段值
www.manaren.com
如果需要单独的年份、月份、日数或小时的数据时,可以使用 HOUR、DAY、MONTH、YEAR 函数直接从日期/时间中取出需要的数据。具体示
例参看图 5。
比如,需要返回 2001-5-30 12:30 PM 的年份、月份、日数及小时数,可以分别采用相应函数实现。
YEAR(E5)=2001
MONTH(E5)=5
DAY(E5)=30
HOUR(E5)=12
察看原图 发送到手机
www.manaren.com
图5
此外还有更多有用的日期/时间函数,可以查阅附表。下面我们将以一个具体的示例来说明 Excel 的文本函数与日期函数的用途。
三、示例:做一个美观简洁的人事资料分析表
1、 示例说明
在如图 6 所示的某公司人事资料表中,除了编号、员工姓名、身份证号码以及参加工作时间为手工添入外,其余各项均为用函数计算所得。
察看原图 发送到手机
www.manaren.com
www.manaren.com
图6
在此例中我们将详细说明如何通过函数求出:
(1)自动从身份证号码中提取出生年月、性别信息。
(2)自动从参加工作时间中提取工龄信息。
2、身份证号码相关知识
在了解如何实现自动从身份证号码中提取出生年月、性别信息之前,首先需要了解身份证号码所代表的含义。我们知道,当今的身份证号
码有 15/18 位之分。早期签发的身份证号码是 15 位的,现在签发的身份证由于年份的扩展(由两位变为四位)和末尾加了效验码,就成了
18 位。这两种身份证号码将在相当长的一段时期内共存。两种身份证号码的含义如下:
(1)15 位的身份证号码:1~6 位为地区代码,7~8 位为出生年份(2 位),9~10 位为出生月份,11~12 位为出生日期,第 13~15 位为顺序号,
并能够判断性别,奇数为男,偶数为女。
(2)18 位的身份证号码:1~6 位为地区代码,7~10 位为出生年份( 4 位),11~12 位为出生月份,13~14 位为出生日期,第15~17 位为顺序
号,并能够判断性别,奇数为男,偶数为女。18 位为效验位。
3、 应用函数
在此例中为了实现数据的自动提取,应用了如下几个 Excel 函数。
(1)IF 函数:根据逻辑表达式测试的结果,返回相应的值。IF 函数允许嵌套。
www.manaren.com
语法形式为:IF(logical_test, value_if_true,value_if_false)
(2)CONCA TENATE:将若干个文字项合并至一个文字项中。
语法形式为:CONCATENA TE(text1,text2……)
(3)MID:从文本字符串中指定的起始位置起,返回指定长度的字符。
语法形式为:MID(text, start_num,num_chars)
(4)TODAY:返回计算机系统内部的当前日期。
语法形式为:TODAY()
(5)DATEDIF:计算两个日期之间的天数、月数或年数。
语法形式为:DATEDIF(s tart_date,end_date,unit)
(6)VALUE:将代表数字的文字串转换成数字。
语法形式为:VALUE (text)
www.manaren.com
(7)RIGHT:根据所指定的字符数返回文本串中最后一个或多个字符。
语法形式为:RIGHT(text,num_chars)
(8)INT:返回实数舍入后的整数值。语法形式为:I NT(number)
4、 公式写法及解释(以员工 Andy 为例说明)
说明:为避免公式中过多的嵌套,这里的身份证号码限定为 15 位的。如果您看懂了公式的话,可以进行简单的修改即可适用于 18 位的身
份证号码,甚至可适用于 15、18 两者并存的情况。
(1)根据身份证号码求性别
=IF(VALUE(RIGHT(E4,3))/2=INT(VALUE(RIGHT(E4,3))/2),"女","男")
公式解释:a. RIGHT( E4,3)用于求出身份证号码中代表性别的数字,实际求得的为代表数字的字符串
b. VALUE( RIGHT(E4,3)用于将上一步所得的代表数字的字符串转换为数字
c. VALUE(RI GHT(E4,3))/2=INT(VALUE(RIGHT(E 4,3))/2 用于判断这个身份证号码是奇数还是偶数,当然你也可以用 Mod 函数来做出判断。
d. =IF(VALUE(RIGHT(E4,3))/2=INT(VALUE(RIGHT(E4,3))/2),"女","男")及 如果上述公式判断出这个号码是偶数时,显示"女",否则,这
个号码是奇数的话,则返回"男"。
www.manaren.com
(2)根据身份证号码求出生日期
=CONCATENATE("19",MID(E4,7,2),"/",MID(E4,9,2),"/",MID(E4,11,2))
公式解释:a. MID(E4 ,7,2)为在身份证号码中获取表示年份的数字的字符串
b. MID(E4,9,2) 为在身份证号码中获取表示月份的数字的字符串
c. MID(E4,1 1,2) 为在身份证号码中获取表示日期的数字的字符串
d. CONCATENATE("19",MID(E4,7,2),"/",MID(E4,9,2),"/",MID(E4,11,2 ))目的就是将多个字符串合并在一起显示。
(3)根据参加工作时间求年资(即工龄)
=CONCATENATE(DATEDIF(F4,TODAY(),"y"),"年",DATEDIF(F4,TODAY(),"ym "),"个月")
公式解释:
a. TODAY()用于求出系统当前的时间
b. DATEDIF( F4,TODAY(),"y")用于计算当前系统时间与参加工作时间相差的年份
www.manaren.com
c. DATEDIF(F4,TODAY(),"ym")用于计算当前系统时间与参加工作时间相差的月份,忽略日期中的日和年。
d. =CONCATENATE(DATEDIF(F4,TODAY(),"y"),"年",DATEDIF(F4,TODAY(),"ym"),"个月")目的就是将多个字符串合并在一起显示。
5. 其他说明
在这张人事资料表中我们还发现,创建日期:31-05-2001 时显示在同一个单元格中的。这是如何实现的呢?难道是手工添加的吗?不 是,
实际上这个日期还是变化的,它显示的是系统当前时间。这里是利用函数 TODAY 和函数 TEXT 一起来创建一条信息,该信息包含 着当
前日期并将日期以"dd-mm-yyyy"的格式表示。
具体公式写法为:="创建日期:"&TEXT (TODAY(),"dd-mm-yyyy")
至此,我们对于文本函数、日期与时间函数已经有了大致的了解,同时也设想了一些应用领域。相信随着大家在这方面的不断研究,会有
更广泛的应用。
附一:文本函数
函数名 函数说明 语法
ASC 将字符串中的全角(双字节)英文字母更改为半角(单字节)字符。 AS C(text)
CHAR 返回对应于数字代码的字符,函数 CHAR 可将其他类型计算机文件中的代码转换为字符。 CHAR(number)
CLEAN 删除文本中不能打印的字符。对从其他应用程序中输入的字符串使用 CLEAN 函数,将删除其中含有的当前操作系统无法打 印的
字符。例如,可以删除通常出现在数据文件头部或尾部、无法打印的低级计算机代码。 CLEAN( text)
CODE 返回文字串中第一个字符的数字代码。返回的代码对应于计算机当前使用的字符集。 CO DE(text)
CONCATENAT E 将若干文字串合并到一个文字串中。 CONCATEN ATE (text1,text2,...)
www.manaren.com
DOLLAR 依照货币格式将小数四舍五入到指定的位数并转换成文字。 DOLLAR 或 RM B(number,decimals)
EXACT 该函数测试两个字符串是否完全相同。如果它们完全相同,则返回 TRUE;否则, 返回 FALSE。函数 EXACT 能区分大小写,但
忽略格式上的差异。利用函数 EXACT 可以测试输入文档内的文字。 EXAC T(text1,text2)
FIND FIND 用于查找其他文本串 (w ithin_text) 内的文本串 (find_text ),并从 within_text 的首字符开始返回 find_tex
t 的起始位置编号。 FIND(find_text,within_text,sta rt_num)
FIXED 按指定的小数位数进行四舍五入,利用句点和逗号,以小数格式对该数设置格式,并以文字串形式返回结果。 FIXED(nu mber,dec
imals,no_commas)
JIS 将字符串中的半角(单字节)英文字母或片假名更改为全角(双字节)字符。 JI S(text)
LEFT LEFT 基于所指定的字符数返回文本串中的第一个或前几个字符。
LEFTB 基于所指定的字节数返回文本串中的第一个或前几个字符。此函数用于双字节字符。 LEFT(t ext,num_chars)
LEFTB(text,num_bytes)
LEN LEN 返回文本串中的字符数。
LENB 返回文本串中用于代表字符的字节数。此函数用于双字节字符。 LEN(text)
LENB(text)
LOWER 将一个文字串中的所有大写字母转换为小写字母。 LO WER(text)
MID MID 返回文本串中从指定位置开始的特定数目的字符,该数目由用户指定。
MIDB 返回文本串中从指定位置开始的特定数目的字符,该数目由用户指定。此函数用于双字节字符。 M ID(text,start_num,num_chars)
MIDB(text,start_num,num_bytes)
PHONETIC 提取文本串中的拼音 (fur igana) 字符。 PHONETIC(reference)
PROPER 将文字串的首字母及任何非字母字符之后的首字母转换成大写。将其余的字母转换成小写。 PR OPER(text)
REPLACE REPLACE 使用其他文本串并根据所指定的字符数替换某文本串中的部分文本。
REPLACEB 使用其他文本串并根据所指定的字符数替换某文本串中的部分文本。此函数专为双字节字符使用。 REPLACE(ol d_text,start_
num,num_chars,new_text)
REPLACEB(old_text,start_num,num_bytes,new_text)
REPT 按照给定的次数重复显示文本。可以通过函数 REPT 来不断地重复显示某一文字串,对单元格进行填充。 REPT(tex t,number_ti
www.manaren.com
mes)
RIGHT RIGHT 根据所指定的字符数返回文本串中最后一个或多个字符。
RIGHTB 根据所指定的字符数返回文本串中最后一个或多个字符。此函数用于双字节字符。 RIGHT( text,num_chars)
RIGHTB(text,num_bytes)
SEARCH SEAR CH 返回从 start_ num 开始首次找到特定字符或文本串的位置上特定字符的编号。使用 SEARCH 可确定字符或文本串在
其他文本串中的位置,这样就可使用 MID 或 REPLACE 函数更改文本。
SEARCHB 也可在其他文本串 (within_text) 中查找文本串 (find_text ),并返回 find_text 的起始位置编号。此结果是基于每个
字符所使用的字节数,并从 start_num 开始的。此函数用于双字节字符。此外,也可使用 FINDB 在其他文本串中查找文本 串。 SEA
RCH(find_text,within_text,start_num)
SEARCHB(find_text,within_text,start_num)
SUBSTITUTE 在文 字串中用 new_text 替代 old_text。如果需要在某一文字串中替换指定的文本,请使用函数 SUBSTITUTE;如果需
要在某一文字串中替换指定位置处的任意文本,请使用函数 REPLACE。 SUBSTITUT E(text,old_text,new_text,instance_num)
T 将数值转换成文本。 T(value)
TEXT 将一数值转换为按指定数字格式表示的文本。 TEXT (value,format_text)
TRIM 除了单词之间的单个空格外, 清除文本中所有的空格。在从其他应用程序中获取带有不规则空格的文本时, 可以使用函数 TRIM。 T
RIM(text)
UPPER 将文本转换成大写形式。 UPPER(text)
VALUE 将代表数字的文字串转换成数字。 VA LUE(text)
WIDECHAR 将单字节字符转换为双字节字符。 WI DECHAR(text)
YEN 使用 ¥(日圆)货币格式将数字转换成文本,并对指定位置后的数字四舍五入。 YEN(nu mber,decimals)
附二、日期与时间函数
www.manaren.com
函数名 函数说明 语法
DATE 返回代表特定日期的系列数。 DATE(yea r,month,day)
DATEDIF 计算两个日期之间的天数、月数或年数。 DATE DIF(start_date,end_date,unit)
DATEVALUE 函数 DATEVALUE 的主要功能是将以文字表示的日期转换成一个系列数。 DATEVA LUE(date_text)
DAY 返回以系列数表示的某日期的天数,用整数 1 到 31 表示。 DAY (serial_number)
DAYS360 按照一年 360 天的算法(每个月以 30 天计,一年共计 12 个月),返回两日期间相差的天数。 DAYS3 60(start_date,
end_date,method)
EDATE 返回指定日期 (s tart_date) 之前或之后指 定月份数的日期系列数。使用函数 EDATE 可以计算与发行日处 于一月中同一天的
到期日的日期。 EDATE(st art_date,months)
EOMONTH 返回 start-date 之前或之后指定月份中最后一天的系列数。用函数 EOMONTH 可计算特定月份中最后 一天的时间系列数,
用于证券的到期日等计算。 EOMONTH( start_date,months)
HOUR 返回时间值的小时数。即一个介于 0 (12:00 A.M.) 到 23 (11:00 P.M.) 之间的整数。 HOUR(serial_number)
MINUTE 返回时间值中的分钟。即一个介于 0 到 59 之间的整数。 M INUTE(serial_number)
MONTH 返回以系列数表示的日期中的月份。月份是介于 1(一月)和 12 (十二月)之间的整数。 MONTH(serial_number)
NETWORKDAY S 返回参数 start- data 和 end-data 之间完整的工作日数值。工作日不包括周末和专门指定的假期 NETWORKD AYS(star
t_date,end_date,holidays)
NOW 返回当前日期和时间所对应的系列数。 NOW( )
SECOND 返回时间值的秒数。返回的秒数为 0 至 59 之间的整数。 S ECOND(serial_number)
TIME 返回某一特定时间的小数值,函数 TIME 返回的小数值为从 0 到 0.99999999 之间的数值,代表从 0:0 0:00 (12:00:0
0 A.M) 到 23:59:59 (11:59:59 P.M) 之间的时间。
TIME(hour,minute,second)
TIMEVALUE 返回由文本串所代表的时间的小数值。该小数值为从 0 到 0. 999999999 的数值,代表从 0:00:00 (12:00:00 A
M) 到 23:59:59 (11:59:59 PM) 之间的时间。 TIMEVALUE(time_text)
TODAY 返回当前日期的系列数,系列数是 Micr osoft Excel 用于日期和时间计算的日期-时间代码。 TODAY( )
WEEKDAY 返回某日期为星期几。默认情况下,其值为 1(星期天)到 7(星期六)之间的整数。 WEEKDAY(serial_number,return_typ
e)
www.manaren.com
WEEKNUM 返回一个数字,该数字代表一年中的第几周。 WEEK NUM(serial_num,return_type)
WORKDAY 返回某日期(起始日期)之前或之后相隔指定工作日的某一日期的日期值。工作日不包括周末和专门指定的假日。 WORK DAY(st
art_date,days,holidays)
YEAR 返回某日期的年份。返回值为 1900 到 9999 之间的整数。 YEAR(serial_number)
YEARFRAC 返回 st art_date 和 end_date 之间的天数占全年天数的百分比。 YE ARFRAC(start_date,end_date,basis)
在介绍查询与引用函数之前,我们先来了解一下有关引用的知识。
1、引用的作用
在 Excel 中引用的作用在于标识工作表上的单元格或单元格区域,并指明公式中所使用的数据的位置。通过引用,可以在公式中使用工作
表不同部分的数据,或者在多个公式中使用同一单元格的数值。还可以引用同一工作簿不同工作表的单元格、不同工作簿的单元格、甚至
其它应用程序中的数据。
2、引用的含义
关于引用需要了解如下几种情况的含义:
外部引用--不同工作簿中的单元格的引用称为外部引用。
远程引用--引用其它程序中的数据称为远程引用。
相对引用--在创建公式时,单元格或单元格区域的引用通常是相对于包含公式的单元格的相对位置。
绝对引用--如果在复制公式时不希望 Excel 调整引用,那么请使用绝对引用。即加入美元符号,如$C$1。
www.manaren.com
3、引用的表示方法
关于引用有两种表示的方法,即 A1 和 R1C1 引用样式。
(1)引用样式一(默认)--A1
A1 的引用样式是 Excel 的默认引用类型。这种类型引用字母标志列(从 A 到 IV ,共 256 列)和数字标志行(从 1 到 65536)。
这些字母和数字被称为行和列标题。如果要引用单元格,请顺序输入列字母和行数字。例如,C25 引用了列 C 和行 25 交叉处的单
元格。如果要引用单元格区域,请输入区域左上角单元格的引用、冒号(:)和区域右下角单元格的引用,如 A20:C35。
(2)引用样式二--R1C1
在 R1C1 引用样式中,Excel 使用"R "加行数字和"C"加列数字来指示单元格的位置。例如,单元格绝对引用 R1C1 与 A1 引用样式
中的绝对引用 $A$1 等价。如果活动单元格是 A1,则单元格相对引用 R[1]C[1] 将引用下面一行和右边一列的单元格,或 是 B2。
在了解了引用的概念后,我们来看看 Excel 提供的查询与引用函数。查询与引用函数可以用来在数据清单或表格中查找特定数值,或者需
要查找某一单元格的引用。Excel 中一共提供了 ADDRESS、AREAS、CH OOSE、COLUMN、COLUMNS、HLOOKUP、HYPERLINK、INDEX、INDIRECT、L
OOKUP、MATCH、OFFSET、 ROW、ROWS、TRANSPOSE、VLOOKUP 16 个查询与引用函数。下面,笔者将 分组介绍一下这些函数的使用方法及简单
应用。
一、ADDRESS、COLUMN、ROW
1、 ADDRESS 用于按照给定的行号和列标,建立文本类型的单元格地址。
其语法形式为:ADDRESS(r ow_num,column_num,abs_num,a1,s heet_text)
www.manaren.com
Row_num 指在单元格引用中使用的行号。
Column_num 指在单元格引用中使用的列标。
Abs_num 指明返回的引用类型,1 代表绝对引用,2 代表绝对行号,相对列标,3 代表相对行号,绝对列标,4 为相对引用。
A1 用以指明 A1 或 R1C1 引用样式的逻辑值。如果 A1 为 TR UE 或省略,函数 ADDRESS 返回 A1 样式的引用;如果 A
1 为 FALSE,函数 ADDRESS 返回 R1C1 样式的引用。
Sheet_text 为一文本,指明作为外部引用的工作表的名称,如果省略 sheet_text,则不使用任何工作表名。
简单说,即 ADDRESS(行号,列标,引用类型,引用样式,工作表名称)
比如,ADDRESS(4 ,5,1,FALSE,"[Book1]S heet1") 等于 "[Book1]Sheet1!R4C5"参见图 1
察看原图 发送到手机
图1
2、 COLUMN 用于返回给定引用的列标。
语法形式为:COLUMN(re ference)
Reference 为需要得到其列标的单元格或单元格区域。如果省略 reference,则假定为是 对函数 COLUMN 所在单元格的引用。如果 re
ference 为一个单元格区域,并且函数 CO LUMN 作为水平数组输入,则函数 COLUMN 将 reference 中的列标以水平数组的形式返
回。但是 Reference 不能引用多个区域。
3、 ROW 用于返回给定引用的行号。
www.manaren.com
www.manaren.com
语法形式为:ROW(reference)
Reference 为需要得到其行号的单元格或单元格区域。 如果省略 reference,则假定是对函数 ROW 所在单元格的引 用。如果 refer
ence 为一个单元格区域,并且函数 ROW 作为垂直数组输入,则函数 ROW 将 reference 的行号以垂直数组的形式 返回。但是 Ref
erence 不能对多个区域进行引用。
二、AREAS、COLUMNS、INDEX、ROWS
1、 AREAS 用于返回引用中包含的区域个数。其中区域表示连续的单元格组或某个单元格。
其语法形式为 AREAS(ref erence)
Reference 为对某一单元格或单元格区域的引用,也可以引用多个区域。如果需要将几个引用指定为一个参数,则必须用括号括起来。
2、 COLUMNS 用于返回数组或引用的列数。
其语法形式为 COLUMNS(array)
Array 为需要得到其列数的数组、数组公式或对单元格区域的引用。
3、 ROWS 用于返回引用或数组的行数。
其语法形式为 ROWS(ar ray)
Array 为需要得到其行数的数组、数组公式或对单元格区域的引用。
以上各函数示例见图 2
察看原图 发送到手机
图2
4、 INDEX 用于返回表格或区域中的数值或对数值的引用。
函数 INDEX() 有两种形式:数组和引用。数组形式通常返回数值或数值数组;引用形式通常返回引用。
(1)INDEX(array,row_num,column_ num) 返回数组中指定单元格或单元格数组的数值。
www.manaren.com
www.manaren.com
Array 为单元格区域或数组常数。Row_num 为数组中某行的行序号, 函数从该行返回数值。Column_num 为数组中某列的列序号,函数从该列
返回数值。需注意的是 Row_num 和 colu mn_num 必须指向 array 中的某一单元格,否则,函数 INDEX 返回错误值 #REF!。
(2)INDEX(ref erence,row_num,column_num,area _num) 返回引用中指定单元格或单元格区 域的引用。
Reference 为对一个或多个单元格区域的引用。
Row_num 为引用中某行的行序号,函数从该行返回一个引用。
Column_num 为引用中某列的列序号,函数从该列返回一个引用。
需注意的是 Row_num、colu mn_num 和 area_num 必须指向 refe rence 中的单元格;否则,函数 INDEX 返回错误值 #REF!。如果
省略 row_num 和 colu mn_num,函数 INDEX 返回由 area_num 所指定的区域。
三、INDIRECT、OFFSET
1、 INDIRECT 用于返回由文字串指定的引用。
当需要更改公式中单元格的引用,而不更改公式本身,使用函数 INDIRECT。
其语法形式为:INDIREC T(ref_text,a1)
其中 Ref_text 为对单元格的引用,此单元格可以包含 A1-样式的引用、R1C1-样式的引用、定义为引用的名称或对文字串单元 格的引用。
如果 ref_text 不是合法的单元格的引用,函数 INDI RECT 返回错误值 #REF!。
www.manaren.com
A1 为一逻辑值,指明包含在单元格 ref_text 中的引用的类型。如果 a1 为 TRUE 或省略,ref_text 被解释 为 A1-样式的引用。
如果 a1 为 FALSE,ref_text 被解释为 R1C1-样式的引用。
需要注意的是:如果 ref_text 是对另一个工作簿的引用(外部引用),则那个工作簿必须被打开。如果源工作簿没有打开,函数 IND
IRECT 返回错误值 #REF!。
2、 OFFSET 函数用于以指定的引用为参照系,通过给定偏移量得到新的引用。
返回的引用可以是一个单元格或者单元格区域,并可以指定返回的行数或者列数。
其基本语法形式为:OFFSET(re ference, rows, cols, height, width)。
其中,reference 变量作为偏移量参照系的引用区域(refe rence 必须为对单元格或相连单元格区域的引用,否则,OFFS ET 函数返回错误值
#VALUE!)。
rows 变量表示相对于偏移量参照系的左上角单元格向上(向下)偏移的行数(例如 rows 使用 2 作为参数,表示目标引用区域的左上角单 元格
比 reference 低 2 行),行数可为正数(代表在起始引用单元格的下方)或者负数(代表在起始引用单元格的上方)或者 0(代表起始 引用单元
格)。
cols 表示相对于偏移量参照系的左上角单元格向左(向右)偏移的列数(例如 cols 使用 4 作为参数,表示目标引用区域的左上角单元格 比re
ference 右移 4 列),列数可为正数(代表在起始引用单元格的右边)或者负数(代表在起始引用单元格的左边)。
如果行数或者列数偏移量超出工作表边缘,OFFSET 函数将返回错误值#REF!。height 变量表示高度,即所要返回的引用区域的 行数(heig
ht 必须为正数)。width 变量表示宽度,即所要返回的引用区域的列数(width 必须为正数)。如果省略 height 或者 widt h,则假设其高度或
者宽度与 reference 相同。例如,公式 OFFSE T(A1,2,3,4,5)表示比单元格 A1 靠下 2 行并靠右 3 列的 4 行 5 列的区域(即 D3:H7 区域)。
www.manaren.com
由此可见,OFFSET 函数实际上并不移动任何单元格或者更改选定区域,它只是返回一个引用。
四、HLOOKUP、LOOKUP、MATCH、VLOOKUP
1、 LOOKUP 函数与 MATCH 函数
LOOKUP 函数可以返回向量(单行区域或单列区域)或数组中的数值。此系列函数用于在表格或数值数组的首行查找指定的数值,并由此返
回表格或数组当前列中指定行处的数值。当比较值位于数据表的首行,并且要查找下面给定行中的数据时,使用函数 HLOOKUP。当比较 值
位于要进行数据查找的左边一列时,使用函数 VLOOKUP。
如果需要找出匹配元素的位置而不是匹配元素本身,则应该使用函数 MATCH 而不是函数 LOOKUP。MATCH 函数用来返回在指 定方式下与
指定数值匹配的数组中元素的相应位置。从以上分析可知,查找函数的功能,一是按搜索条件,返回被搜索区域内数据的一个数据值;二
是按搜索条件,返回被搜索区域内某一数据所在的位置值。利用这两大功能,不仅能实现数据的查询,而且也能解决如"定级"之类的实际
问题。
2、 LOOKUP 用于返回向量(单行区域或单列区域)或数组中的数值。
函数 LOOKUP 有两种语法形式:向量和数组。
(1) 向量形式
函数 LOOKUP 的向量形式是在单行区域或单列区域(向量)中查找数值,然后返回第二个单行区域或单列区域中相同位置的数值。
其基本语法形式为 LOOKUP(lo okup_value,lookup_vector,resul t_vector)
www.manaren.com
Lookup_value 为函数 LOOKUP 在第一个向量中所要查找的数值。Lookup_value 可以为数字、文本、逻辑值 或包含数值的名称或引用。
Lookup_vec tor 为只包含一行或一列的区域。Lookup_ vector 的数值可以为文本、数字或逻辑值。
需要注意的是 Lookup_ve ctor 的数值必须按升序排序:...、-2、-1、0、1 、2、...、A-Z、FALSE、TRUE;否则,函数 LOOKUP 不能返
回正确的结果。文本不区分大小写。
Result_vec tor 只包含一行或一列的区域,其大小必须与 lookup_vector 相同。
如果函数 LOOKUP 找不到 lo okup_value,则查找 lookup_vector 中小于或等于 lo okup_value 的最大数值。
如果 lookup_val ue 小于 lookup_v ector 中的最小值,函数 LO OKUP 返回错误值 #N/A。
示例详见图 3