函数是大家在日常工作的过程中经常会用到的。比如大家已经很熟悉了的求和函数 SUM,查找函数 VLOOKUP 等等。
Excel 中自身包含了 400 多个函数,而亿信ABI内置了上千个函数应对用户上千种统计需求,但是遇到非常个性化或者非常复杂的指标统计时,这些函数可能会无法满足我们的需求。
这个时候应该怎么办呢?函数高手会用各种公式嵌套,彰显各种高精深。
但是这种公式嵌套,不仅复杂,而且换一张表就要重复输入,效率低下。针对这种情况,亿信ABI提供了一种比较简单的解决方法——自定义函数。不仅可以满足你的个性化需求,还可以重复使用,提升效率蹭蹭蹭~
自定义函数如何使用?
这里我们以一个场景为例,去探讨下如何定义一个函数。假设我们有如下一个场景:
在体育比赛中,每项比赛满分为10分(精确到0.01),去掉一个最高分和一个最低分后的平均分,即为该队的最后得分(精确到0.01)。
我们可以列出这样的式子:(总分数-最高分-最低分)/(总人数-2)
第一步:自定义函数入口及规范
1、入口:系统管理 -> 系统设置 -> 分析与展现 -> 公式模板
2、添加自定义函数
若分组不存在,点击“+”添加到新分组。若已有分组,可选中已有分组,点击“+”添加到已有分组中。
从上图中我们可以看到:
所属组名:指函数所属分组名称。
函数标题:指对函数所起的标题名。
函数定义:指对函数参数的定义。(见(3)自定义函数使用规范)
描述:对所定义的函数,进行描述解释。
3、自定义函数使用规范
a.函数定义规范
函数名(参数类型 参数1, 参数类型 参数2, ...)
b.参数类型规范
参数类型说明:I表示整形、N表示浮点型、L表示逻辑型、C表示字符型、D表示日期型、R表示数组。
第二步:定义自定义函数
从上图中我们可以看到:
函数定义:df(R x) 其中df为函数名称,R代表数组,x代表参数。
函数体:(sum(x)-max(x)-min(x)/(arlen(x)-2)),其中sum(求和)函数、max(求最大值)函数、min(求最小值)函数都是ABI中的常用统计函数。arlen(x)函数含义是返回数组x中项目的个数,返回值为整数。
第三步:使用自定义函数
1、在公式定义向导框中,点击函数后,可以看到我们刚刚自定义的函数df()函数,如下图:
2、使用df()函数求出最后的比赛得分
自定义函数应用场景
以上,我们介绍了亿信ABI中自定义函数的详细用法,那具体能应用到那些场景中呢?让我们举两个例子
例子一:根据用户ID确定显示内容
需求说明:客户某些报表有很多列,但是某些列需要根据登录的用户id来决定是否显示,例如表中的“总成本”一列,用户33可以看到,但是用户03需要对其隐藏。一般做法,通过if判断用户id来指定列宽(如下图)。
那么当需求涉及的login.id变更时,每张表都需要调整,费时费力不好维护。这时候就可以用到自定义函数了。
实现方法:添加自定义函数如下
函数标题:yc
函数定义:yc()
函数体:if(login.id in "11,22,33".split(","),72,1-1)
分析表上设置列宽表达式:
报表效果:当登录用户ID为11、22或33时,C列显示,其他用户登录访问时,C列隐藏。
例子二:返回数值自动转换为“星期* ”格式
需求说明:某个表达式或者参数的返回值是1-7的数字,如何对应的转化成星期一、星期二、星期三、星期四、星期五、星期六、星期天?
实现方法:添加自定义函数如下
函数标题:xq
函数定义:xq(N i)
函数体:["星期一","星期二","星期三","星期四","星期五","星期六","星期天"][i-1]
报表效果:当返回值为1-7时,自动转换为星期一、星期二到星期天。
看完这些,自定义函数是不是想象中那样难。利用上面的方法,就可以做出属于你的专属自定义函数啦~
领取专属 10元无门槛券
私享最新 技术干货