用excel連接字符串,是我們在日常工作中,比較常用的技巧。相信大家使用最多的連接方式就是“&”。但其實,在excel中連接字符串的方法有很多,并且,看似不怎么起眼的連接字符串在某些特定的場合卻有著神奇的妙用。是不是很好奇呢?趕緊跟著作者e圖表述的步伐,來看看吧!
?
【前言】
在使用EXCEL的實際應用中,我們經常會為了統計方便,把數據元素分的相對詳細一些,那么統計的維度也就會多一些。同樣的,有的時候我們也需要把拆分的很詳細的內容,再合并成一個內容放在一個單元格中,有可能是為了引用,也有可能是為了標識或者閱讀。舉一個常見小例子——比如說《日數據匯報》。
為了統計方便,我們一定會做成1:2行的內容;可是如果領導需要我們做匯報,建議還是制作成5:8行的方式,這樣可讀性更高。
【正文】
為了更加便捷的使用EXCEL處理這類問題,EXCEL給我們準備了很多的方法——&、CONCATENATE、PHONETIC函數來處理,也會有一些“外力”的方式來解決。今天我們就用同一個模擬數據來給大家分別地介紹,希望能夠讓同學們在遇到類似的問題時,可以不至于手忙腳亂。
【數據源】
數據源處理需求:連接每個字段的值,形成新的字符串填入H列。
我們的模擬數據,采用了“純數字”的格式,為了便于字符串連接的通用性,我們也使用了“一位數字”的方式,大家可以把其中的某個數字理解為需要連接的字符串亦可,看下面內容之前,先想想我們會采用什么方式解決。帶著思考學習,將對于同學們吸收知識和靈活應用函數大有裨益。
【解法】
方法一
I2單元格函數:
=A2&B2&C2&D2&E2&F2&G2
這個應該是同學們使用最多的連接字符串的方式了,沒有什么好多介紹的。
方法二
I2單元格函數:
=CONCATENATE(A2,B2,C2,D2,E2,F2,G2)
CONCATENATE函數最多可以連接255個參數,總字符最大不得超過8192個。在EXCEL365版本中,有幾個新的函數,其中CONCAT函數算是CONCATENATE函數的升級版了,但是因為高版本的EXCEL還不是那么普及,我們就不說這些沒法讓大家都測試的內容了。
另外,很多人都說EXCEL2016版本有這幾個新增的函數TEXTJOIN、CONCAT、IFS、DATESTRING、NUMBERSTRING、IFS、MINIFS、MAXIFS,但是據作者E圖表述所知,不是所有的EXCEL2016版本都有這幾個函數。據說在EXCEL2016版本測試的時候是有這幾個函數的,但出了EXCEL365版本之后,就在EXCEL2016中取消了。不得而知吧,如果大家有條件的話,還是建議使用高版本的EXCEL,可以嘗試很多新功能。
方法三
I2單元格函數:
{=SUM(A2:G2*10^(COUNTA(A2:G2)-column(A:G)))}
這是一個數組函數,需要在輸入完函數的時候,以“CTRL+SHIFT+ENTER”三鍵結束函數錄入,而且只適用于單元格中是一位數字的數據源。
函數解析:
這個函數利用了數學思維,以第一行的數據為例,思路如下表:
那么我們看看每一位上對應的“0”有什么規律,我們的函數是不是很完美的達到了我的要求:
由上表我們就可以看出COUNTA(A2:G2)-COLUMN(A:G)這部分函數,可以幫我們計算出每一位上會有幾個0,在用10^(^是乘冪的意思,相當于POWER函數的用法)確定每一個字段中的數字是哪位數。如10^6 ,即10的6次方,就等于1000000,整體的函數如下表所列:
字段名 |
對應值 |
乘以對應位數 |
對應乘積 |
字段1 |
7 |
1000000 |
7000000 |
字段2 |
8 |
100000 |
800000 |
字段3 |
6 |
10000 |
60000 |
字段4 |
4 |
1000 |
4000 |
字段5 |
0 |
100 |
000 |
字段6 |
4 |
10 |
40 |
字段7 |
4 |
1 |
4 |
再把對應的乘積相加是不是就是我們的結果了?在這里要給同學們一個建議:如果想學好數組函數,就一定要提高“邏輯思維”的能力,上面的這三張表就是我們數組函數的計算過程,我們編寫這個函數的過程,基本就是以這個思路,再選擇相對應的函數來編輯的。也就是說能夠允許我們沒有計算機運行的速度,但是一定要有和計算機一樣的運行思路。
方法四
巧借其他程序來解決。
為了EXCEL函數“小白”們日常也有好的方法操作這類問題,作者E圖表述也給你們總結出這個方法,純操作,但是也是“秒殺”式的得到結果,希望能幫到不同程度的同學是作者的初心。
方法五
前面說了這么多方法,但是肯定有人會說“作者漏了一個函數”。
是的,對于連接字符串這類問題,確實還有一個函數可以使用——PHONETIC函數。還記得我們開篇說的這個數據源的問題嗎?我們用的是“數值格式的數字”,對于這個格式的數據,PHONETIC函數是不能夠連接的。那么這道題就不能用PHONETIC函數了嗎?當然可以用啦。
同學們看明白了嗎?當我們將單元格格式設置為文本之后,再次輸入數字,PHONETIC函數就可以連接這些內容了。但一個一個的輸入,確實很累,這時候我們可以選中源數據區域中的某列數據,使用“分列”功能,將數據逐列轉換為文本,那么這個題就解決了。
【應用】
作者E圖表述所作的一切EXCEL教程,都是本著一個宗旨:不做通用基礎教程,不做沒有實際意義的教程,力求“簡單暴力”的解決同學們工作中的問題。所以我認為:沒有實際案例的教程都是耍流氓!那么今天的“連接字符串”的功能有什么實際存在的意義呢?
案例一:制作日數據匯報
前文的小案例展示還記得吧,如果你細心、耐心地看到了這里,那么就可以看到更加優化的日數據匯報的格式。我們在A6單元格輸入函數(我們這里合并了A6:C6區域單元格,再縮進3個字節,是為了轉發時更美觀。)
=”匯報日期:”&
TEXT(A2+1,”yyyy年mm月dd日”)&
char(10)&
”????? 28日營業額:”&ROUND(B2/10000,2)&”萬元,”&
CHAR(10)&
”?????上周營業額:”&ROUND(C2/10000,2)&”萬元,”&
CHAR(10)&
”?????本周已銷售:”&ROUND(D2/10000,2)&
“萬元!”
使用“&”連接了各個字符串,由此我們可以發現,無論是函數返回值、文本字符串都可以使用“&”連接。接著使用CHAR(10)返回換行符,使要發送的內容更有層次感,這樣我們在要發送數據的時候,直接復制粘貼,再點發送就完工了。
這里值得一說的是:字符串連接后,其中的任何內容都是不帶格式的,比如日期格式、會計專用格式等等,在字符串連接后只保留常規格式,所以我們經常需要使用其他函數來轉換,就像案例中的TEXT函數將數據的格式轉換成日期格式一樣。
案例二:快速制作數據有效性的下拉內容
用數據驗證制作下拉菜單,相信很多同學都會,如果只有三、五種選項,我們直接在數據驗證窗口中錄入就好了。如果內容很多的話,我們也可以使用名稱管理器。那么借今天文章的主題,我們也可以采用PHONETIC函數來制作。
當然,從建模的角度來說,對于下拉菜單的做法,作者E圖表述還是主推“自定義名稱”結合“數據驗證”的方式來做,可以形成動態的下拉菜單內容。本案例是幫助不會復雜操作的同學,也可以有一個快速操作的體驗而設計的。
案例三:經典嵌套INDIRECT+CONCATENATE
我們還用之前的數據,假設我們要把表《方法一》到表《方法五》中,每個表中的A列數據求和,列在一個匯總表里(典型的總-分式匯總表)。如下圖所示:
B2單元格輸入函數:
{=SUM(–INDIRECT(CONCATENATE(A2,”!A2:A16″)))}
輸入完成后,按數組函數的結束鍵CTRL+SHIFT+ENTER三鍵結束。
函數解析:
A2單元格的值為“方法一”,“!A2:A16”是一個字符串,用CONCATENATE函數將二者連接起來,就形成了一個跨表引用的地址文本值。
?
再用INDIRECT函數,“激活”這個地址,形成引用,最后用SUM函數對這個區域內容求和即可。
為什么用了“–”?日常中我們可以不使用“–”和“三鍵”的,因為我們剛才把《方法五》中的A列分列成了“文本”格式,SUM不能對文本數據求和,所以這里我們用了“–”,將文本型數據轉換成了數值型數據。
【編后語】
&、CONCATENATE函數、PHONETIC函數,我們都有了整體的介紹,也都給了一個案例的展示,實際工作中還是要看每個人對于函數原理的理解和使用思路,函數語法和功能是死的,只有明白其應用的范疇,才可以靈活掌握。今天的教程就到這里了,多加練習吧。
相關學習推薦:excel教程