最近在學習vba,所以更新的頻率較少。雖然在學習vba的道路上我現(xiàn)在還是一個沒有入門的小白,但多少還是有點收獲的。發(fā)現(xiàn)了兩個有用的自定義函數(shù),可以實現(xiàn)textjoin和evaluate的效果。
textjoin這個函數(shù)不用說了,功能是很強大的,很多時候都會用到它,但低版本的微軟excel可能沒有這個函數(shù),是一個遺憾。我知道在wps2019中有這個函數(shù),用過的人肯定知道它的強大。
如果你平常工作用的是微軟excel,而里面又沒有textjoin,你就知道有多么痛苦了。我自己的電腦中裝的是2019版的excel,自帶textjoin,而且我也很喜歡用這個函數(shù)。用習慣了后,我也經(jīng)常在公司的2016版excel中輸入textjoin,但輸入完我才發(fā)現(xiàn)沒有這個函數(shù)。瞬間感到無力,失落。不過發(fā)現(xiàn)了自定義函數(shù)能實現(xiàn)它的功能后,就感覺很爽了。
而evaluate這個函數(shù)功能也很強大,有時候會有一些妙用。但在微軟excel中是個宏表函數(shù),要在定義名稱里才能使用,所以被很多人放棄或遺忘。而在wps2019中,它就能直接輸入使用?,F(xiàn)在有了能代替它的功能的自定義函數(shù)后,就能方便地利用它的功能了。
下面就來說說這兩個自定義函數(shù),我把它們分別命名為MYTEXTJOIN和MYEVALUATE。
-01-
MYTEXTJOIN
1.將相同部門的員工合并在一個單元格中
如下圖所示,左表是原表,實現(xiàn)的效果為右表。這個問題之前講textjoin時就說過,你如果對這個函數(shù)不熟悉或者沒有這個函數(shù)的話,可以先搜索之前的文章看看它的用法,等安裝完自定義函數(shù),就可以動手試驗了?,F(xiàn)在用自定義函數(shù)寫的公式和textjoin是差不多的,在E3單元格輸入公式=MYTEXTJOIN("、",1,IF(A$3:A$11=D3,B$3:B$11,"")),按ctrl+shift+enter。
下面看下演示,當我輸入textj時,下面有textjoin和mytextjoin兩個函數(shù)。textjoin是excel自帶的,mytextjoin是我自定義的。總體來說和textjoin的功能差不多,但一些細節(jié)沒有textjoin完善。
自定義函數(shù)mytextjoin的功能和textjoin比還是有所欠缺的。第一,mytextjoin不能省略參數(shù);第二,mytextjoin的第3參數(shù)和后面的參數(shù)只能是單元格引用或者數(shù)組,不能是單個數(shù)字或文本。
雖然mytextjoin有所欠缺,但在工作中不影響使用。第一,把參數(shù)輸入完整,不要省略就可以了;第二,工作中第3參數(shù)一般都是使用數(shù)組的,基本不會像我上面那樣寫1,2,3,4。
-02-
MYEVALUATE
1.求算式的結果
如下圖所示,A列是一些算式,求它們的結果。如果用自定義函數(shù)myevaluate,直接在C15單元格輸入公式=MYEVALUATE(A15),下拉完成。如果要用excel自帶的evaluate,就要用到定義名稱。
下面演示一下,可以看到要把寫好的evaluate公式放到定義名稱中才能生效,否則在單元格輸入是不支持的。每次都要定義名稱挺麻煩的,而且還要考慮相對引用的問題。而用自定義函數(shù)myevaluate就沒有這個問題,直接在單元格輸入函數(shù)。
2.求每個單元格的數(shù)字之和
在B22單元格輸入公式=SUM(MYEVALUATE("{"&A22&"}")),下拉完成。myevaluate和evaluate的功能一樣,而且比evaluate更方便,如果你對evaluate了解的話,這個公式就不難理解。
簡單說一下它在這里的功能,evaluate可以計算文本算式的結果,如例1;還可以將文本的數(shù)組轉(zhuǎn)為常規(guī)的數(shù)組,比如將"{1,2,3,4}"轉(zhuǎn)為{1,2,3,4}。由于此例每個單元格都是逗號或分號分隔,左右連接花括號就變成文本型的數(shù)組,然后用myevaluate轉(zhuǎn)為常規(guī)數(shù)組,最后用sum求和。
-03-
自定義函數(shù)的安裝
說了這么多,那么這兩個自定義函數(shù)從哪來?怎么安裝?現(xiàn)在被我保存在一個文件中,就是下面紅框標記的那個文件,我會上傳到百度網(wǎng)盤中。
第1步,你先從網(wǎng)盤上把這個文件下載下來,保存到電腦里。
第2步,打開微軟excel,點開發(fā)工具,點excel加載項,彈出加載項對話框,可以看到我的自定義函數(shù)已經(jīng)有了,因為我之前已經(jīng)加載過了,你第一次點開的話可能是沒有的。要點瀏覽,然后找到你保存的那個文件,點確定。這下你的加載項應該就有了那個文件,勾選好后,點確定。
第3步,要關閉excel,重新打開或者新建一個工作簿自定義函數(shù)才會生效。輸入=my,看看這兩個函數(shù)有沒有出現(xiàn)。如果安裝不成功,可以留言。
鏈接:
https://pan.baidu.com/s/14PTHuNstxhpSe6BUGvcOCA
提取碼:20h0
聯(lián)系客服