明明写了个自定义函数,为什么调用不了?
小勤:这个“调用自定义函数”功能怎么用的?我明明写了个自定义函数(add)的哦,为什么调用不了?
![](http://pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL2ltYWdlMTA5LjM2MGRvYy5jbi9Eb3dubG9hZEltZy8yMDIxLzA1LzIyMTAvMjIyNjMxMTU3XzFfMjAyMTA1MjIxMDIyNTEzODA=.jpg)
大海:你仔细看看这个功能的说明?
![](http://pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL2ltYWdlMTA5LjM2MGRvYy5jbi9Eb3dubG9hZEltZy8yMDIxLzA1LzIyMTAvMjIyNjMxMTU3XzJfMjAyMTA1MjIxMDIyNTE4NjQ=.jpg)
小勤:“调用此文件中为各行定义的自定义函数”?还是不理解。
大海:不理解没关系,但平时要形成出现问题时看功能说明或帮助的习惯,即使一开始的时候可能因为翻译的原因看起来觉得很别扭,但这很有利于你以后去学习新的知识。再回到这个问题,你在这个查询以外写个自定义函数看看?注意不要跟你现在这个(add)同名哦。
小勤:好的。在查询列表里【右键-新建查询-其他源-空查询】
![](http://pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL2ltYWdlMTA5LjM2MGRvYy5jbi9Eb3dubG9hZEltZy8yMDIxLzA1LzIyMTAvMjIyNjMxMTU3XzNfMjAyMTA1MjIxMDIyNTE5NTg=.jpg)
然后直接输入自定义函数内容:
![](http://pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL2ltYWdlMTA5LjM2MGRvYy5jbi9Eb3dubG9hZEltZy8yMDIxLzA1LzIyMTAvMjIyNjMxMTU3XzRfMjAyMTA1MjIxMDIyNTI1MDU=.jpg)
大海:嗯。然后再去刚才那个“调用自定义函数”功能试试?
小勤:啊!这个可以啊,原来要这样?这个功能说明里“此文件中”的意思是只能调用本查询外部的自定义函数,而不能调用本查询内部的自定义函数?
![](http://n4.ikafan.com/assetsj/blank.gif)
大海:对的。就是这个意思。另外,你试试,如果外面的函数跟查询里面的函数名称一样了,会怎样?
小勤:这个……我原来在查询里的add函数是对参数加1:
![](http://n4.ikafan.com/assetsj/blank.gif)
外面的名字也改为add,对参数加1000:
![](http://n4.ikafan.com/assetsj/blank.gif)
大海:然后用调用自定义函数的功能试试?
小勤:……这个选中的应是指外面那个函数吧?应该数量加上1000?
![](http://n4.ikafan.com/assetsj/blank.gif)
大海:对的。但是结果呢?
小勤:晕,居然是加1哦!也就是说最终还是用了查询里面的那个自定义函数?
![](http://n4.ikafan.com/assetsj/blank.gif)
大海:对的,当查询内的自定义函数与查询外的自定义函数名称一样时,会以查询内部的为准。所以,这里要注意的是:
“调用自定义函数”的操作功能只是在一定程度上简化了写添加自定义列公式的工作,并不会因为它只能选择外面的自定义函数,就一定会使用选择的那个函数;同时,在写自定义函数时,一定要注意,无论在查询内部还是外部,不要使用相同的名称,否则容易导致出现了错误(这往往是没有错误提示的逻辑计算错误,数据计算复杂时很难发现)。
小勤:好的。
![](http://n4.ikafan.com/assetsj/blank.gif)
![](http://n4.ikafan.com/assetsj/blank.gif)
![](http://n4.ikafan.com/assetsj/blank.gif)
【近期热门合集/文章】