分享

如何提取唯一值?试试TEXTJOIN函数搭配VBA自定义!

 Excel教程平台 2022-04-03

关键字:提取唯一值;函数;TEXTJOIN

栏目:函数
全文984字  预计3分钟看完

小伙伴们,你们好!

今天是清明小长假的第一天。

本是鸟语花香的四月,奈何疫情反复,寸步难行。

希望回家探亲的小伙伴注意防护,带好口罩呀!

共克时艰,抗击疫情。

好啦,今天给大家讲一讲关于提取唯一值的问题。

问题案例截图如下:

要从上图1中提取数据放在图2中,我们用之前学过的知识来尝试做一下看看,先在K4单元格中输入函数TEXTJOIN(",",0,IF($D$4:$D$13=J4,$E$4:$E$13,""))

注意事项如下:

1.公式输入完成后最后结束时需要按Ctrl+Shift+Enter三键结束才可以,因为这是一个数组公式。

2. TEXTJOIN函数是新版本Office中增加的函数,低版本软件可能不适用;WPS亲测OK

当我们公式输入完成后,提取的结果同目标效果对比确认,发现结果中存在重复值的现象,而我们的目标是希望结果中仅存唯一值。

剔除重复值保留唯一值的方法大家还记得怎么处理吗?

下图演示以WPS表格为例,我们从开发工具选项卡中找到VB编辑器,进入后插入一个模块。Office的Excel也是一样操作,部分WPS没有开发工具选项的需要下载专业版或者安装加载宏插件方可使用。

我们将下面的VBA代码复制粘贴到刚刚VB编辑器中。

以下横向中间为VBA代码

____________________________________________

Function weiyi(text As String)

Dim j As String

For i = 1 To Len(text)

j = Mid(text, i, 1)

If InStr(weiyi, j) = 0 Then weiyi = weiyi & j & ","

Next

weiyi = Left(weiyi, Len(weiyi) - 1)

End Function

____________________________________________

代码粘贴到模块中,我们回到刚刚的单元格中,在K4单元格公式前面添加weiyi函数,最后三键【Ctrl+Shift+Enter】结束。最后下拉公式填充就可以了,到此我们就实现了开篇同学问的提取唯一值的问题了。

从第一步TEXTJOIN函数录入到代码复制粘贴运用以及最后的自定义weiyi函数使用的步骤如下图:

本想实现后,代码和步骤给提问的小伙伴就没有问题了。谁知道小伙伴非常敬业地咨询代码的意思,爱学的同学真好,看这位同学想起我当年求知若渴的样子,我放下手头工作,跟大家详细的唠了一会。

我们一起开看看公式的结构,拆分理解一下。weiyi是“唯一”的拼音,通过VBA自定义的衍生函数,所以在没有自定义函数之前,Excel里面是没有这个函数的哦。当然你也可以自定义为其他名称。TEXTJOIN函数一共有三个参数,第一参数我们通常称为需要作为分隔符的内容,第二参数可以设置忽略空单元格或者包含空单元格,第三参数使用IF函数判断单元格的值是否等于目标值,如果是返回对应列的值,否则为空。具体解释内容大家可以对比下图进行理解:

到此,我相信大家应该看懂了,如果有小伙伴对VBA代码和编写感兴趣的,可以微信扫码在群里免费领取一套VBA视频教程学习。

上就是今天跟大家分享的内容,感谢大家耐心看完,希望大家能够喜欢。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多