用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 | |||
#8 | ##100000 |
#100000 | 800000 |
#欄位3 | 6 | ###10000############60000######################################################################## #4############1000############4000##################欄位5## ##########0#############100### | 000 |
#4 |
#4 |
||
##10 |
40 |
再把對應的乘積相加是不是就是我們的結果了?這裡要給同學們一個建議:如果想學好數組函數,就一定要提高「邏輯思維」的能力,上面的這三張表就是我們數組函數的計算過程,我們寫這個函數的過程,基本上就是以這個思路,再選擇相對應的函數來編輯的。也就是說能夠允許我們沒有電腦運作的速度,但是一定要有和電腦一樣的運作思路。
方法四
巧藉其他程式來解決。
為了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教學
以上是實用Excel技巧分享:連結字串的神奇妙用!的詳細內容。更多資訊請關注PHP中文網其他相關文章!