二維碼 購(gòu)物車(chē)
部落窩在線(xiàn)教育歡迎您!

如何提取唯一值?試試TEXTJOIN函數(shù)搭配VBA自定義!

?

作者:花花來(lái)源:部落窩教育發(fā)布時(shí)間:2022-03-24 16:23:13點(diǎn)擊:3719

分享到:
0
收藏    收藏人氣:0人
版權(quán)說(shuō)明: 原創(chuàng)作品,禁止轉(zhuǎn)載。

編按:

數(shù)據(jù)提取唯一值的案例有很多,解決方法比比皆是。今天要跟大家分享的是TEXTJOIN函數(shù)和VBA自定義的搭配來(lái)提取唯一值案例。

 

小伙伴們,你們好!前兩天小編遇到一位同學(xué)在群里咨詢(xún)關(guān)于唯一值提取的問(wèn)題,今天將問(wèn)題和解決方法整理了一下分享給大家。

問(wèn)題案例截圖如下:

 

 

要從上圖1中提取數(shù)據(jù)放在圖2中,我們用之前學(xué)過(guò)的知識(shí)來(lái)嘗試做一下看看,先在K4單元格中輸入函數(shù)TEXTJOIN(",",0,IF($D$4:$D$13=J4,$E$4:$E$13,""))

 

 

注意事項(xiàng)如下:

1.公式輸入完成后最后結(jié)束時(shí)需要按Ctrl+Shift+Enter三鍵結(jié)束才可以,因?yàn)檫@是一個(gè)數(shù)組公式。

2. TEXTJOIN函數(shù)是新版本Office中增加的函數(shù),低版本軟件可能不適用;WPS親測(cè)OK

 

 

當(dāng)我們公式輸入完成后,提取的結(jié)果同目標(biāo)效果對(duì)比確認(rèn),發(fā)現(xiàn)結(jié)果中存在重復(fù)值的現(xiàn)象,而我們的目標(biāo)是希望結(jié)果中僅存唯一值。剔除重復(fù)值保留唯一值的方法大家還記得怎么處理嗎?

 

 

下圖演示以WPS表格為例,我們從開(kāi)發(fā)工具選項(xiàng)卡中找到VB編輯器,進(jìn)入后插入一個(gè)模塊。OfficeExcel也是一樣操作,部分WPS沒(méi)有開(kāi)發(fā)工具選項(xiàng)的需要下載專(zhuān)業(yè)版或者安裝加載宏插件方可使用。

 

 

我們將下面的VBA代碼復(fù)制粘貼到剛剛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函數(shù),最后三鍵【Ctrl+Shift+Enter】結(jié)束。最后下拉公式填充就可以了,到此我們就實(shí)現(xiàn)了開(kāi)篇同學(xué)問(wèn)的提取唯一值的問(wèn)題了。

 

 

從第一步TEXTJOIN函數(shù)錄入到代碼復(fù)制粘貼運(yùn)用以及最后的自定義weiyi函數(shù)使用的步驟如下圖:

 

 

本想實(shí)現(xiàn)后,代碼和步驟給提問(wèn)的小伙伴就沒(méi)有問(wèn)題了。誰(shuí)知道小伙伴非常敬業(yè)地咨詢(xún)代碼的意思,愛(ài)學(xué)的同學(xué)真好,看這位同學(xué)想起我當(dāng)年求知若渴的樣子,我放下手頭工作,跟大家詳細(xì)的嘮了一會(huì)。

 

 

我們一起開(kāi)看看公式的結(jié)構(gòu),拆分理解一下。weiyi是“唯一”的拼音,通過(guò)VBA自定義的衍生函數(shù),所以在沒(méi)有自定義函數(shù)之前,Excel里面是沒(méi)有這個(gè)函數(shù)的哦。當(dāng)然你也可以自定義為其他名稱(chēng)。TEXTJOIN函數(shù)一共有三個(gè)參數(shù),第一參數(shù)我們通常稱(chēng)為需要作為分隔符的內(nèi)容,第二參數(shù)可以設(shè)置忽略空單元格或者包含空單元格,第三參數(shù)使用IF函數(shù)判斷單元格的值是否等于目標(biāo)值,如果是返回對(duì)應(yīng)列的值,否則為空。具體解釋內(nèi)容大家可以對(duì)比下圖進(jìn)行理解:

 

 

到此,我相信大家應(yīng)該看懂了,如果有小伙伴對(duì)VBA代碼和編寫(xiě)感興趣的,可以學(xué)習(xí)小奇老師的《零基礎(chǔ)玩會(huì)VBA》課程哦。

以上就是今天跟大家分享的內(nèi)容,感謝大家耐心看完,希望大家能夠喜歡。

 

 

本文配套的練習(xí)課件請(qǐng)加入QQ群:902294808下載。

Excel高手,快速提升工作效率,部落窩教育《一周Excel直通車(chē)》視頻和Excel極速貫通班》直播課全心為你!

掃下方二維碼關(guān)注公眾號(hào),可隨時(shí)隨地學(xué)習(xí)Excel

IMG_256

相關(guān)推薦:

excel中的數(shù)據(jù)按照指定數(shù)量進(jìn)行重復(fù),非得用VBA才能實(shí)現(xiàn)嗎?

如何在特定位置批量插入空行等12種實(shí)用辦公技巧

4種刪除excel重復(fù)值的小妙招,速收藏

Power Query的數(shù)據(jù)替換技巧比Excel函數(shù)更萬(wàn)能!

版權(quán)申明:

本文作者花花;同時(shí)部落窩教育享有專(zhuān)有使用權(quán)。若需轉(zhuǎn)載請(qǐng)聯(lián)系部落窩教育。