二维码 购物车
部落窝在线教育欢迎您!

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

 

作者:花花来源:部落窝教育发布时间:2022-03-24 16:23:13点击:3347

分享到:
0
收藏    收藏人气:0人
版权说明: 原创作品,禁止转载。

编按:

数据提取唯一值的案例有很多,解决方法比比皆是。今天要跟大家分享的是TEXTJOIN函数和VBA自定义的搭配来提取唯一值案例。

 

小伙伴们,你们好!前两天小编遇到一位同学在群里咨询关于唯一值提取的问题,今天将问题和解决方法整理了一下分享给大家。

问题案例截图如下:

 

 

要从上图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编辑器,进入后插入一个模块。OfficeExcel也是一样操作,部分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》课程哦。

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

 

 

本文配套的练习课件请加入QQ群:902294808下载。

Excel高手,快速提升工作效率,部落窝教育《一周Excel直通车》视频和Excel极速贯通班》直播课全心为你!

扫下方二维码关注公众号,可随时随地学习Excel

IMG_256

相关推荐:

excel中的数据按照指定数量进行重复,非得用VBA才能实现吗?

如何在特定位置批量插入空行等12种实用办公技巧

4种删除excel重复值的小妙招,速收藏

Power Query的数据替换技巧比Excel函数更万能!

版权申明:

本文作者花花;同时部落窝教育享有专有使用权。若需转载请联系部落窝教育。