今天我们就来聊一聊“一少汇”的终极杀手锏——一个将多个满足条件的结果组合到一个单元格中的自定义函数:
先说一下什么是自定义函数,渡娘说:
用户自定义函数是指如果您想在公式或计算中使用特别复杂的计算,而工作表函数无法满足您的需求,则需要创建用户自定义函数。 这些函数称为用户定义函数,可以使用 Basic for 创建。
说起来好像很复杂,其实就是用VBA代码写一个函数。
当然,我们今天讨论的不是VBA代码,而是自定义函数。 ——我们不需要知道如何编写VBA代码,我们只需要知道如何使用它。
这就好比,我们想吃一块猪肉,还需要养猪吗? 不用了,去菜市场买点炒着吃就行了。
今天我们刚去了菜市场,买了一个带回家用。
我们先看一个问题,如下图所示,基础数据是某大学部分人的性别和考试成绩(数据纯属虚拟,如有雷同那就逆天了)。
现在老板说话了,让你统计一份不合格人员名单,按性别、阶层进行统计。 统计结果各名称之间用空格分隔,结果如下所示。
——统计你姐,老板,你真的懂Excel吗?
而如果你知道自定义函数,你就可以立即解决此类问题。
函数的作用其实是一个高级连接器,可以快速将参数值揉成字符串。 接受并处理除错误值之外的所有内容。
以上图问题为例,我们在B13中输入如下数组公式,按组合键结束输入,复制填充到B13:C14区域即可得到最终结果。
=(IF(($B$2:$B$9=$A13)*(C$2:C$9
告诉我这个公式的意思:
IF(($B$2:$B$9=$A13)*(C$2:C$9
IF函数首先判断B2:B9的值是否等于A13(男性),然后判断C2:C9的值是否小于60(失败)。 如果同时满足两个条件,则返回 A 列中的名称,并带有空格,否则返回 false 。
所以得到一个内存数组:
{"";"星光";"";"";"";"";"郭辉";""}
最后将IF函数的结果组合成字符串即可得到最终结果:
星光郭辉
看看,处理“一勺外汇”是不是很方便? !
上面我们讲了如何使用,下面我们就来说说如何去菜市场买一个带回家。
1 打开VBE窗口
右键单击任意工作表标签,在弹出的快捷菜单中选择【查看代码】命令。
2 插入模块
在打开的VBE窗口中,在【 】任意位置右键单击,在弹出的快捷菜单中点击【插入】——【模块】
3 复制并粘贴代码
将以下代码复制并粘贴到激活模块的代码窗口中。
( args() 作为 ) 作为
暗淡 As , i As , Cellv As
昏暗单元作为范围
=“”
对于 i = 0 至 (args)
如果不是 (args(i)) 那么
案例(参数(i))
案例“范围”
对于 args(i) 中的每个单元格
= & 单元格
下一个单元格
案件 ”()”
对于 args(i) 中的每个 Cellv
= & 细胞
下一个细胞
其他情况
= &参数(i)
结尾
万一
接下来我
=
结尾
这样我们就成功的把函数带回家了,让我们派它去做点事情吧。
提示:作为自定义功能,需要【启用宏】才能起作用。