溜溜问答 > 日常办公 > Excel > Excel如何自定义函数?
kiss mayue
kiss mayue
邀请你来回答
213人阅读 2020-10-16

Excel如何自定义函数?

我想自定义一个函数,调用固定可变的基数表中的数据来处理每月一变的折算表,我原打算用自定义一个函数(如图),其思路是:如果>=基数表中的D2执行第一个算法;>=基数表中的D3而小于D2执行第二个算法;;>=基数表中的D4而小于D3执行第三个算法,可好像自定义函数不允许调用表格中数据而只能是定值,请问各位大虾有何良策,能用函数最好用函数(方便,可推广给每一位工作人员使用),若不能用函数用什么公式好一些
我要回答
2个回答

设数据在a1格,公式如下
=if(iserror(find(".",a1)),numberstring(int(a1),2)&"元整",if(iserror(numberstring(mID(a1,find(".",a1)+2,1),2)),numberstring(int(a1),2)&"元"&numberstring(mID(a1,find(".",a1)+1,1),2)&"角整",numberstring(int(a1),2)&"元"&numberstring(mID(a1,find(".",a1)+1,1),2)&"角"&numberstring(mID(a1,find(".",a1)+2,1),2)&"分"))
当公式整数部份最大为15位时正确,结果舍去分(小数点第二位)以下数据。

查看全部
2020-10-16
回复 采纳

vba之自定义函数
这一贴说的是自定义函数。Excel本身已自带了很多函数,供我们使用,但有些问题用原有的函数解决起来很复杂,甚至是无能为力,但有了vba,可能就可以现实。
怎样自定义一个函数?下面我们建一个名为rangecount和函数,用来统计给定单元格数量。上贴说过怎么插入一个宏(子程序),其实细心的朋友就会发现,里面有一项函数的选项,就是用这个添加了!键入你需要的名称rangecount,即会自动生成一个函数的头public
function
rangecount()和尾end
function!这时大家可以知道,子程序都是以SUb关键字开头,而函数是以function关键字开头。
怎样给自定义函数传递参数?用过SUm函数的朋友都知道SUm的用法,在单元格中键入=SUm(a1:a10)就能对a1:a10进行求和,那么怎么让我们的自定义函数也有此功能呢,其实很简单,只要在function
rangecount()中的(与)之间加入即可,象现在我们要给这个自定义函数传递一个单元格的参数,即在()间加入xran
as
range即可。其中xran就是我们给这个参数设定的名称,as
是关键字,而range就是给定参当数的类型(单元格类型),更详细的说明可以参见vba的帮助(上贴有说明怎么用帮助了吧:))。
怎么样自定义函数加入功能?其实也和子程序一样,在函数的头public
function
rangecount()和尾end
function之间就可以加入代码,我们这个函数的代码只有一句:rangecount
=
xran.count
怎么样让自定义函数返回值?从上面的例子看出,只要将函数的名称设定为需要返回的值即可。
怎么当前工作表中使用自定久函数?使用自定义函数的方法其实和一般函数的方法是一样的,在单元格中键入=rangecount(a1:a10),即可以得到值(10)!当然,也可以通过菜单插入/函数,在类别中选择用户自定义里找到你自定义的函数。
怎么在工作表里使用别的工作表里的自定义函数?从菜单插入/函数,类别中的用户自定义里,可以看到,如果这个自定义函数不是在当前的工作表里的,函数会变成--文件名.xls!函数名了,这样我们使用上面的自定义函数就变成=book1.xls!rangecount(a1:a10)(设我们刚才保存文件为book1)。
怎么样在任何工作表中使用自定义函数?自定义了函数后,每一次使用都要打开这个工作簿,不方便,那么怎么样让任何工作簿都能使用这个自定义函数呢?有两个方法,第一个就是把代码写在上面说到的个人宏工作簿中,因为个人宏工作簿都是随Excel自动打开的,那么我们就可以通过personal.xls!函数名来使用这个自定义函数。第二个方法就是加载宏(关于加载宏的其它用法和具体说明以后还会有专门的一贴),将包含这个自定义函数的工作簿,去掉无关的内容(不去当然也行啦!)后另存为加载宏(不会不知道怎么另存吧,汗!后注!),这样在菜单工具/加载宏里,将相关项前打勾,即可使用该自定义函数,这时使用函数的方法只要直接用函数名即可,如=rangecount(a1:a10)。
最后再说一点大家少遇到的现象:用过vba后,大家知道在同一模块中是不能有相同名称的子程序与函数的,如果有,运行时会提示存在二义性!但在不同模块中,却能有相同甸称的函数存在,那么怎么使用这样的函数呢?从菜单插入/函数,类别中的用户自定义里,我们可以看出这样的函数变成模块名.函数名了,这样我们的使用方法就是=模块1.rangecount(a1:a10)或=模块2.rangecount(a1:a10)。
后注:详细的另存为加载宏的过程,点击菜单/文件/另存为,在文件类型里选择Microsoft
Excel加载宏项,这时文件夹自动转到保存加载宏的addins,再保存即可。

查看全部
2020-10-16
回复 采纳

相关问题

WPS Excel 如何自定义函数?
共4条回答 >
79💋: 函数都是预设的,要记住输入函数时一定要先输入一个等于号.如下:举个最简单的例子,C1单元格要放A1说B1的总和数据,你可以在C1单元格内先输入等于号,再用鼠标单击A1再手动输入一个加号,再单击B1再回车,那么C1就有一个预设的函数了.你将鼠标指针指向C1单元格右下角直至它变成实心加号,按住不放往下拖,你想有多少行就有多少行.你想要求和的数据只要分别输入在A1于B1单元格内就OK了.
(9) 回复
Excel中如何自定义函数?
共1条回答 >
journey: 在模块中定义function,函数名(参数列表)请采纳,谢谢。
回复
Excel如何设置自定义函数?
共1条回答 >
幸福人生: 1.我们首先在电脑上打开excel表格。2.按下键盘上的Alt+F11快捷键打开VisualBasic编辑器。3.单击菜单栏中的插入,点击模块,新模块窗口将显示在VisualBasic编辑器的右侧。4.最后在模块内我们就可以自定义函数了。
回复
Excel怎么自定义函数?
共1条回答 >
门前: 直接自定义函数是做不到的,但你可以使用里面的宏来实现你想实现的功能。MicrosoftOffice是一套由微软公司开发的办公软件套装,它可以在MicrosoftWindows、WindowsPhone、Mac系列、iOS和Android等系统上运行。与其他办公室应用程序一样,它包括联合的服务器和基于互联网的服务。从2007版的Office被称为“OfficeSystem”而不叫“OfficeSuite”,反映出它们包括服务器的事实。Office最初是一个推广名称,出现于1990年代早期,指一些以....
回复
Excel如何自定义filter函数?
共1条回答 >
陈俊: FILTER函数:FILTER函数是一个筛选函数,它可以根据我们设置的条件来筛选数据。语法:=FILTER(array,include,[if_empty])。第一参数:表示想要筛选的数据区域。第二参数:筛选的条件,它是一个布尔值。第三参数:if_empty,根据条件如果找不到结果,就返回第三参数的值,它是一个可选参数。
(15) 回复
发表成功!
感谢您的分享!
好的
官方微信群

(微信添加“妙妙”或“笑笑”,邀您进群)