设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

Excel函数速查一览

2007-8-23 09:42| 发布者: admin| 查看: 5913| 评论: 1

Excel函数速查一览
(一)数据库函数
1.DAVERAGE
用途:返回数据库或数据清单中满足指定条件的列中数值
的平均值。
语法:DAVERAGE(database,field,criteria)
参数:Database 构成列表或数据库的单元格区域。Field
指定函数所使用的数据列。Criteria 为一组包含给定条件的
单元格区域。
2.DCOUNT
用途:返回数据库或数据清单的指定字段中,满足给定条
件并且包含数字的单元格数目。
语法:DCOUNT(database,field,criteria)
参数:Database 构成列表或数据库的单元格区域。Field
指定函数所使用的数据列。Criteria 为一组包含给定条件的
单元格区域。
3.DCOUNTA
用途:返回数据库或数据清单指定字段中满足给定条件的
非空单元格数目。
语法:DCOUNTA(database,field,criteria)
参数:Database 构成列表或数据库的单元格区域。Field
指定函数所使用的数据列。Criteria 为一组包含给定条件的
单元格区域。
4.DGET
用途:从数据清单或数据库中提取符合指定条件的单个
值。
语法:DGET(database,field,criteria)
参数:Database 构成列表或数据库的单元格区域。Field
指定函数所使用的数据列。Criteria 为一组包含给定条件的
单元格区域。
5.DMAX
用途:返回数据清单或数据库的指定列中,满足给定条件
单元格中的最大数值。
语法:DMAX(database,field,criteria)
参数:Database 构成列表或数据库的单元格区域。Field
指定函数所使用的数据列。Criteria 为一组包含给定条件的
单元格区域。
6.DMIN
用途:返回数据清单或数据库的指定列中满足给定条件的
单元格中的最小数字。
语法:DMIN(database,field,criteria)
参数:Database 构成列表或数据库的单元格区域。Field
指定函数所使用的数据列。Criteria 为一组包含给定条件的
单元格区域。
7.DPRODUCT
用途:返回数据清单或数据库的指定列中,满足给定条件
单元格中数值乘积。
语法:DPRODUCT(database,field,criteria)
参数:同上
8.DSTDEV
用途:将列表或数据库的列中满足指定条件的数字作为一
个样本,估算样本总体的标准偏差。
语法:DSTDEV(database,field,criteria)
参数:同上
4
9.DSTDEVP
参数:将数据清单或数据库的指定列中,满足给定条件单
元格中的数字作为样本总体,计算总体的标准偏差。
语法:DSTDEVP(database,field,criteria)
参数:同上
10.DSUM
用途:返回数据清单或数据库的指定列中,满足给定条件
单元格中的数字之和。
语法:DSUM(database,field,criteria)
参数:同上
11.DVAR
用途:将数据清单或数据库的指定列中满足给定条件单元
格中的数字作为一个样本,估算样本总体的方差。
语法:DVAR(database,field,criteria)
参数:同上
12.DVARP
用途:将数据清单或数据库的指定列中满足给定条件单元
格中的数字作为样本总体,计算总体的方差。
语法:DVARP(database,field,criteria)
参数:同上
13.GETPIVOTDATA
用途:返回存储在数据透视表报表中的数据。如果报表中
的汇总数据可见,则可以使用函数GETPIVOTDATA 从数据透视
表报表中检索汇总数据。
语法:GETPIVOTDATA(pivot_table,name)
参数:Data_field 为包含要检索的数据的数据字段的名
称(放在引号中)。Pivot_table 在数据透视表中对任何单元
格、单元格区域或定义的单元格区域的引用,该信息用于决定
哪个数据数据透视表包含要检索的数据。Field1,Item1,
Field2,Item2 为1 到14 对用于描述检索数据的字段名和项
名称,可以任意次序排列。
(二)日期与时间函数
1.DATE
用途:返回代表特定日期的序列号。
语法:DATE(year,month,day)
参数:year 为一到四位,根据使用的日期系统解释该参
数。默认情况下,Excel for Windows 使用1900 日期系统,
而Excel for Macintosh 使用1904 日期系统。Month 代表每
年中月份的数字。如果所输入的月份大于12,将从指定年份
的一月份执行加法运算。Day 代表在该月份中第几天的数字。
如果 day 大于该月份的最大天数时,将从指定月份的第一天
开始往上累加。
注意:Excel 按顺序的序列号保存日期,这样就可以对其
进行计算。如果工作簿使用的是1900 日期系统,则Excel 会
将1900 年1 月1 日保存为序列号1。同理,会将1998 年1 月
1 日保存为序列号35796,因为该日期距离1900 年1 月1 日为
35795 天。
实例:如果采用1900 日期系统(Excel 默认),则公式
“=DATE(2001,1,1)”返回36892。
2.DATEVALUE
用途:返回date_text 所表示的日期的序列号。该函数的
主要用途是将文字表示的日期转换成一个序列号。
语法:DATEVALUE(date_text)
参数:Date_text 是用Excel 日期格式表示日期的文本。
在使用1900 日期系统中,date_text 必须是1900 年1 月1 日
到9999 年12 月31 日之间的一个日期;而在1904 日期系统中,
date_text 必须是1904 年1 月1 日到9999 年12 月31 日之间
的一个日期。如果date_text 超出上述范围,则函数DATEVALUE
返回错误值#VALUE!。
如果省略参数date_text 中的年代,则函数DATEVALUE
使用电脑系统内部时钟的当前年代,且date_text 中的时间信
息将被忽略。
实例:公式“=DATEVALUE("2001/3/5")”返回36955,
DATEVALUE("2-26")返回36948。
3.DAY
用途:返回用序列号(整数1 到31)表示的某日期的天数,
用整数 1 到 31 表示。
语法:DAY(serial_number)
参数:Serial_number 是要查找的天数日期,它有多种输
入方式:带引号的文本串(如"1998/01/30")、序列号(如1900
日期系统的35825 表示 的1998 年1 月30 日),以及其他公式
或函数的结果(如DATEVALUE("1998/1/30"))。
实例:公式“=DAY("2001/1/27")”返回27,=DAY(35825)
返回30,=DAY(DATEVALUE("2001/1/25"))返回25。
5
4.DAYS360
用途:按照一年360 天的算法(每个月30 天,一年共计
12 个月),返回两日期间相差的天数。
语法:DAYS360(start_date,end_date,method)
参数:Start_date 和end_date 是用于计算期间天数的起
止日期。如果start_date 在end_date 之后,则DAYS360 将返
回一个负数。日期可以有多种输入方式:带引号的文本串(例
如:"1998/01/30")、序列号(例如:如果使用1900 日期系统,
则35825 表示1998 年1 月30 日)或其他公式或函数的结果(例
如,DATEVALUE("1998/1/30"))。
Method 是一个逻辑值,它指定了在计算中是采用欧洲方
法还是美国方法。若为FALSE 或忽略,则采用美国方法(如果
起始日期是一个月的31 日,则等于同月的30 日。如果终止日
期是一个月的31 日,并且起始日期早于30 日,则终止日期等
于下一个月的1 日,否则,终止日期等于本月的30 日)。 若
为TRUE 则采用欧洲方法(无论是起始日期还是终止日期为一
个月的 31 号,都将等于本月的 30 号)。
实例:公式“=DAYS360("1998/2/1","2001/2-1")”返回
1080。
5.EDATE
用途:返回指定日期(start_date)之前或之后指定月份的
日期序列号。
语法:EDATE(start_date,months)
参数:Start_date 参数代表开始日期,它有多种输入方
式:带引号的文本串(例如:"1998/01/30")、序列号(如35825
表示1998 年1 月30 日)或其他公式或函数的结果(例如:
DATEVALUE("1998/1/30"))。Months 为在start_date 之前或
之后的月份数,未来日期用正数表示,过去日期用负数表示。
实例:公式“=EDATE("2001/3/5",2)”返回37016 即2001
年5 月5 日,=EDATE("2001/3/5",-6)返回36774 即2000 年
9 月5 日。
6.EOMONTH
用途:返回start-date 之前或之后指定月份中最后一天
的序列号。
语法:EOMONTH(start_date,months)
参数:Start_date 参数代表开始日期,它有多种输入方
式:带引号的文本串(如"1998/01/30")、序列号(如1900 日期
系统中的35825)或其他公式或函数的结果(如
DATEVALUE("1998/1/30"))。Month 为start_date 之前或之后
的月份数,正数表示未来日期,负数表示过去日期。
实例:公式“=EOMONTH("2001/01/01",2)”返回36981
即2001 年3 月31 日,=EOMONTH("2001/01/01",-6)返回36738
即2000 年7 月31 日。
7.HOUR
用途:返回时间值的小时数。即介于0(12:00 A.M.)到
23(11:00 P.M.) 之间的一个整数。
语法:HOUR(serial_number)
参数:Serial_number 表示一个时间值,其中包含着要返
回的小时数。它有多种输入方式:带引号的文本串(如"6:45
PM")、十进制数(如0.78125 表示6:45PM)或其他公式或函数
的结果(如TIMEVALUE("6:45 PM"))。
实例:公式“=HOUR("3:30:30 PM")”返回15,=HOUR(0.5)
返回12 即12:00:00 AM,=HOUR(29747.7)返回16。
8.MINUTE
用途:返回时间值中的分钟,即介于0 到59 之间的一个
整数。
语法:MINUTE(serial_number)
参数:Serial_number 是一个时间值,其中包含着要查找
的分钟数。时间有多种输入方式:带引号的文本串(如"6:45
PM")、十进制数(如 0.78125 表示6:45 PM)或其他公式或函数
的结果(如TIMEVALUE("6:45 PM"))。
实例:公式“=MINUTE("15:30:00")”返回30,
=MINUTE(0.06)返回26,=MINUTE(TIMEVALUE("9:45 PM"))返
回45。
9.MONTH
用途:返回以序列号表示的日期中的月份,它是介于 1(一
月)和12(十二月)之间的整数。
语法:MONTH(serial_number)
参数:Serial_number 表示一个日期值,其中包含着要查
找的月份。日期有多种输入方式:带引号的文本串(如
"1998/01/30")、序列号(如表示1998 年1 月30 日的35825)
或其他公式或函数的结果(如DATEVALUE("1998/1/30"))等。
实例:公式“=MONTH("2001/02/24")”返回2,
=MONTH(35825)返回1,=MONTH(DATEVALUE("2000/6/30"))返
回6。
10.NETWORKDAYS
用途:返回参数start-data 和end-data 之间完整的工作
日(不包括周末和专门指定的假期)数值。
语法:NETWORKDAYS(start_date,end_date,holidays)
6
参数:Start_date 代表开始日期,End_date 代表终止日;
Holidays 是表示不在工作日历中的一个或多个日期所构成的
可选区域,法定假日以及其他非法定假日。此数据清单可以是
包含日期的单元格区域,也可以是由代表日期的序列号所构成
的数组常量。
函数中的日期有多种输入方式:带引号的文本串(如
"1998/01/30")、序列号(如使用1900 日期系统的35825)或其
他公式或函数的结果(如 DATEVALUE("1998/1/30"))。
注意:该函数只有加载“分析工具库”以后方能使用。
11.NOW
用途:返回当前日期和时间所对应的序列号。
语法:NOW()
参数:无
实例:如果正在使用的是1900 日期系统,而且计算机的
内部时钟为 2001-1-28 12:53,则公式“=NOW()”返回
36919.54。
12.SECOND
用途:返回时间值的秒数(为0 至59 之间的一个整数)。
语法:SECOND(serial_number)
参数:Serial_number 表示一个时间值,其中包含要查找
的秒数。关于时间的输入方式见上文的有关内容。
实例:公式“=SECOND("3:30:26 PM")”返回26,
=SECOND(0.016)返回2。
13.TIME
用途:返回某一特定时间的小数值,它返回的小数值从0
到 0.99999999 之间,代表0:00:00(12:00:00 A.M)到
23:59:59(11:59:59 P.M) 之间的时间。
语法:TIME(hour,minute,second)
参数:Hour 是0 到23 之间的数,代表小时;Minute 是0
到59 之间的数,代表分;Second 是0 到59 之间的数,代表
秒。
实例:公式“=TIME(12,10,30)”返回序列号0.51,等
价于12:10:30 PM。=TIME(9,30,10)返回序列号0.40,等价
于9:30:10 AM。=TEXT(TIME(23,18,14),"h:mm:ss AM/PM")
返回“11:18:14 PM”。
14.TIMEVALUE
用途:返回用文本串表示的时间小数值。该小数值为从 0
到 0.999999999 的数值,代表从 0:00:00 (12:00:00 AM) 到
23:59:59 (11:59:59 PM) 之间的时间。
语法:TIMEVALUE(time_text)
参数:Time_text 是一个用Excel 时间格式表示时间的文
本串(如"6:45 PM"和"18:45"等)。
实例:公式“=TIMEVALUE("3:30 AM")”返回
0.145833333,=TIMEVALUE("2001/1/26 6:35 AM")返回
0.274305556。
15.TODAY
用途:返回系统当前日期的序列号。
参数:无
语法:TODAY()
实例:公式“=TODAY()”返回2001-8-28(执行公式时的
系统时间)。
16.WEEKDAY
用途:返回某日期的星期数。在默认情况下,它的值为
1(星期天)到7(星期六)之间的一个整数。
语法:WEEKDAY(serial_number,return_type)
参数:Serial_number 是要返回日期数的日期,它有多种
输入方式:带引号的文本串(如"2001/02/26")、序列号(如
35825 表示1998 年1 月30 日)或其他公式或函数的结果(如
DATEVALUE("2000/1/30"))。Return_type 为确定返回值类型
的数字,数字1 或省略则1 至7 代表星期天到数星期六,数字
2 则1 至7 代表星期一到星期天,数字3 则0 至6 代表星期一
到星期天。
实例:公式“=WEEKDAY("2001/8/28",2)”返回2(星期
二),=WEEKDAY("2003/02/23",3)返回6(星期日)。
17.WEEKNUM
用途:返回一个数字,该数字代表一年中的第几周。
语法:WEEKNUM(serial_num,return_type)
参数:Serial_num 代表一周中的日期。应使用DATE 函数
输入日期,或者将日期作为其他公式或函数的结果输入。
Return_type 为一数字,确定星期计算从哪一天开始。默认值
为 1。
18.WORKDAY
用途:返回某日期(起始日期)之前或之后相隔指定工作日
(不包括周末和专门指定的假日)的某一日期的值,并扣除周末
或假日。
语法:WORKDAY(start_date,days,holidays)
参数:Start_date 为开始日期;Days 为Start_date 之前
或之后不含周末及节假日的天数;Days 是正值将产生未来日
7
期、负值产生过去日期;Holidays 为可选的数据清单,表示
需要从工作日历中排除的日期值(如法定假日或非法定假日)。
此清单可以是包含日期的单元格区域,也可以是由代表日期的
序列号所构成的数组常量。日期有多种输入方式:带引号的文
本串(如"1998/01/30")、序列号(如1900 日期系统时的35825
表示1998 年1 月30 日)或其他公式或函数的结果(例如
DATEVALUE("1998/1/30"))。
19.YEAR
用途:返回某日期的年份。其结果为1900 到9999 之间的
一个整数。
语法:YEAR(serial_number)
参数:Serial_number 是一个日期值,其中包含要查找的
年份。日期有多种输入方式:带引号的文本串(例如
"1998/01/30")、序列号(例如,如果使用 1900 日期系统则
35825 表示 1998 年 1 月 30 日)或其他公式或函数的结果
(例如 DATEVALUE("1998/1/30"))。
实例:公式“=YEAR("2000/8/6")返回2000”,
=YEAR("2003/05/01")返回2003,=YEAR(35825)返回1998。
20.YEARFRAC
用途:返回start_date 和end_date 之间的天数占全年天
数的百分比。
语法:YEARFRAC(start_date,end_date,basis)
参数:Start_date 表示开始日期,End_date 代表结束日
期。函数中的日期有多种输入方式:带引号的文本串(如
"1998/01/30")、序列号(如35829 表示1900 日期系统中的
1998 年1 月30 日),或其他公式或函数的结果(例如
DATEVALUE("1998/1/30"))。Basis 表示日计数基准类型,其
中0 或省略为US(NASD)30/360,1 实际天数/实际天数,2 实
际天数/360,3 实际天数/365,4 欧洲30/360。
实例:公式“=YEARFRAC("2001/01/31","2001/06/30",
0)”返回0.416666667,YEARFRAC("2001/01/25",
"2001/09/27")返回0.67222。

三、函数应用案例──算账理财
1.零存整取储蓄
“零存整取”是工薪阶层常用的投资方式,这就需要计算
该项投资的未来值,从而决定是否选择某种储蓄方式。
(1)函数分解
FV 函数基于固定利率及等额分期付款方式,返回某项投
资的未来值。
语法:FV(rate,nper,pmt,pv,type)
Rate 为各期利率;Nper 为总投资期,即该项投资的付款
期总数;Pmt 为各期所应支付的金额,其数值在整个年金期间
保持不变;Pv 为现值,即从该项投资开始计算时已经入账的
款项,或一系列未来付款的当前值的累积和;Type 为数字0
或1,用以指定各期的付款时间是在期初还是期末。
(2)实例分析
新建一个工作表,在其A1、B1、C1、D1 单元格分别输入
“投资利率”、“投资期限”、“投资金额”和“账户初始金
额”。假设妻子新建一个账户每月底存入300 元,年利2.1%(即
月息0.00175),连续存款5 年,可以在A2、B2、C2、D2 单元
格分别输入“0.00175”、“60”、“500”和“1”。
然后选中E2 单元格输入公式“=FV(A2,B2,-C2,D2,1)”,
回车即可获得该投资的到期本金合计为“¥18,994.67”。公
式中的“-C2”表示资金是支出的,“C2”前不加负号也可,
这样计算出来的结果就是负值。
如果丈夫也有“零存整取”账户,每月初存入200 元,年
利1.28%(即月息0.001667),连续存款3 年,可以在A3、B3、
C3、D3 单元格分别输入“0.001667”、“36”、“200”和
“0”。然后把E2 单元格中的公式复制到E3 单元格(将光标指
向E2 单元格的拖动柄,当黑色十字光标出现后向下拖动一
格),即可得知该投资的到期本金合计“¥7,426.42”。
提示:上述计算结果包括本金和利息,但不包括利息税等
其他费用。
2.还贷金额
如今贷款购买住房进行消费的家庭越来越多,计算贷款的
月偿还金额是决策的重要依据,下面我们就来设计如何知道自
己每月的还款金额。
(1)函数分解
PMT 函数基于固定利率及等额分期付款方式,返回贷款的
每期付款额。
语法:PMT(rate,nper,pv,fv,type)
Rate 为贷款利率;Nper 为该项贷款的付款总数;Pv 为现
值,或一系列未来付款的当前值的累积和;Fv 为未来值,或
在最后一次付款后希望得到的现金余额;Type 为数字0 或1。
(2)实例分析
新建一个工作表,在其A1、B1、C1、D1 单元格分别输入
“贷款利率”、“还贷年限”、“贷款金额”和“还贷时间”。
假设贷款年利为4.1%(即月息0.00342),预计的还贷时间为
10 年,贷款金额为10 万元,且每月底还贷。可以在A2、B2、
C2、D2 单元格分别输入“0.00342”、“360”、“100000”
和“1”(表示月末还贷,0 表示月初还贷)。然后选中E2 单元
格输入公式“= PMT(A2,B2,C2,,D2)”,回车就可以获得每月
的还款金额为“¥-481.78”。
上式中C2 后的两个逗号之间还有一个参数,表示还贷期
限结束时账户上的余额,对这个例子来说应该是0,所以可以
忽略该参数或写成“= PMT(A2,B2,C2,0,D2)”。
3.保险收益
保险公司开办了一种平安保险,具体办法是一次性缴费
12000 元,保险期限为20 年。如果保险期限内没有出险,每
年返还1 000 元。请问在没有出险的情况下,它与现在的银行
利率相比,这种保险的收益率如何。
(1)函数分解
RATE 函数返回投资的各期利率。该函数通过迭代法计算
得出,并且可能无解或有多个解。
语法:RATE(nper,pmt,pv,fv,type,guess)
Nper 为总投资期,即该项投资的付款期总数;Pmt 为各期
付款额,其数值在整个投资期内保持不变;Pv 为现值,即从
该项投资开始计算时已经入帐的款项,或一系列未来付款当前
值的累积和;Fv 为未来值,或在最后一次付款后希望得到的
现金余额;Type 为数字0 或1。
(2)实例分析
新建一个工作表,在其A1、B1、C1、D1 单元格分别输入
“保险年限”、“年返还金额”、“保险金额”、“年底返还”
和“现行利息”。然后在A2、B2、C2、D2 和E2 单元格分别输
43
入“20”、“1000”、“12000”、“1”(表示年底返还,0
表示年初返还)和“0.02”。然后选中F2 单元格输入公式
“=RATE(A2,B2,C2,,D2,E2)”,回车就可以获得该保险的年收
益率为“0.06”。要高于现行的银行存款利率,所以还是有利
可图的。上面公式中的C2 后面有两个逗号,说明最后一次付
款后账面上的现金余额为零。
4.个税缴纳金额
假设个人收入调节税的收缴标准是:工资在800 元以下的
免征调节税,工资800 元以上至1 500 元的超过部分按5%的
税率征收,1 500 元以上至2 000 元的超过部分按8%的税率征
收,高于2 000 元的超过部分按20%的税率征收。我们可以按
以下方法设计一个可以修改收缴标准的工作簿:
新建一个工作表,在其A1、B1、C1、D1、E1 单元格分别
输入“姓名”、“工资总额”、“扣款”、“个税”和“实付
工资”。为了方便个税标准的修改,我们可以另外打开一个工
作表(例如Sheet2),在其A1、B1、C1、D1、E1 单元格中输入
“免征标准”、“低标准”、“中等标准”和“高标准”,然
后分别在其下方的单元格内输入“800”、“1500”、
“2000”、“2000”。
接下来回到工作表Sheet1 中,选中D 列的D2 单元格输入
公式“=IF(C2<=Sheet2!A2,"
",IF((C2-Sheet2!A2)<=Sheet2!B2,(C2-Sheet2!A2)*0.05,IF
(C2-Sheet2!C2<=Sheet2!C2,(C2-Sheet2!C2)*0.08,IF(C2>Sh
eet2!D2,(C2-Sheet2!D2)*0.2))))”,回车后即可计算出C2
单元格中的应缴个税金额。此后用户只需把公式复制到C3、
C4 等单元格,就可以计算出其他职工应缴纳的个税金额。
上述公式的特点是把个税的征收标准放到另一个工作表
中,如果征税标准发生了变化,用户只需修改相应单元格中的
数值,不需要对公式进行修改,可以减少发生计算错误的可能。
公式中的IF 语句是逐次计算的,如果第一个逻辑判断
“C2-Sheet2!A2)<=Sheet2!B2”成立,即工资收入低于征收标
准,则个税计算公式所在单元格被填入空格;如果第一个逻辑
判断式不成立,则计算第二个IF 语句,直至计算结束。假如
征税标准多于4 个,可以按上述继续嵌套IF 函数(最多7 个)。
四、函数应用案例──信息统计
使用Excel 管理人事信息,具有无须编程、简便易行的特
点。假设有一个人事管理工作表,它的A1、B1、C1、D1、E1、
F1、G1 和H1 单元格分别输入“序号”、“姓名”、“身份证
号码”、“性别”、“出生年月”等。自第2 行开始依次输入
职工的人事信息。为了尽可能减少数据录入的工作量,下面利
用Excel 函数实现数据统计的自动化。
1.性别输入
根据现行的居民身份证号码编码规定,正在使用的18 位
的身份证编码。它的第17 位为性别(奇数为男,偶数为女),
第18 位为效验位。而早期使用的是15 位的身份证编码,它的
第15 位是性别(奇数为男,偶数为女)。
(1)函数分解
LEN 函数返回文本字符串中的字符数。
语法:LEN(text)
Text 是要查找其长度的文本。空格将作为字符进行计数。
MOD 函数返回两数相除的余数。结果的正负号与除数相
同。
语法:MOD(number,divisor)
Number 为被除数;Divisor 为除数。
MID 函数返回文本字符串中从指定位置开始的特定数目
的字符,该数目由用户指定。
语法:MID(text,start_num,num_chars)
Text 为包含要提取字符的文本字符串;Start_num 为文本
中要提取的第一个字符的位置。文本中第一个字符的
start_num 为1,以此类推;Num_chars 指定希望MID 从文本
中返回字符的个数。
(2)实例分析
为了适应上述情况,必须设计一个能够适应两种身份编码
的性别计算公式,在D2 单元格中输入
“=IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,"男","女
"),IF(MOD(MID(C2,17,1),2)=1,"男","女"))”。回车后即可
在单元格获得该职工的性别,而后只要把公式复制到D3、D4
等单元格,即可得到其他职工的性别。
为了便于大家了解上述公式的设计思路,下面简单介绍一
下它的工作原理:该公式由三个IF 函数构成,其中
“IF(MOD(MID(C2,15,1),2)=1,"男","女")”和
“IF(MOD(MID(C2,17,1),2)=1,"男","女")”作为第一个函数
的参数。公式中“LEN(C2)=15”是一个逻辑判断语句,LEN 函
数提取C2 等单元格中的字符长度,如果该字符的长度等于15,
则执行参数中的第一个IF 函数,否则就执行第二个IF 函数。
在参数“IF(MOD(MID(C2,15,1),2)=1,"男","女")”中。
MID 函数从C2 的指定位置(第15 位)提取1 个字符,而MOD 函
数将该字符与2 相除,获取两者的余数。如果两者能够除尽,
说明提取出来的字符是0(否则就是1)。逻辑条件
44
“MOD(MID(C2,15,1),2)=1”不成立,这时就会在D2 单元格中
填入“女”,反之则会填入“男”。
如果LEN 函数提取的C2 等单元格中的字符长度不等于
15,则会执行第2 个IF 函数。除了MID 函数从C2 的指定位置
(第17 位,即倒数第2 位)提取1 个字符以外,其他运算过程
与上面的介绍相同。
2.出生日期输入
(1)函数分解
CONCATENATE 函数将几个文本字符串合并为一个文本字
符串。
语法:CONCATENATE(text1,text2,...)
Text1,text2,...为1~30 个要合并成单个文本项的文本
项。文本项可以为文本字符串、数字或对单个单元格的引用。
(2)实例分析
与上面的思路相同,我们可以在E2 单元格中输入公式
“=IF(LEN(C2)=15,CONCATENATE("19",MID(C2,7,2),"年
",MID(C2,9,2),"月",MID(C2,11,2),"日
"),CONCCTENCTE(MID(C2,7,4),"年",MID(C2,11,2),"月
",MID(C2,13,2),"日"))”。其中“LEN(C2)=15”仍然作为逻
辑判断语句使用,它可以判断身份证号码是15 位的还是18
位的,从而调用相应的计算语句。
对15 位的身份证号码来说,左起第7 至12 个字符表示出
生年、月、日,此时可以使用MID 函数从身份证号码的特定位
置,分别提取出生年、月、日。然后用CONCATENATE 函数将提
取出来的文字合并起来,就能得到对应的出生年月日。公式中
“19”是针对早期身份证号码中存在2000 年问题设计的,它
可以在计算出来的出生年份前加上“19”。对“18”位的身份
证号码的计算思路相同,只是它不存在2000 年问题,公式中
不用给计算出来的出生年份前加上“19”。
注意:CONCATENATE 函数和MID 函数的操作对象均为文本,
所以存放身份证号码的单元格必须事先设为文本格式,然后再
输入身份证号。
3.职工信息查询
Excel 提供的“记录单”功能可以查询记录,如果要查询
人事管理工作表中的某条记录,然后把它打印出来,必须采用
下面介绍的方法。
(1)函数分解
INDEX 函数返回数据清单或数组中的元素值,此元素由行
序号和列序号的索引值给定。
INDEX 函数有两种语法形式:数组和引用。数组形式通常
返回数值或数值数组,引用形式通常返回引用。当函数INDEX
的第一个参数为数组常数时,使用数组形式。
语法1(数组形式):INDEX(array,row_num,column_num)
Array 为单元格区域或数组常量。如果数组只包含一行或
一列,则相对应的参数row_num 或column_num 为可选。如果
数组有多行和多列,但只使用row_num 或column_num,函数
INDEX 返回数组中的整行或整列,且返回值也为数组;Row_num
为数组中某行的行序号,函数从该行返回数值。如果省略
row_num,则必须有column_num;Column_num 为数组中某列的
列序号,函数从该列返回数值。如果省略column_num,则必
须有row_num。
语法2(引用形式):
INDEX(reference,row_num,column_num,area_num)
Reference 表示对一个或多个单元格区域的引用。如果为
引用输入一个不连续的区域,必须用括号括起来。如果引用中
的每个区域只包含一行或一列,则相应的参数row_num 或
column_num 分别为可选项;Row_num 引用中某行的行序号,函
数从该行返回一个引用;Column_num 引用中某列的列序号,
函数从该列返回一个引用;Area_num 选择引用中的一个区域,
并返回该区域中row_num 和column_num 的交叉区域。选中或
输入的第一个区域序号为1,第二个为2,以此类推。如果省
略area_num,函数INDEX 使用区域1。
MATCH 函数返回在指定方式下与指定数值匹配的数组中
元素的相应位置。
语法:MATCH(lookup_value,lookup_array,match_type)
Lookup_value 为需要在数据表中查找的数值;
Lookup_value 为需要在Look_array 中查找的数值;
Match_type 为数字-1、0 或1。
(2)实例分析
如果上面的人事管理工作表放在Sheet1 中,为了防止因
查询操作而破坏它(必要时可以添加只读保护),我们可以打开
另外一个空白工作表Sheet2,把上一个数据清单中的列标记
复制到第一行。假如你要以“身份证号码”作为查询关键字,
就要在C2 单元格中输入公式
“=INDEX(Sheet1!C2:C600,MATCH( SC S5,Sheet1! SC S2: SC
S600,0),1)”。其中的参数“ SC S5”引用公式所在工作表中
的C5 单元格(也可以选用其他单元格),执行查询时要在其中
输入查询关键字,也就是待查询记录中的身份证号码。参数
“Sheet1!C2:C600”设定INDEX 函数的查询范围,引用的是数
据清单C 列的所有单元格。MATCH 函数中的参数“0”指定它
查找“Sheet1! SC S2: SC S600”区域中等于 SC S5 的第一
个值,并且引用的区域“Sheet1! SC S2: SC S600,0”可以按
任意顺序排列。
发表评论

最新评论

引用 雨碎 2007-8-30 11:15
要是可以来点实例说明,这些函数会更加容易理解的,不过还是要支持一下!

查看全部评论(1)

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-2 15:21 , Processed in 0.092724 second(s), 16 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部