excel中自定义函数实例剖析
一、认识vba
在介绍自定义函数的具体使用之前,不得不先介绍一下vba,原因很简单,自定义函数就是用它创建的。vba的全称是visual basic for application,它是微软最好的通用应用程序脚本编程语言,它的特点是容易上手,而且功能非常强大。
在微软所有的office组件中,如word、access、powerpoint等等都包含vba,如果你能在一种office组件中熟练使用vba,那么在其它组件中使用vba的原理是相通的。
excel中vba主要有两个用途,一是使电子**的任务自动化;二是可以用它创建用于工作表公式的自定义函数。
由此可见,使用excel自定义函数的一个前提条件是对vba基础知识有所了解,如果读者朋友有使用visual basic编程语言的经验,那么使用vba时会感觉有很多相似之处。如果读者朋友完全是一个新手,也不必太担心,因为实际的操作和运用是很简单的。
二、什么时候使用自定义函数?
有些初学excel的朋友可能有这样疑问:excel已经内置了这么多函数,我还有必要创建自己的函数吗?
回答是肯定的。原因有两个,它们也正好可以解释什么时候使用excel自定义函数的问题。
第一,自定义函数可以简化我们的工作。
有些工作,我们的确可以在公式中组合使用excel内置的函数来完成任务,但是这样做的一个明显缺点是,我们的公式可能太冗长、繁琐,可读性很差,不易于管理,除了自己之外别人可能很难理解。这时,我们可以通过使用自定义函数来简化自己的工作。
第二,自定义函数可以满足我们个性化的需要,可以使我们的公式具有更强大和灵活的功能。
实际工作的要求千变万化,仅使用excel内置函数常常不能圆满地解决问题,这时,我们就可以使用自定义函数来满足实际工作中的个性化需求。
上面的讲述比较抽象,我们还是把重点放在实际例子的剖析上,请大家在实际例子中进一步体会,进而学会在excel中创建和使用自定义函数。
下面我们通过两个典型实例,学习自定义函数使用的全过程。这里实际上假设读者朋友都有一定的vba基础。
假如你完全没有vba基础也不要紧,当学习完实例后,若觉得自定义函数在自己以后的工作中可能用到,那么再去补充相应的vba基础也不迟。
(一) 计算个人调节税的自定义函数。
任务。假设个人调节税的收缴标准是:工资小于等于800元的免征调节税,工资800元以上至1500元的超过部分按5%的税率征收,1500元以上至2000元的超过部分按8%的税率征收,高于2000元的超过部分按20%的税率征收。
分析。假设sheet1工作表的a、b、c、d列中分别存放“姓名”、“总工资”、“调节税”、“税后工资”字段数据,如图1所示。
此主题相关**如下:
图 1平时使用较多的方法是借助嵌套使用if函数计算,比如在c2单元格输入公式“=if(b2<=800,0,if(b2& lt;=1500,(b2-800)*0.05,if(b2<=2000,700*0.05+ (b2-1500)*0.
08,700*0.05+500*0.08+(b2-2000)*0.
2)))然后通过填充柄复制公式到c列的其余单元格。
既然公式能够解决问题,为什么还要使用自定义函数的方法呢?
正如前面提到的两个方面的原因:一是公式看起来太繁琐,不便于理解和管理;二是公式的处理能力在面对稍微复杂一些的问题时便失去效用,比如假设调节税的税率标准会根据年龄的不同而改变,那么公式可能就无能为力了。
使用自定义函数。
下面就通过此例介绍使用自定义函数的全过程,即使是初学excel的朋友,也会感觉其操作实际上是非常简单的。
1. 为了便于测试自定义函数的计算效果,可以先把上面采用公式计算的结果删去。然后选择菜单“工具→宏→visual basic编辑器”命令(或按下键盘alt+f11组合键),打开visual basic窗口,我们将在这里自定义函数。
2. 进入visual basic窗口后,选择菜单“插入→模块”命令,于是得到“模块1”,在其中输入如下自定义函数的**(图2):
function tax(salary)
const r1 as double = 0.05
const r2 as double = 0.08
const r3 as double = 0.2
select case salary
case is <=800
tax = 0
case is <=1500
tax = salary - 800) *r1
case is <=2000
tax = 1500 - 800) *r1 + salary - 1500) *r2
case is > 2000
tax = 1500 - 800) *r1 + 2000 - 1500) *r2 + salary - 2000) *r3
end select
end function
此主题相关**如下:
图 23. 函数自定义完成后,选择菜单“文件→关闭并返回到microsoft excel”命令,返回到excel工作表窗口,在c2单元格中输入公式“=tax(b2)”回车后就计算出了第一个员工应付的个人调节税,然后用公式填充柄复制公式到其它后面的单元格,这样就利用自定义函数完成了个人调节税的计算(图3)。
此主题相关**如下:
图 34. 从自定义函数的**中可以看出,用这种方式,自定义函数的功能非常易于理解,同时如果税率改变,相应地变化r1、r2、r3的值即可。
通常,自定义的函数只能在当前工作薄使用,如果该函数需要在其它工作薄中使用,则选择菜单“文件→另存为”命令,打开“另存为”对话框,选择保存类型为“mircosoft excel加载宏”,然后输入一个文件名,如“tax”单击“确定”后文件就被保存为加载宏(图4)。然后选择菜单“工具→加载宏”命令,打开“加载宏” 对话框,勾选“可用加载宏”列表框中的“tax”复选框即可,单击“确定”按钮后(图5),就可以在本机上的所有工作薄中使用该自定义函数了。
此主题相关**如下:
图 4此主题相关**如下:
图 5如果想要在其它机器上使用该自定义函数,只要把上面的加载宏文件复制到其它电脑上加载宏的默认保存位置即可。
说明:windows xp系统下加载宏文件的默认保存位置为:c:
documents and settingszunyue(用户帐户)application datamicrosoftaddins文件夹。
高手建议你用excel来聊天
很多单位都组建了局域网,虽然有不少能在局域网上聊天的工具,但一来使用不方便,二来不安全(容易被老板发现)。为此,笔者建议大家用excel来聊天。
★第一步:打开excel2003,新建一个工作簿文档,取名保存(如“工作记录。xls”)。
★第二步:执行“工具→共享工作簿”,打开“共享工作簿”对话框(见图1),选中“允许多用户同时编辑,同时允许工作簿合并”选项,确定返回。
此主题相关**如下:
★第三步:将上述工作簿文档保存在局域网上某台电脑的一个共享文件夹中。
★第四步:局域网内用户同时打开上述工作簿,大家约定好输入的单元格位置(如a用户在a列输入内容、b列输入时间;b用户在c列输入内容、d列输入时间……)
★第五步:选定相应的单元格(如a1),将聊天内容输入到其中,再选中b1单元格,按下“ctrl+shift+;”组合键输入系统当前时间。
★第六步:单击工具栏上的“保存”按钮,将上述输入内容保存一下,对方只要再按一下“保存”按钮,即可看到上述输入的内容。
★第七步:如果老板来了,只要切换到其他工作表(如sheet2)中(可以事先输入一些与工作相关的内容),即可转换到“工作状态”。既方便又安全!
小提示:提高效率,多人同时录入一个excel文件这个应用主要利用了excel的“允许多用户同时编辑,同时允许工作簿合并”功能,在实际工作中,可以用做多人共同录入一个excel**,excel会自动保持信息不断更新。比如:
有a、b、c、d四个用户分工合作共同完成文件的录入,首先打开这个文件,并按上面的操作勾选“允许多用户同时编辑,同时允许工作簿合并”,最后点击“文件→另存为”,将其保存在e电脑的d盘中。接下来四个用户就可以同时在这个文件中录入了。
EXCEL函数解析 工程函数
excel函数应用教程 工程函数。cfan发布时间 2009 07 21 评论 error invalid template key.条 an error occurred while processing this directive 用途 返回修正bessel函数值,它与用纯虚数参数运算时的be...
EXCEL函数解析 统计函数
excel函数应用教程 统计函数。cfan发布时间 2009 07 21 评论 error invalid template key.条 an error occurred while processing this directive 用途 返回一组数据与其平均值的绝对偏差的平均值,该函数可以评测...
EXCEL函数解析 财务函数
excel函数应用教程 财务函数。cfan发布时间 2009 07 21 评论 error invalid template key.条 an error occurred while processing this directive 财务函数非常有用,尤其是那些从事会计工作经常用excel做财务...