EXCEL自定义函数

在工作中有时会遇到在编写公式时,找不到适合的EXCEL内置函数,或者虽然可以使用内置函数,但会造成公式复杂不易理解,这时就可以考虑使用自定义函数了。 编写自定义函数需要一定的VBA基础,但完成后,就可以像使用内置函数一样方便了,任何人都可以使用。

工具/原料

    excel

步骤/方法

    1

    下面通过一个例子来学习简单的编写自定义函数

    2

    例:下面表格中需要计算一些三角形的面积

    3B列是底边长,C列是高,要求在D列通过公式计算三角形面积。EXCEL自定义函数

    4

    (通常我们会在D3单元格用公式 =B3*C3/2 来计算,然后把这个公式向D列下方拖动复制,得到其他公式。这只是一个简单的例子,通过它来学习编写简单的自定义函数)

    51、打开VBA窗口按ALT+F11调出VBA窗口,插入一个用户模块。EXCEL自定义函数

    62、编写代码通常自定义函数是用function命令开始的,在这个命令后面给它指定一个名字和参数把下面这个自定义函数代码粘贴到刚插入的用户模块中就可以使用了。Function sjxmj(di, gao)sjxmj = di * gao / 2End Function

    这段代码非常简单只有三行,先看第一行,其中sjxmj是自己取的函数名字,括号中的是参数,也就是变量,di表示“底边长”,gao表示“高”,两个参数用逗号隔开。再看第二行,这是计算过程,将di*gao/2这个公式赋值给sjxmj,即自定义函数的名字。再看第三行,它是与第一行成对出现的,当你手工输入第一行的时候,第三行的end function就会自动出现,表示自定义函数的结束。

    EXCEL自定义函数

    73、使用自定义函数回到EXCEL窗口,我们在D3单元格中输入公式 =sjxmj(b3,c3) ,就会得到这一行的三角形面积了,它的使用方法同内置函数完全一样。EXCEL自定义函数

    8通过上面例子可以了解自定义函数的编写和使用方法,下面再介绍一个稍微复杂点的自定义函数。

    经常对数据进行处理的朋友可以会遇到多条件查找某一个数据,一般这种情况需要编写“数组公式”来解决,公式较长,也不易理解。

    比如下面统计成绩的表格,需要根据A1:D7的成绩表,统计出两门功能都在90分以上的学生人数。

    大家可以看到在H3单元格中的公式比较长,理解起来也有一定难度。我们通过自定义函数也可以得到正确结果,函数代码如下:

    Function 统计(a, b, c, d, e) For i = 1 To a.Rows.Count If b = a.Cells(i, 1) And a.Cells(i, c) >= e And a.Cells(i, d) >= e Then 统计 = 统计 + 1 End If NextEnd Function

    这个函数用了五个参数(因为涉及到一个区域和四个条件)参数a表示要统计的区域,在此例中为B2:E7参数b表示要统计的是哪一个班级,在此例中为G3单元格参数c表示数学成绩相对于区域第一列向右的列数,在此例中为3参数d表示数学成绩相对于区域第一列向右的列数,在此例中为4参数e表示分数,在此例中为90分提示:要注意参数c和d“相对”于“区域”的列数,并非是从A列开始向右的列数。把上面这段代码也粘贴到用户模块中就可以使用了

    回到EXCEL窗口,在H3单元格中输入公式 =统计($B$2:$E$7,G3,3,4,90) 就可以显示正确结果了。

    Function 统计2(a, b)For i = 1 To a.Rows.CountIf b = a.Cells(i, 1) And a.Cells(i, 3) >= 90 And a.Cells(i, 4) >= 90 Then统计 = 统计 + 1End IfNextEnd Function

    在表格中的H3单元格中输入公式 =统计2($B$2:$E$7,G3) 就可以了。

    从上面可以看出,自定义函数可以使用“汉字”做为函数的名字,方便记忆,也可以根据实际情况对参数进行简化。

    9通常这种时候需要在H3单元格使用数组公式 =SUM(IF(($B$2:$B$7=G3)*($D$2:$D$7>=90)*($E$2:$E$7>=90),1,0))EXCEL自定义函数

    10提示:如果我们的成绩表格式是固定的,各科目成绩位置相对于区域也是固定的,而且要统计的分数也是固定的90分,就可以在自定义函数中将参数的数量减少到两个,如下:EXCEL自定义函数END

温馨提示:经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
免责声明:本文转载来之互联网,不代表本网站的观点和立场。如果你觉得好欢迎分享此网址给你的朋友。
转载请注明出处:https://www.baikejingyan.net/af7b8VwNsAgFQCg.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年07月25日
下一篇 2023年07月25日
single-end

热门经验

single-end

相关经验

  • Excel如何快速查找整个工作簿中的内容

    Excel如何快速查找整个工作簿中的内容,Excel如何快速查找整个工作簿中的内容?接下来让我们一起看看具体操作步骤吧。...

    2024年11月03日
    0℃
  • Excel IF函数怎么用

    Excel IF函数怎么用,本例主要介绍Excel表格中IF函数的用法,包括基本用法、单条件、多条件表达及在数组函数中的用法和在数组函数中怎么表达多条件和单条件。...

    2024年10月23日
    0℃
  • Excel如何制作表格?

    Excel如何制作表格,办公室文员以及做财务的亲们,肯定会经常用到Excel表格,统计一些数据或登记一些文字类的东西,是不是有些人还不会做呢,没关系,现在就教你怎么制作Excel表格?...

    2024年10月01日
    0℃
  • Excel如何根据日期计算星期

    Excel如何根据日期计算星期,Excel如何根据日期计算星期,下面把日期计算星期的方法分享给大家。...

    2024年09月03日
    0℃
  • Excel怎么制作宏按钮

    Excel怎么制作宏按钮,在Excel中制作宏按钮,是excel的一项重要技能,它可以帮助我们自动化重复性任务,提升工作效率。那么,Excel怎么制作宏按钮呢?下面一起来看看吧。...

    2024年09月03日
    0℃

联系我们

在线咨询: QQ交谈

邮件:baikejingyan@gmail.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信