簿不同工作表的单元格,甚至引用其他工作簿中的数据。 根据公式所在单元格的位置发生变化时,单元格引用的变 化情况,我们可以引用分为相对引用、绝对引用和混合引用三种类型。以存放在F2 单元格中的公式“=SUM(A2:E2)”为例,当公式由F2 单元格复制到F3 单元格以后,公式中的引用也会变化为“=SUM(A3:E3)”。若公式自F 列向下继续复制,“行标”每增加1 行,公式中的行标也自动加1。如果上述公式改为“=SUM($A $3:$E $3)”, 则无论公式复制到何处,其引用的位置始终是“A3:E3”区域。混合引用有“绝对列和相对行”,或是“绝对行和相对列”两种形式。前者如“=SUM($A3:$E3)”,后者如“=SUM(A$3:E$3)”。 上面的几个实例引用的都是同一工作表中的数据,如果要分析同一工作簿中多张工作表上的数据,就要使用三维引用。假如公式放在工作表Sheet1 的C6 单元格,要引用工作表Sheet2 的“A1:A6”和Sheet3 的“B2:B9”区域进行求和运算,则公式中的引用形式为“=SUM(Sheet2!A1:A6,Sheet3!B2:B9)”。也就是说三维引用中不仅包含单元格或区域引用,还要在前面加上带“!”的工作表名称。 假如你要引用的数据来自另一个工作簿,如工作簿Book1 中的SUM 函数要绝对引用工作簿Book2 中的数据,其公式为“=SUM([Book2]Sheet1! SA S1: SA S8,[Book2]Sheet2! SB S1: SB S9)”,也就是在原来单元格引用的前面加上 “[Book2]Sheet1!”。放在中括号里面的是工作簿名称,带“!”的则是其中的工作表名称。即是跨工作簿引用单元格或区域时,引用对象的前面必须用“!”作为工作表分隔符,再用中括号作为工作簿分隔符。不过三维引用的要受到较多的限制,例如不能使用数组公式等。 提示:上面介绍的是Excel 默认的引用方式,称为“A1引用样式”。如果你要计算处在“宏”内的行和列,必须使用“R1C1 引用样式”。在这种引用样式中,Excel使用“R”加“行标”和“C”加“列标”的方法指示单元格位置。启用或关闭R1C1 引用样式必须单击“工具→选项”菜单命令,打开对话框的“常规”选项卡,选中或清除“设置”下的“R1C1引用样式”选项。由于这种引用样式很少使用,限于篇幅本文不做进一步介绍。
6. 嵌套函数
除了上面介绍的情况外,函数也可以是嵌套的,即一个函数是另一个函数的参数,例如“=IF(OR(RIGHTB(E2,1)=\, RIGHTB(E2,1)=\,RIGHTB(E2,1)=\,RIGHTB(E2,1)=\,RIGHTB(E2,1)=\男\女\”。其中公式中的IF 函数使用了嵌套的RIGHTB 函数,并将后者返回的结果作为IF 的逻辑判断依据。
7. 名称和标志
为了更加直观地标识单元格或单元格区域,我们可以给它们赋予一个名称,从而在公式或函数中直接引用。例如 “B2:B46”区域存放着学生的物理成绩,求解平均分的公式一般是“=AVERAGE(B2:B46)”。在给B2:B46 区域命名为“物理分数”以后,该公式就可以变为“=AVERAGE(物理分数)”,从而使公式变得更加直观。 给一个单元格或区域命名的方法是:选中要命名的单元格或单元格区域,鼠标单击编辑栏顶端的“名称框”,在其中输入名称后回车。也可以选中要命名的单元格或单元格区域,单击“插入→名称→定义”菜单命令,在打开的“定义名称”对话框中输入名称后确定即可。如果你要删除已经命名的区域,可以按相同方法打开“定义名称”对话框,选中你要删除的名称删除即可。 由于Excel 工作表多数带有“列标志”。例如一张成绩统计表的首行通常带有“序号”、“姓名”、“数学”、“物理”等“列标志”(也可以称为字段),如果单击“工具→选项”菜单命令,在打开的对话框中单击“重新计算”选项卡,选中“工作簿选项”选项组中的“接受公式标志”选项,公式就可以直接引用“列标志”了。例如“B2:B46”区域存放着学生的物理成绩,而B1 单元格已经输入了“物理”字样,则求物理平均分的公式可以写成“=AVERAGE(物理)”。 需要特别说明的是,创建好的名称可以被所有工作表引用,而且引用时不需要在名称前面添加工作表名(这就是使用名称的主要优点),因此名称引用实际上是一种绝对引用。但是公式引用“列标志”时的限制较多,它只能在当前数据列的下方引用,不能跨越工作表引用,但是引用“列标志”的公式在一定条件下可以复制。从本质上讲,名称和标志都是单元格引用的一种方式。因为它们不是文本,使用时名称和标志都不能添加引号。
( 三)函数输入方法
对Excel 公式而言,函数是其中的主要组成部分,因此公式输入可以归结为函数输入的问题。 1.“插入函数”对话框“插入函数”对话框是Excel 输入公式的重要工具,以公式“=SUM(Sheet2!A1:A6,Sheet3!B2:B9)”为例,Excel输入该公式的具体过程是: 首先选中存放计算结果(即需要应用公式)的单元格,单击编辑栏(或工具栏)中的“fx”按钮,则表示公式开始的“=”出现在单元格和编辑栏,然后在打开的“插入函数”对话框中的“选择函数”列表找到“SUM”函数。如果你需要的函数不在里面,可以打开“或选择类别”下拉列表进行选择。最后单击“确定”按钮,打开“函数参数”对话框。 对SUM 函数而言,它可以使用从number1 开始直到number30 共30 个参数。对上面的公式来说,首先应当把光标放在对话框的“number1”框中,单击工作簿中的“Sheet2!”工作表标签,
“Sheet2!”即可自动进入其中,接着鼠标拖动选中你要引用的区域即可。接着用鼠标单击对话框的“number2”框,单击工作簿中的“Sheet3!”工作表标签,其2 名称“Sheet3!”即可自动进入其中,再按相同方法选择要引用的单元格区域即可。
上述方法的最大优点就是引用的区域很准确,特别是三维引用时不容易发生工作表或工作簿名称输入错误的问题。
2. 编辑栏输入如果你要套用某个现成公式,或者输入一些嵌套关系复杂的公式,利用编辑栏输入更加快捷。
首先选中存放计算结果的单元格;鼠标单击Excel 编辑栏,按照公式的组成顺序依次输入各个部分,公式输入完毕后,单击编辑栏中的“输入”(即“√”)按钮(或回车)即可。 手工输入时同样可以采取上面介绍的方法引用区域,以公式“=SUM(Sheet2!A1:A6,Sheet3!B2:B9)”为例,你可以先在编辑栏中输入“=SUM()”,然后将光标插入括号中间,再按上面介绍的方法操作就可以引用输入公式了。但是分隔引用之间的逗号必须用手工输入,而不能像“插入函数”对话框那样自动添加。 在《电脑报2003 年合订本附赠光盘》相应文章中,我们列出了所有Excel 2003 函数,供读者速查。
二、函数速查一览
(一)数据库函数
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) 参数:同上 3
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,Item 2为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 必须是190 4年1月1日到999 9年12月31日之间的一个日期。如果date_text 超出上述范围,则函数DATEVALUE 返回错误值#VALUE!。 如果省略参数date_text 中的年代,则函数DATEVALUE 使用电脑系统内部时钟的当前年代,且date_text 中的时间信息将被忽略。 实例:公式“=DATEVALUE(\”返回36955, DATEVALUE(\返回36948。
3.DAY
用途:返回用序列号(整数1 到31)表示的某日期的天数,用整数 1 到 31 表示。 语法:DAY(serial_number)
参数:Serial_number 是要查找的天数日期,它有多种输入方式:带引号的文本串(如\、序列号(如1900 日期系统的35825 表示 的1998 年1 月30 日),以及其他公式或函数的结果(如DATEVALUE(\。 实例:公式“=DAY(\”返回27,=DAY(35825) 返回30,=DAY(DATEVALUE(\返回25。
4.DAYS360
用途:按照一年360 天的算法(每个月30 天,一年共计12 个月),返回两日期间相差的天数。 语法:DAYS360(start_date,end_date,method) 参数:Start_date 和end_date 是用于计算期间天数的起止日期。如果start_date 在end_date 之后,则DAYS360 将返回一个负数。日期可以有多种输入方式:带引号的文本串(例如:\、序列号(例如:如果使用1900 日期系统,则35825 表示199 8年1月30 日)或其他公式或函数的结果(例如,DATEVALUE(\。 Method 是一个逻辑值,它指定了在计算中是采用欧洲方法还是美国方法。若为FALSE 或忽略,则采用美国方法(如果起始日期是一个月的31 日,则等于同月的30 日。如果终止日期是一个月的31 日,并且起始日期早于30 日,则终止日期等于下一个月的1 日,否则,终止日期等于本月的30 日)。 若为TRUE 则采用欧洲方法(无论是起始日期还是终止日期为一个月的 31 号,都将等于本月的 30 号)。 实例:公式“=DAYS360(\,\”返回1080。
5.EDATE 用途:返回指定日期(start_date)之前或之后指定月份的日期序列号。 语法:EDATE(start_date,months)参数:Start_date参数代表开始日期,它有多种输入方式:带引号的文本串(例如:\、序列号(如35825 表示1998 年1 月30 日)或其他公式或函数的结果(例如:DATEVALUE(\。Months 为在start_date 之前或之后的月份数,未来日期用正数表示,过去日期用负数表示。实例:公式“=EDATE(\,2)”返回37016 即2001 年5 月5 日,=EDATE(\,-6)返回36774 即2000 年9月5日。
6.EOMONTH
用途:返回start-date 之前或之后指定月份中最后一天的序列号。 语法:EOMONTH(start_date,months) 参数:Start_date参数代表开始日期,它有多种输入方式:带引号的文本串(如\、序列号(如1900 日期系统中的35825)或其他公式或函数的结果(如DATEVALUE(\。Month 为start_date 之前或之后的月份数,正数表示未来日期,负数表示过去日期。 实例:公式“=EOMONTH(\,2)”返回36981 即200 1年3月31 日,=EOMONTH(\,-6)返回36738 即2000 年7 月31 日。
7.HOUR
用途:返回时间值的小时数。即介于0(12:00 A.M.)到23(11:00 P.M.) 之间的一个整数。 语法:HOUR(serial_number) 参数:Serial_number 表示一个时间值,其中包含着要返回的小时数。它有多种输入方式:带引号的文本串(如\ PM\、十进制数(如0.78125 表示6:45PM)或其他公式或函数的结果(如TIMEVALUE(\PM\。实例:公式“=HOUR(\”返回15,=HOUR(0.5) 返回12 即12:0 0:00 AM,=HOUR(29747.7)返回16。
8.MINUTE
用途:返回时间值中的分钟,即介于0到59之间的一个整数。 语法:MINUTE(serial_number) 参数:Serial_number 是一个时间值,其中包含着要查找的分钟数。时间有多种输入方式:带引号的文本串(如\PM\、十进制数(如 0.78125表示6:45 PM)或其他公式或函数的结果(如TIMEVALUE(\。 实例:公式“=MINUTE(\”返回30, =MINUTE(0.06)返回26,=MINUTE(TIMEVALUE(\返回45。
9.MONTH 用途:返回以序列号表示的日期中的月份,它是介于 1(一月)和12(十二月)之间的整数。 语法:MONTH(serial_number) 参数:Serial_number 表示一个日期值,其中包含着要查找的月份。日期有多种输入方式:带引号的文本串(如 \、序列号(如表示1998 年1 月30 日的35825) 或其他公式或函数的结果(如DATEVALUE(\
等。 实例:公式“=MONTH(\”返回2,=MONTH(35825)返回1,=MONTH(DATEVALUE(\返回6。
10.NETWORKDAYS
用途:返回参数start-data 和end-data 之间完整的工作日(不包括周末和专门指定的假期)数值。
语法:NETWORKDAYS(start_date,end_date,holidays) 5 参数:Start_date 代表开始日期,End_date 代表终止日; Holidays 是表示不在工作日历中的一个或多个日期所构成的可选区域,法定假日以及其他非法定假日。此数据清单可以是包含日期的单元格区域,也可以是由代表日期的序列号所构成的数组常量。 函数中的日期有多种输入方式:带引号的文本串(如\、序列号(如使用1900 日期系统的35825)或其他公式或函数的结果(如 DATEVALUE(\。 注意:该函数只有加载“分析工具库”以后方能使用。
11.NOW
用途:返回当前日期和时间所对应的序列号。 语法:NOW() 参数:无 实例:如果正在使用的是1900 日期系统,而且计算机的内部时钟为 2001-1-28 12:53,则公式“=NOW()”返回36919.54。
12.SECOND
用途:返回时间值的秒数(为0至59 之间的一个整数)。 语法:SECOND(serial_number)参数:Serial_number 表示一个时间值,其中包含要查找的秒数。关于时间的输入方式见上文的有关内容。实例:公式“=SECOND(\”返回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),\返回“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 时间格式表示时间的文本串(如\PM\和\等)。实例:公式“=TIMEVALUE(\AM\”返回0.145833333,=TIMEVALUE(\返回0.274305556。 \\
15.TODAY
用途:返回系统当前日期的序列号。 参数:无 语法:TODAY() 实例:公式“=TODAY()”返回2001-8-28(执行公式时的系统时间)。
16.WEEKDAY 用途:返回某日期的星期数。在默认情况下,它的值为1(星期天)到7(星期六)之间的一个整数。 语法:WEEKDAY(serial_number,return_type) 参数:Serial_number 是要返回日期数的日期,它有多种输入方式:带引号的文本串(如\、序列号(如35825 表示1998 年1 月30 日) 或其他公式或函数的结果(如DATEVALUE(\。Return_type为确定返回值类型的数字,数字1 或省略则1 至7 代表星期天到数星期六,数字2 则1 至7 代表星期一到星期天,数字3则0至6代表星期一到星期天。 实例:公式“=WEEKDAY(\,2)”返回2(星期二),=WEEKDAY(\,3)返回6(星期日)。
17.WEEKNUM
用途:返回一个数字,该数字代表一年中的第几周。 语法:WEEKNUM(serial_num,return_type) 参数:Serial_num 代表一周中的日期。应使用DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。Return_type 为一数字,确定星期计算从哪一天开始。默认值为 1。