首页 > Excel专区 > Excel教程 >

Contxt自定义函数的用法

Excel教程 2022-02-17 21:54:56

今天我们聊一聊“一勺汇”的终极杀手——将符合条件的多个结果合并到一个单元格内的自定义函数:Contxt函数。

先说下啥是自定义函数,度娘是这么说的:

用户自定义函数是指,基础数据是某个学院某些人的性别以及考试成绩的信息(数据纯属虚拟,。

——统计你妹,老板你到底懂不懂Excel啊,你这不符合数据规范……,你心里默默的念叨这么一句,然后该干什么还得干什么,苦闷到天亮。

而如果你知道自定义函数Contxt,则可以瞬间秒杀此类问题。

Contxt函数的功能其实就是一个高级的连接符,可以快捷将参数值捏合成一个字符串。除了错误值,啥都能接受并处理。

比如:

=Contxt(1,2,3)

得到:123

=Contxt(2013,"应用大全","火热上市啦!")

得到:2013应用大全火热上市啦!

=Contxt(A2:A3&",")

数组运算后得到:祝洪忠,星光,

以上述图片问题为例,我们在B13输入以下数组公式,按组合键结束输入,并复制填充到B13:C14区域,即可得出最终结果。

=Contxt(IF(($B$2:$B$9=$A13)*(C$2:C$9<60),$A$2:$A$9&" ",""))

说说这个公式的意思:

IF(($B$2:$B$9=$A13)*(C$2:C$9<60),$A$2:$A$9&" ","")部分,是Contxt需要合并成一个字符串的数据。

IF函数首先判断B2:B9的值是否等于A13(男),再判断C2:C9的值是否小于60(不及格),如果两个条件同时成立,返回A列姓名连接上空格,否则返回假空。

于是得到一个内存数组:

{"";"星光 ";"";"";"";"";"郭辉 ";""}

最后使用Contxt将IF函数的结果合并为一个字符串,得到最终结果:

星光 郭辉

瞧瞧,Contxt处理起“一勺汇”来,是不是很方便?!

上面我们说了Contxt怎么用,下面我们来说下怎么去菜市场买个Contxt带回家。

1、打开VBE窗口

右键单击任意工作表标签,在弹出的快捷菜单中选择【查看代码】命令。

2、插入模块

在已打开的VBE窗口中,右键单击【工程资源管理器】任意处,在弹出的快捷菜单中,依次单击【插入】——【模块】

3、复制粘贴代码

将以下代码复制粘贴到已激活模块的代码窗口中。

PubliC FunCtion Contxt(ParamArray args() As Variant) As Variant

Dim tmptext As Variant, i As Variant, Cellv As Variant

Dim Cell As Range

tmptext = ""

For i = 0 To UBound(args)

If Not IsMissing(args(i)) Then

SeleCt Case TypeName(args(i))

Case "Range"

For EaCh Cell In args(i)

tmptext = tmptext & Cell

Next Cell

Case "Variant()"

For EaCh Cellv In args(i)

tmptext = tmptext & Cellv

Next Cellv

Case Else

tmptext = tmptext & args(i)

End SeleCt

End If

Next i

ConTxt = tmptext

End FunCtion

如此,我们就成功的将Contxt函数带回家了,赶紧打发它去做点事吧。


标签: 函数数据数组自定义excel教程

office教程网 Copyright © 2016-2020 http://www.office9.cn. Some Rights Reserved. 苏ICP备20040415号-9