excel函数的高级应用.docx
《excel函数的高级应用.docx》由会员分享,可在线阅读,更多相关《excel函数的高级应用.docx(20页珍藏版)》请在冰豆网上搜索。
excel函数的高级应用
公式和函数是Excel最基本、最重要的应用工具,是Excel的核心,因此,应对公式和函数熟练掌握,才能在实际应用中得心应手。
2.1.1数组公式及其应用
数组公式就是可以同时进行多重计算并返回一种或多种结果的公式。
在数组公式中使用两组或多组数据称为数组参数,数组参数可以是一个数据区域,也可以是数组常量。
数组公式中的每个数组参数必须有相同数量的行和列。
2.1.1.1 数组公式的输入、编辑及删除
1.数组公式的输入
数组公式的输入步骤如下:
(1)选定单元格或单元格区域。
如果数组公式将返回一个结果,单击需要输入数组公式的单元格;如果数组公式将返回多个结果,则要选定需要输入数组公式的单元格区域。
(2)输入数组公式。
(3)同时按“Crtl+Shift+Enter”组合键,则Excel自动在公式的两边加上大括号{}。
特别要注意的是,第(3)步相当重要,只有输入公式后同时按“Crtl+Shift+Enter”组合键,系统才会把公式视为一个数组公式。
否则,如果只按Enter键,则输入的只是一个简单的公式,也只在选中的单元格区域的第1个单元格显示出一个计算结果。
在数组公式中,通常都使用单元格区域引用,但也可以直接键入数值数组,这样键入的数值数组被称为数组常量。
当不想在工作表中按单元格逐个输入数值时,可以使用这种方法。
如果要生成数组常量,必须按如下操作:
(1)直接在公式中输入数值,并用大括号“{}”括起来。
(2)不同列的数值用逗号“,”分开。
(3)不同行的数值用分号“;”分开。
Ø 输入数组常量的方法:
例如,要在单元格A1:
D1中分别输入10,20,30和40这4个数值,则可采用下述的步骤:
(1)选取单元格区域A1:
D1,如图2-1所示。
图2-1 选取单元格区域A1:
D1
(2)在公式编辑栏中输入数组公式“={10,20,30,40}”,如图2-2所示。
图2-2 在编辑栏中输入数组公式
(3)同时按Ctrl+Shift+Enter组合键,即可在单元格A1、B1、C1、D1中分别输入了10、20、30、40,如图2-3所示。
假若要在单元格A1、B1、C1、D1、A2、B2、C2、D2中分别输入10、20、30、40、50、60、70、80,则可以采用下述的方法:
图2-3 同时按Ctrl+Shift+Enter组合键,得到数组常量
(1)选取单元格区域A1:
D2,如图2-4所示。
图2-4 选取单元格区域A1:
D2
(2)在编辑栏中输入公式“={10,20,30,40;50,60,70,80}”,如图2-5所示。
图2-5 在编辑栏中输入数组公式
(3)按Ctrl+Shift+Enter组合键,就在单元格A1、B1、C1、D1、A2、B2、C2、D2中分别输入了10、20、30、40和50、60、70、80,如图2-6所示。
图2-6 同时按Ctrl+Shift+Enter组合键,得到数组常量
Ø 输入公式数组的方法
例如,在单元格A3:
D3中均有相同的计算公式,它们分别为单元格A1:
D1与单元格A2:
D2中数据的和,即单元格A3中的公式为“=A1+A2”,单元格B3中的公式为“=B1+B2”,…,则可以采用数组公式的方法输入公式,方法如下:
(1)选取单元格区域A3:
D3,如图2-7所示。
(2)在公式编辑栏中输入数组公式“=A1:
D1+A2:
D2”,如图2-8所示。
图2-7 选取单元格区域A3:
D3
图2-8 在编辑栏中输入数组公式
(3)同时按Ctrl+Shift+Enter组合键,即可在单元格A3:
D3中得到数组公式“=A1:
D1+A2:
D2”,如图2-9所示。
图2-9 同时按Ctrl+Shift+Enter组合键,得到数组公式
2.编辑数组公式
数组公式的特征之一就是不能单独编辑、清除或移动数组公式所涉及的单元格区域中的某一个单元格。
若在数组公式输入完毕后发现错误需要修改,则需要按以下步骤进行:
(1)在数组区域中单击任一单元格。
(2)单击公式编辑栏,当编辑栏被激活时,大括号“{}”在数组公式中消失。
(3)编辑数组公式内容。
(4)修改完毕后,按“Crtl+Shift+Enter”组合键。
要特别注意不要忘记这一步。
3.删除数组公式
删除数组公式的步骤是:
首先选定存放数组公式的所有单元格,然后按Delete键。
2.1.1.2数组公式的应用
1.用数组公式计算两个数据区域的乘积
【例2-1】如图2-10所示,已经知道12个月的销售量和产品单价,则可以利用数组公式计算每个月的销售额,步骤如下:
图2-10 用数组公式计算销售额
(1)选取单元格区域B4:
M4。
(2)输入公式“=B2:
M2*B3:
M3”。
(3)按“Crtl+Shift+Enter”组合键。
如果需要计算12个月的月平均销售额,可在单元格B5中输入公式“=AVERAGE(B2:
M2*B3:
M3)”,然后按“Crtl+Shift+Enter”组合键即可,如图2-10所示。
在数组公式中,也可以将某一常量与数组公式进行加、减、乘、除,也可以对数组公式进行乘幂、开方等运算。
例如在图2-10中,每月的单价相同,故我们也可以在单元格B4:
M4中输入公式“=B2:
M2*28”,然后按“Crtl+Shift+Enter”组合键;在单元格B5中输入公式“=AVERAGE(B2:
M2*28)”,然后按“Crtl+Shift+Enter”组合键。
在使用数组公式计算时,最好将不同的单元格区域定义不同的名称,如在图2-10中,将单元格区域B2:
M2定义名称为“销售量”,单元格区域B3:
M3定义名称为“单价”,则各月的销售额计算公式为“=销售量*单价”,月平均销售额计算公式为“=AVERAGE(销售量*单价)”,这样不容易出错。
2.用数组公式计算多个数据区域的和
如果需要把多个对应的行或列数据进行相加或相减的运算,并得出与之对应的一行或一列数据时,也可以使用数组公式来完成。
【例2-2】某企业2002年销售的3种产品的有关资料如图2-11所示,则可以利用数组公式计算该企业2002年的总销售额,方法如下:
图2-11 某企业的月销售总额计算
(1)选取单元格区域C8:
N8。
(2)输入公式“=C2:
N2*C3:
N3+C4:
N4*C5:
N5+C6:
N6*C7:
N7”。
(3)按“Crtl+Shift+Enter”组合键。
3.用数组公式同时对多个数据区域进行相同的计算
【例2-3】某公司对现有三种商品实施降价销售,产品原价如图2-12所示,降价幅度为20%,则可以利用数组公式进行计算,步骤如下:
图2-12 产品降价计算
(1)选取单元格区域G3:
I8。
(2)输入公式“=B3:
D8*(1-20%)”。
(3)按Crtl+Shift+Enter组合键。
此外,当对结构相同的不同工作表数据进行合并汇总处理时,利用上述方法也将是非常方便的。
有关不同工作表单元格的引用可参阅第1章的有关内容,关于数据的合并计算可参阅本章2.3.5节的内容。
2.1.2 常用函数及其应用
在第1章中介绍了一些有关函数的基本知识,本节对在财务管理中常用的一般函数应用进行说明,其他有关的专门财务函数将在以后的有关章节中分别予以介绍。
2.1.2.1 SUM函数、SUMIF函数和SUMPRODUCT函数
在财务管理中,应用最多的是求和函数。
求和函数有三个:
无条件求和SUM函数、条件求和SUMIF函数和多组数据相乘求和SUMPRODUCT函数。
1.无条件求和SUM函数
该函数是求30个以内参数的和。
公式为
=SUM(参数1,参数2,…,参数N)
当对某一行或某一列的连续数据进行求和时,还可以使用工具栏中的自动求和按钮
。
例如,在例2-1中,求全年的销售量,则可以单击单元格N2,然后再单击求和按钮
,按回车键即可,如图2-13所示。
图2-13 自动求和
2.条件求和SUMIF函数
SUMIF函数的功能是根据指定条件对若干单元格求和,公式为
=SUMIF(range,criteria,sum_range)
式中 range—用于条件判断的单元格区域;
criteria—确定哪些单元格将被相加求和的条件,其形式可以为数字、表达式或文本;
sum_range—需要求和的实际单元格。
只有当range中的相应单元格满足条件时,才对sum_range中的单元格求和。
如果省略sum_range,则直接对range中的单元格求和。
利用这个函数进行分类汇总是很有用的。
【例2-4】某商场2月份销售的家电流水记录如图2-14所示,则在单元格I3中输入公式“=SUMIF(C3:
C10,211,F3:
F10)”,单元格I4中输入公式“=SUMIF(C3:
C10,215,F3:
F10)”,在单元格I5中输入公式“=SUMIF(C3:
C10,212,F3:
F10)”,单元格I6中输入公式“=SUMIF(C3:
C10,220,F3:
F10)”,即可得到分类销售额汇总表。
图2-14 商品销售额分类汇总
SUMIF函数的对话框如图2-15所示。
图2-15 SUMIF函数对话框
当需要分类汇总的数据很大时,利用SUMIF函数是很方便的。
3.SUMPRODUCT函数
SUMPRODUCT函数的功能是在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。
公式为
=SUMPRODUCT(array1,array2,array3,…)
式中,array1,array2,array3,...为1至30个数组。
需注意的是,数组参数必须具有相同的维数,否则,函数SUMPRODUCT将返回错误值#VALUE!
。
对于非数值型的数组元素将作为0处理。
例如,在例2-2中,要计算2002年产品A的销售总额,可在任一单元格(比如O2)中输入公式“=SUMPRODUCT(C2:
N2,C3:
N3)”即可。
2.1.2.2AVERAGE函数
AVERAGE函数的功能是计算给定参数的算术平均值。
公式为
=AVERAGE(参数1,参数2,…,参数N)
函数中的参数可以是数字,或者是涉及数字的名称、数组或引用。
如果数组或单元格引用参数中有文字、逻辑值或空单元格,则忽略其值。
但是,如果单元格包含零值则计算在内。
AVERAGE函数的使用方法与SUM函数相同,此处不再介绍。
2.1.2.3 MIN函数和MAX函数
MIN函数的功能是给定参数表中的最小值,MAX函数的功能是给定参数表中的最大值。
公式为
=MIN(参数1,参数2,…,参数N)
=MAX(参数1,参数2,…,参数N)
函数中的参数可以是数字、空白单元格、逻辑值或表示数值的文字串。
例如,MIN(3,5,12,32)=3;MAX(3,5,12,32)=32。
2.1.2.4 COUNT函数和COUNTIF函数
COUNT函数的功能是计算给定区域内数值型参数的数目。
公式为
=COUNT(参数1,参数2,…,参数N)
COUNTIF函数的功能是计算给定区域内满足特定条件的单元格的数目。
公式为
=COUNTIF(range,criteria)
式中 range—需要计算其中满足条件的单元格数目的单元格区域;
criteria—确定哪些单元格将被计算在内的条件,其形式可以为数字、表达式或文本。
COUNT函数和COUNTIF函数在数据汇总统计分析中是非常有用的函数。
2.1.2.5 IF函数
IF函数也称条件函数,它根据参数条件的真假,返回不同的结果。
在实践中,经常使用函数IF对数值和公式进行条件检测。
公式为
=IF(logical_test,value_if_true,value_if_false)
式中 logical_test—条件表达式,其结果要么为TRUE,要么为FALSE,它可使用任何比较运算符;
value_if_true—logical_test为TRUE时返回的值;
value_if_false—logical_test为FALSE时返回的值。
IF函数在财务管理中具有非常广泛的应用。
【例2-5】例如,某企业对各个销售部门的销售业绩进行评价,评价标准及各个销售部门在2002年的销售业绩汇总如图2-16所示,评价计算步骤如下:
图2-16 销售部门业绩评价
(1)选定单元格区域C3:
C12。
(2)直接输入以下公式:
“=IF(B3:
B12<100000,"差",IF(B3:
B12<200000,"一般",IF(B3:
B12<300000,"好",IF(B3:
B12<400000,"较好","很好"))))”。
(3)按“Crtl+Shift+Enter”组合键。
则各个销售部门的销售业绩评价结果就显示在单元格域C3:
C12中。
也可以直接在单元格C3中输入公式“=IF(B3<100000,"差",IF(B3<200000,"一般",IF(B3<300000,"好",IF(B3<400000,"较好","很好"))))”后,将其向下填充复制到C4~C12单元格中。
2.1.2.6 AND函数、OR函数和NOT函数
这3个函数的用法如下:
=AND(条件1,条件2,…,条件N)
=OR(条件1,条件2,…,条件N)
=NOT(条件)
AND函数表示逻辑与,当所有条件都满足时(即所有参数的逻辑值都为真时),AND函数返回TRUE,否则,只要有一个条件不满足即返回FALSE。
OR函数表示逻辑或,只要有一个条件满足时,OR函数返回TRUE,只有当所有条件都不满足时才返回FALSE。
NOT函数只有一个逻辑参数,它可以计算出TRUE或FALSE的逻辑值或逻辑表达式。
如果逻辑值为FALSE,函数NOT返回TRUE;如果逻辑值为TRUE,函数NOT返回FALSE。
这3个函数一般与IF函数结合使用。
【例2-6】某企业根据各销售部门的销售额及销售费用确定奖金提成比例及提取额,若销售额大于300000元且销售费用占销售额的比例不超过1%,则奖金提取比例为15%,否则为10%,则计算过程如下(如图2-17所示):
(1)在单元格D3中输入公式“=IF(AND(B3>300000,C3/B3<1%),15%,10%)”,将其向下填充复制到D4~C10单元格中。
(2)选取单元格区域E3:
E10,输入公式“=B3:
B10*D3:
D10”,按“Crtl+Shift+Enter”组合键。
则各销售部门的销售奖金提成比例及奖金提取额如图2-17所示。
图2-17 奖金提成比例及提取额的计算
2.1.2.7LOOKUP函数、VLOOKUP函数和HLOOKUP函数
1.LOOKUP函数
LOOKUP函数的功能是返回向量(单行区域或单列区域)或数组中的数值。
函数LOOKUP有两种语法形式:
向量和数组。
函数LOOKUP的向量形式是在单行区域或单列区域(向量)中查找数值,然后返回第二个单行区域或单列区域中相同位置的数值;函数LOOKUP的数组形式在数组的第一行或第一列查找指定的数值,然后返回数组的最后一行或最后一列中相同位置的数值。
(1)向量形式:
公式为
=LOOKUP(lookup_value,lookup_vector,result_vector)
式中 lookup_value—函数LOOKUP在第一个向量中所要查找的数值,它可以为数字、文本、逻辑值或包含数值的名称或引用;
lookup_vector—只包含一行或一列的区域lookup_vector的数值可以为文本、数字或逻辑值;
result_vector—为只包含一行或一列的区域其大小必须与lookup_vector相同。
(2)数组形式:
公式为
=LOOKUP(lookup_value,array)
式中 array—包含文本、数字或逻辑值的单元格区域或数组它的值用于与lookup_value进行比较。
例如:
LOOKUP(5.2,{4.2,5,7,9,10})=5。
注意:
lookup_vector的数值必须按升序排列,否则函数LOOKUP不能返回正确的结果。
文本不区分大小写。
如果函数LOOKUP找不到lookup_value,则查找lookup_vector中小于或等于lookup_value的最大数值。
如果lookup_value小于lookup_vector中的最小值,函数LOOKUP返回错误值#N/A。
2.VLOOKUP函数
VLOOKUP函数的功能是在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。
公式为
=VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
式中 lookup_value—需要在数据表第一列中查找的数值,lookup_value可以为数值、引用或文字串;
table_array—需要在其中查找数据的数据表,可以使用对区域或区域名称的引用,例如数据库或数据清单;
如果range_lookup为TRUE,则table_array的第一列中的数值必须按升序排列,否则函数VLOOKUP不能返回正确的数值,如果range_lookup为FALSE,table_array不必进行排序。
table_array的第一列中的数值可以为文本、数字或逻辑值,且不区分文本的大小写;
col_index_num—table_array中待返回的匹配值的列序号;
col_index_num为1时,返回table_array第一列中的数值;col_index_num为2时,返回table_array第二列中的数值,以此类推。
如果col_index_num小于1,函数VLOOKUP返回错误值#VALUE!
;如果col_index_num大于table_array的列数,函数VLOOKUP返回错误值#REF!
。
range_lookup—逻辑值,指明函数VLOOKUP返回时是精确匹配还是近似匹配。
如果其为TRUE或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于lookup_value的最大数值;如果range_value为FALSE,函数VLOOKUP将返回精确匹配值。
如果找不到,则返回错误值#N/A。
VLOOKUP函数在财务管理与分析中是一个经常用到的函数,因此熟悉它将会带来很大便利。
在以后的有关章节中会经常用到它。
例如,假设单元格A1:
A4中的数据分别为1、30、80和90,单元格B1:
B4中的数据分别为400、500、600和700,则有:
VLOOKUP(5,A1:
B4,2)=400,VLOOKUP(30,A1:
B4,2)=500,VLOOKUP(79,A1:
B4,2)=500,VLOOKUP(92,A1:
B4,2)=700。
3.HLOOKUP函数
HLOOKUP函数的功能是从表格或数值数组的首行查找指定的数值,并由此返回表格或数组当前列中指定行处的数值。
公式为
=(lookup_value,table_array,row_index_num,range_lookup)
式中 row_index_num—table_array中待返回的匹配值的行序号。
row_index_num为1时,返回table_array第一行的数值,row_index_num为2时,返回table_array第二行的数值,以此类推。
如果row_index_num小于1,函数HLOOKUP返回错误值#VALUE!
;如果row_index_num大于table_array的行数,函数HLOOKUP返回错误值#REF!
。
式中的其他参数含义参阅VLOOKUP函数。
HLOOKUP函数与VLOOKUP函数的区别是:
当比较值位于数据表的首行,并且要查找下面给定行中的数据时,使用函数HLOOKUP;当比较值位于要进行数据查找的左边一列时,使用函数VLOOKUP。
VLOOKUP函数在首列进行检索,先得到的是行号,然后根据col_index_num参数指定的列标返回指定的单元格数值;而HLOOKUP函数在首行进行检索,先得到的是列标,然后根据row_index_num参数指定的行号返回指定的单元格数值。
2.1.2.8 MATCH函数
MATCH函数的功能是返回在指定方式下与指定数值匹配的数组中元素的相应位置。
公式为:
=MATCH(lookup_value,lookup_array,match_type)
式中 lookup_value—需要在数据表中查找的数值,可以是数值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用;
lookup_array—可能包含所要查找的数值的连续单元格区域,可以是数组或数组引用;
match_type—数字-1、0或1,它指明Excel如何在lookup_array中查找lookup_value。
查找方式如下:
当match_type为-1时,lookup_array必须按降序排列,函数MATCH查找大于或等于lookup_value的最小数值;当match_type为0时,lookup_array可以按任何顺序排列,函数MATCH查找等于lookup_value的第一个数值;当match_type为1时,lookup_array必须按升序排列,函数MATCH查找小于或等于lookup_value的最大数值。
例如,MATCH(12,{23,43,12,55},0)=3,MATCH(40,{23,43,12,55})=1。
2.1.2.9INDEX函数
INDEX函数的功能是返回表格或区域中的数值或对数值的引用。
INDEX函数有以下两种形式:
1.返回数组中指定单元格或单元格数组的数值。
公式为
=INDEX(array,row_num,column_num)
式中 array—单元格区域或数组常数;
row_num—数组中某行的行序号,函数从该行返回数值。
如果省略row_num,则必须有column_num;
column_num—数组中某列的列序号,函数从该列返回数值。
如果省略column_num,则必须有row_num。
需要注意的是:
如果同时使用row_num和column_num,函数INDEX返回row_num和column_num交叉处的单元格的数值。
如果数组只包含一行或一列,则相对应的参数row_num或column_num为可选。
如果数组有多行和多列,但只使用row_num或column_num,函数INDEX返回数组中的整行或整列,且返回值也为数组。
如果将row_num或column_num设置为0,函数INDEX则分别返回整个列或行的数组数值。
如果需要使用以数组形式返回的数值时,请在一个水平单元格区域中将函数INDEX作为数组公式输入。
此外,row_num和column_num必须指向array中的某一单元格,否则,函数INDEX返回错误值#REF!
。
例如:
INDEX({1,2;3,4},2,2)=4。
如果作为数组公式输入,则:
INDEX({1,2;3,4},0,2)={2;4}
2.返回引用中指定单元格。
公式为
INDEX(reference,row_num,column_num,area_num)
式中 reference—对一个或多个单元格区域的引用;
如果为引用输入一个不连续的选定区域,必须用括号括起来。
如果引用中的每个区