|
關(guān)鍵字:提取唯一值;函數(shù);TEXTJOIN 小伙伴們,你們好! 今天是清明小長(zhǎng)假的第一天。 本是鳥語(yǔ)花香的四月,奈何疫情反復(fù),寸步難行。 希望回家探親的小伙伴注意防護(hù),帶好口罩呀! 共克時(shí)艱,抗擊疫情。
好啦,今天給大家講一講關(guān)于提取唯一值的問題。 問題案例截圖如下:
要從上圖1中提取數(shù)據(jù)放在圖2中,我們用之前學(xué)過的知識(shí)來嘗試做一下看看,先在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表格為例,我們從開發(fā)工具選項(xiàng)卡中找到VB編輯器,進(jìn)入后插入一個(gè)模塊。Office的Excel也是一樣操作,部分WPS沒有開發(fā)工具選項(xiàng)的需要下載專業(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)了開篇同學(xué)問的提取唯一值的問題了。
從第一步TEXTJOIN函數(shù)錄入到代碼復(fù)制粘貼運(yùn)用以及最后的自定義weiyi函數(shù)使用的步驟如下圖:
本想實(shí)現(xiàn)后,代碼和步驟給提問的小伙伴就沒有問題了。誰知道小伙伴非常敬業(yè)地咨詢代碼的意思,愛學(xué)的同學(xué)真好,看這位同學(xué)想起我當(dāng)年求知若渴的樣子,我放下手頭工作,跟大家詳細(xì)的嘮了一會(huì)。
我們一起開看看公式的結(jié)構(gòu),拆分理解一下。weiyi是“唯一”的拼音,通過VBA自定義的衍生函數(shù),所以在沒有自定義函數(shù)之前,Excel里面是沒有這個(gè)函數(shù)的哦。當(dāng)然你也可以自定義為其他名稱。TEXTJOIN函數(shù)一共有三個(gè)參數(shù),第一參數(shù)我們通常稱為需要作為分隔符的內(nèi)容,第二參數(shù)可以設(shè)置忽略空單元格或者包含空單元格,第三參數(shù)使用IF函數(shù)判斷單元格的值是否等于目標(biāo)值,如果是返回對(duì)應(yīng)列的值,否則為空。具體解釋內(nèi)容大家可以對(duì)比下圖進(jìn)行理解:
到此,我相信大家應(yīng)該看懂了,如果有小伙伴對(duì)VBA代碼和編寫感興趣的,可以微信掃碼在群里免費(fèi)領(lǐng)取一套VBA視頻教程學(xué)習(xí)。 以上就是今天跟大家分享的內(nèi)容,感謝大家耐心看完,希望大家能夠喜歡。 |
|
|