分享

EXCEL函数实例活用100谈》读书笔记

 放飞心情ay 2009-08-03

第一章 函数基础知识

1、按shift+F3是插入弹出“插入函数”对话框的快捷键。

2、当在单元格中键入“=”号时,在“名称框”中会显示出常用的函数列表,可以选择所需要的。

3、在单元格中输入公式时,当键入函数名称时,或者键入函数名称和左括号时,可按ctrl+shift+A组合键显示函数的参数说明。

4、如果在单元格中输入的公式返回错误的信息,想了解这个错误信息的含义,如“#NAME”,可以选中此单元格,鼠标光标移动到紧挨此单元格左侧的智能标记图标上,就会出现“公式中包含不可识别的文本”之类的错误信息说明。

 

第二章 数学和三角函数

1SUM函数的参数不能超过30个,如果需要30个以上参数时,可以在引用的参数两边多加一对括号,这样就突破了这个限制。如:计算A1A32的和可以用公式:

=SUM((A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32))

 

2AVERAGE函数是求平均值的函数,如果参数引用中包含0值,则也会算在内,可以使用下面的公式实现求平均数时,只对不等于0的值求平均数:

用数组公式: {=AVERAGE(IF(A1:A10<>0,A1:A10))}

提示:计算时会先得到一个含有数值和逻辑值的数组,再对这个数组求平均,由于AVERAGE函数会忽略逻辑值,所以就只对不等于0的数值求平均数。

 

3INT()是向下取整函数。即向数轴向左的方向取整。

例如:=INT(9.9)  结果是 9

         =INT(-9.9) 结果是 -10

注意INT()函数和TRUNC()函数的区别。

 

4TRUNC(数值或单元格引用,指定取整精度)函数是取整函数,且是真正的取整函数,即截取数字的整数部分,正数、负数同样对待。

如:=TRUNC(8.4) 结果是8

       =TRUNC(-8.4) 结果是-8 ,而如果是=INT(-8.4) 则结果就是-9

注意:

1TRUNC()函数和INT()函数的区别。

2)取整精度默认为0,也可以指定,如: =TRUNC4.867,2 结果是4.86

=TRUNC(-9.2389,3) 结果是-9.238

 

5CEILING(要四舍五入的数值,是需要四舍五入的乘数)函数

用法:此函数是将第一个参数向上舍入(沿绝对值增大的方向)为最接近的第二个参数的倍数。

注意:第一个参数和第二个参数的正负号必须统一;无论数字符号如何,都按远离 0 的方向向上舍入;最终结果肯定是第2个参数的整数倍。

1=CEILING(0.234, 0.01)  结果是将0.234向上舍入到最接近的0.0124倍,即0.01*24等于0.24,0.234向上舍入到0.24

2=CEILING(5.7,4)  结果是将5.7舍入到42倍,即4*2等于85.7向上舍入到8。而不能是41倍,因为4*1等于4,而4小于5.7

3=CEILING(4.42,0.1) 结果是将4.42舍入到0.145倍,即0.1*45等于4.54,42向上舍入到4.5

4=CEILING(1.5, 0.1) 结果是1.5,因为1.5已经是0.115倍了,所以保持不变。

 

6COMBIN(对象的总数量,为每一组合中对象的数量)

用法:求数学当中的组合数。

注意:第2个参数应当小于等于第1个参数;两个参数都必须大于等于0

1:求从8个对象中取2个对象进行的组合数

=COMBIN(8,2)  结果是28

2:求从4个对象中取3个对象的组合数

=COMBIN(4,3)  结果是4

 

7、删除单元格中文本中的空格符,可以用=SUBSTITUTEText,” ”,””)函数,但是文本中含有ASCII码为160的空格符,公式要变为: =SUBSTITUTE(SUBSTITUTE(Text,” ”,””),CHAR(160),””)

 

8、删除空白行的一种方法。

选中要操作的区域,执行“编辑”/“定位”/“定位条件”/选“空值”,“确定”后即可将选中区域中的空白单元格选中,再执行“编辑”/“删除”/“整行”即可。

注意:此操作要确保其他非空行中的所有单元格内均有数据,否则会出现误删除记录的现象。

 

9INDIRECT(引用的文本,a1)函数

注意:

1)如果引用的文本是对另一个工作簿的引用,则该工作簿必须被打开,否则函数返回#REF

2a1参数是一个逻辑值,表示引用类型是A1引用样式还是R1C1引用样式,为TRUE或省略时表示A1引用样式

 

10EXP(number)函数计算enumber次幂。其中e2.71828182845904

1exp(1) 结果是2.71828182845904,表示e1次幂

2exp(2) 结果是 7.389056099,表示e2次幂

 

第三章 统计函数

11MAX()函数和MIN()函数的参数最多为30个。

12、计算指定区域的最大值。

比如数据在A1A10,计算此区域中的最大值

方法一: =MAX(a1:a10)

方法二: =SMALL(A1:A10,COUNTA(A1:A10))

注意:MAX函数的参数引用如果是逻辑值、文本、空白单元格,则将被忽略。如果要求参数引用不能忽略逻辑值、文本,则要用MAXA()函数。

13RAND()函数返回01之间的随即数,每次工作表计算都返回一个新的值。

要生成ab之间的随机实数,可以用公式=RAND()*b-a+a

 

14ROUNDUP(数值,四舍五入后的数字的位数)函数将指定数值返回为向上舍入的数值。

1=roundup(4.982,1)  结果为5.0

2=roundup(3.14159,3) 结果为3.142

3=ROUNDUP(-3.14159, 1)  结果为-3.2

注意:这里的向上舍入指远离0值。

 

15FREQUENCY()函数

语法:

FREQUENCY(数据源,分段点)

结果:

以分段点为间隔,统计数据源值在各段出现的频数

其中:

数据源:为对一行/一列单元格或一个连续的单元格区域的引用;也可以是对一个单元格引用。

分段点:为对一行/一列单元格或一个连续的单元格区域的引用;也可以是对一个单元格引用。

 

数据引用支持跨工作表、工作簿

公式输入方法:

以多单元格数组方式输入,且必须是纵向数组;

所选单元格数比分段点个数大1,以统计数据源大于分段点最大值的频数

 

16RANK()函数

RANK()函数对重复数的排位是相同的,如果两个相同的数值出现时,它们的排名是相同的,比如都是第5位,而 不会是第5位和第6位,这里的第6位将被忽略,而直接跳到第7位。

 

17、利用SMALL(区域,COUNT(区域))函数可以统计区域中的最大值。

注意:SMALL()函数忽略被统计区域中的空白单元格、逻辑值、文本。

18FORECAST()函数是根据已有的数值来计算或预测未来值。

19TRIMMEAN(数组或引用,要去除的数据点比例)函数

例如:左边的示例,(1)求A1A12中去掉一个最高分、去掉一个最低分,然后求平均值:

常规做法是:

=(SUM(A1:A12)-MAX(A1:A12)-MIN(A1:A12))/(COUNT(A1:A12)-2)

而利用TRIMMEAN函数就方便多了,因为一个最高和一个最低是2个数,占总个数12的百分比是2/12,即1/6,所以公式可以写成:

=TRIMMEAN(A1:A12,1/6)

结果和上面的公式相同。

(2)如果要去掉两个最好分和两个最低分,对剩下数求平均值,则可以直接用公式:

=TRIMMEAN(A1:A12,4/12)

 

20DCOUNT()函数

返回数据库或数据清单的列中满足指定条件并且包含数字的单元格个数。

 

21DMAX(数据列表或单元格区域,要统计的列名称或列序号,条件)

例如:


上海员工原工资总数是:=SUMIF(E3:E18,"上海",G3:G18)

上海员工原工资最高的是:=DMAX(B2:H18,"原工资",E20:E21)

也可以用数组公式:{=MAX((E3:E18="上海")*(G3:G18))}

上海员工原工资最低的是:=DMIN(B2:H18,G2,E20:E21)

       也可以用数组公式:{=MIN(IF(((E3:E18="上海")*(G3:G18))=0,FALSE,(E3:E18="上海")*(G3:G18)))}

提示:加这句IF(((E3:E18="上海")*(G3:G18))=0,FALSE是利用MIN()函数忽略逻辑值的的原理。

 

22、求众数函数MODE()

众数即出现频率最高的数值。

如下图示例:


A1A12中出现频率最高数值可以用公式 =mode(a1:a12)  结果是6

注意:MODE参数中的数组或引用中的文本、空白单元格、逻辑值将被忽略,但含有零值的单元格将被计算在内,解决的方法如下:

例如:要统计A1A12中出现频率最高的数值,但零值不计算在内:

用数组公式 {=MODE(IF(A1:A12=0,FALSE,A1:A12))} 即利用了MODE函数忽略逻辑值的原理。

 

3、求几何平均数GEOMEAN()函数

几何平均数的计算公式如下:

提示:可以用公式 =product(区域)^(1/count(区域)) 代替GEOMEAN()函数。

 

第四章 日期与时间函数

1、求两个日期之间的天数差。

假设在A1填入2006-12-1,A2填入2006-12-31,则公式:Datedif(a1,a2,”d”)即可。

当然最简单的方法是直接用公式: =a2-a1即可。

 

2DATE(年,月,日)函数

参数中的年可以为14位数值默认情况下EXCEL使用1900日期系统:

1)如果 year 位于 0(零)到 1899(含)之间,则 Excel 会将该值加上 1900,再计算年份。例如,DATE(100,1,2) 将返回 2000 (1900+100) 1 2 日。

2)如果 year 位于 1900 9999(含)之间,则 Excel 将使用该数值作为年份。例如,DATE(2000,1,2) 将返回 2000 1 2 日。

3)如果 year 小于 0 或大于等于 10000,则 Excel 将返回错误值 #NUM!

 

第五章 文本和数据函数

1CELL(信息类型,引用)

函数返回某一个引用区域的左上角的单元格格式、位置或内容等信息。

如果“引用”忽略,则返回最后更改的单元格所对应的信息。

如:=mid(CELL(“filename”),find”[“, CELL(“filename”)+1255

返回最后修改的单元格所在的工作表,而如果想返回当前单元格所在工作表应该用:

=MID(CELL("filename",A1),FIND(")",CELL("filename",A1))+1,255)

 

2CELL()、MID()、LEFT()、RIGHT()等函数

=CELL("filename")  '获取当前工作簿的路径、文件名、工作簿名称

=LEFT(CELL("filename"),FIND("[",CELL("filename"))-1) ‘获取路径

=MID(CELL("filename"),FIND("[",CELL("filename"))+1,FIND("]",CELL("filename"))-FIND("[",CELL("filename")]-1)   ‘获取文件名

=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND(")",CELL("filename"))) ’获取当前工作表名称

 

3DOLLAR()函数和RMB()函数

DOLLAR()函数可以在数值前添加美元标识$

RMB()函数可以在数值前添加人民币标识¥

注意:使用“格式”菜单中的“单元格”命令来设置包含数字的单元格的格式与使用 DOLLAR 函数直接设置数字的格式之间的区别在于:DOLLAR 函数将结果转换为文本,而使用“单元格”命令设置格式的数字仍为数字。但可以继续在公式中使用由 DOLLAR 函数设置了格式的数字,因为 Microsoft Excel 在计算公式时会将以文本值输入的数字转换为数字。

 

4PHONETIC()函数

要在EXCEL中的汉字添加拼音,按以下步骤操作:

选中要设置拼音的单元格区域,执行“格式”/“拼音信息”/“显示或隐藏”,使输入拼音的区域显示出来,再执行“格式”/“拼音信息”/“编辑”,就可以在单元格的上半部分输入相应的拼音了。

       但一般不建议这样做,因为无法输入带声调的拼音,可以先在WORD中输入相应汉字,选中汉字并执行“格式”/“中文版式”/“拼音指南”,打开“拼音指南”对话框,单击“组合”按钮,将拼音字符组合在一起,选中拼音字符串并按CTRL+C,将拼音字符串复制下来,切换到EXCEL中,将带声调的拼音字符串粘贴到EXCEL中要编辑拼音的上半部空白处即可。如果要对拼音做调整,可以依次单击“格式”/“拼音信息”/“设置”。

       如果要将单元格中的拼音字符串提取出来,可以用PHONETIC()函数,假设含有汉语拼音的字符串在A1单元格,则在C1输入公式=PHONETICA1)即可。

提示:如果用PHONETIC()函数提取出来的拼音信息含有汉字,解决的方法是手工清除源单元格中汉字之间的空格即可。

如果PHONETIC()函数的参数为单元格区域,则返回单元格区域左上角单元格中的拼音字符串。

 

5、如何清除单元格中用ALT+回车键进行的回车换行符?

可以按以下步骤操作:

编辑/替换,在“查找内容”框中键入 ALT键的同时,从小键盘输入10这两个数值,输入完毕后,查找框中不会出现什么内容,然后直接单击“全部替换”按钮,即可将所有通过ALT+回车组合产生的换行符删除了。

6MID(文本,开始位置,字符数)函数

用途:返回文本字符串从指定位置开始的特定数目的字符。

注意:

1)如果 开始位置 大于文本长度,则 MID 返回空文本 ("")

2)如果 开始位置 小于文本长度,但 开始位置  加上 字符数 超过了文本的长度,则 MID 只返回最多到文本末尾的字符。

3)如果 开始位置  小于 1,则 MID 返回错误值 #VALUE!

4)如果 字符数 是负数,则 MID 返回错误值 #VALUE!

7PROPER(文本)函数

用途:将文本字符串的首字母或任何非字母字符之后的首字母转换成大写,而将其余字母转换成小写。

8ASC()函数

用途:将全角(双字节)字符变为半角(单字节)字符。

9WIDECHAR()函数

用途:将字符串中的半角(单字节)字符变为全角(双字节)字符。

 

第七章 逻辑函数

1、公历纪年中如何判断某年份是否为闰年。

公历纪年中闰年的判断方法是:如果年份能被400整除或者年份能被4整除但却不能被100整除,则此年份为闰年,否则此年份为平年。

根据此判断方法,在EXCEL中可以编公式判断某年份是否为闰年:

假设在A1单元格存放年份,则在B1单元格写公式:

=IF(OR(MOD(A1,400)=0,AND(MOD(A1,4)=0,MOD(A1,100)<>0)),"闰年","平年")

 

也可以将此功能做成自定义函数,方便以后调用:

Function isLeapYear(year As Integer) As Boolean '判断某年份是否为闰年

    isLeapYear = (year Mod 400 = 0) Or ((year Mod 4 = 0) And (year Mod 100 <> 0))

End Function

调用时,假设年份在A1,在B1单元格输入 =isleapyear(A1) 返回结果为TRUE表示是闰年,返回为FALSE表示不是闰年

 

2、中国式排名的方法

使用RANK对区域排名时,如果出现相同的数据时,排名是按1134557…这样的形式,请问,如何才能实现依然按1123445…这样的顺序排名?

比如:

B列为销售数量,C列是用RANK()函数做的排名,现在想实现D列式的排名,可以在D2单元格输入数组公式:

=SUM(IF(B$2:B$9>B2,1/COUNTIF(B$2:B$9,B$2:B$9),""))+1

输入完毕后按CTRL+SHIFT+回车 表示作为数组公式输入

然后将D2公式向下拖动复制到D9即可。

 

第八章 查找和引用函数

1、如何禁止在单元格输入数据时出现空格?

可以通过数据有效性来实现。比如以在A列输入数值并禁止输入空格为例,具体方法是:

选中A列,执行“数据”/“有效性”/在“设置”选项卡的“允许”下拉框中选择“自定义”,在下面的公式框中输入公式 =ISERROR(FIND(" ",A1))  ,然后可以在“出错警告”选项卡里输入出现错误时弹出的自定义提示信息。

 

2ISNONTEXTvalue)函数

如果value的值不是文本,则此函数返回TRUE,如果value值引用的单元格为空白单元格时,函数返回TRUE

 

3、根据指定的日期,判断其所属月份的上旬、中旬、下旬。

如图示例:根据C2单元格的日期判断是上旬、中旬、下旬。可以用LOOKUP函数和DAY()函数,在D2单元格输入公式:=LOOKUP(DAY(C2),{1,11,21},{"上旬","中旬","下旬"})

比如C4单元格的2005-12-19DAYC4)结果为19,然后在{1,11,21}里查找19,因为没找到19,所以查找小于等于19的值,结果找到11,最后返回11对应的数组{"上旬","中旬","下旬"}中的第2个值“中旬”。

 

4MAX()函数的参数如果是逻辑值、文本、空白单元格,则将被忽略。如果要求参数引用不能忽略逻辑值、文本,则要用MAXA()函数。

例如:

统计A1A12中最后出现数值为65的单元格所在行号,结果是11

{=MAX(IF(A1:A12=65,ROW(A1:A12),""))}

公式中间过程IF(A1:A12=65,ROW(A1:A12),"")的结果是"",2, "","","",6, "","","","",11, ""

然后对这个数组求最大值,因为MAX()忽略空白字符串,所以2611中最大值是11

 

5、在单元格区域生成指定目录下的文件列表。

利用EXCEL中的宏表函数FILES()可以生成指定目录下的文件列表,结果是一个水平文本数组。

例如:想在A列填充“D:\mp3音乐\书香音乐\河月”文件夹下的文件名列表,可以执行“插入”/“名称”/“定义”,在名称框中填写FILELISTS,在引用位置填=FILES("D:\mp3音乐\书香音乐\河月\*.*") ,然后再添加一个名称ML,引用位置填写=TRANSPOSE(FILELISTS)

现在关闭定义名称对话框,选中A列,输入ML ,然后按CTRL+SHIFT+回车结束输入。

这样会在A列显示出指定目录下的文件名列表,A列出现的#N/A表示的是选中的单元格个数大于文件名列表的个数。

 

6MOD(被除数,除数)函数

可以返回两数相除的余数,结果的正负号与除数相同。

MOD()函数可以用INT函数取代: mod(n,d)=n-d*int(n/d)

 

7、  ROW(引用)函数

返回引用的行号,如果省略“引用”,则对ROW()所在单元格的引用,如果“引用”是一个单元格区域,则结果是一个垂直

 

第九章 工程和数据库函数

1、单位换算函数CONVERT(引用单元格,原单位,新单位)

例如:单元格A1的数值单位是“磅”,现在想转换成单位“公斤”,则公式:

=CONVERT(A1,"lbm","kg")

例如:单元格A2是“英尺”数据,单元格B2是“英寸”数据,现在想将A2B2数据同时转换成“米”,并求和,则C2填公式:

=CONVERT(A2,"ft","m")+CONVERT(B2,"in","m")

提示:如果结果为#NAME,则要先加载分析工具库,步骤:工具/加载宏/“分析工具库”打勾。

 

2、用DSUM()函数实现多条件求和

例如:下图是一份原料采购清单,现在想对采购时间在2005-12-10日以前(含2005-12-10日),并且商品名称为显示器的采购金额进行求和,首先要在E2F3单元格建立条件区域,接着在G3单元格输入公式:

=DSUM(A2:D20,"金额",E2:F3)        其中A2D20是整个数据区域,“金额”是要计算的列字段标题,必须要与数据区域的列字段标题保持一致,E2F3是条件区域,条件区域也要有字段标题。

 

 

 

 

 

 

 

                                        飓 风

                                    200718

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多