Excel 單元格拆分提取元素過程 計算 查找字符位置 生成列模式(excel函數公式大全)
喜歡用Excel的一個原因是函數簡單,結果直觀,寫程序時一些規律性的東西更容易生成。
以南京地鐵站信息為例,隨便網頁上搜了一下,顯示站點格式為:邁皋橋、紅山動物園、南京站、新模范馬路、玄武門,我想把它轉化為一個站點一個單元格的形式,一個站一個站的復制粘貼太費勁,而用函數還是很容易實現的呢。
1、計算站點數
我把站點信息拷貝到B1,每個站點名稱后面跟一個“、”號,所以提取“、”中間的字符即可。
站點數的統計,這里也有方法,站點后面跟“、”,統計出“、”字符出現的次數再加1就出來了。countif函數只能查單元格某字符出現的次數,一個單元格出現的某字符數就無能為力了,所以我們用另外的方法,統計字符串長度,然后把要查的字符替換成空,再統計長度,兩者之差就是需要統計的字符串的長度了。
LEN(B1)查詢的是B1單元格字符數,SUBSTITUTE(B1,"、",)是把B1中的“、”去掉,去掉后再LEN一下,兩者差就是“、”出現的次數,再加1就是一號線站點數了,共27站。
2、查找字符位置
琢磨了很久沒找到只用一次單元格函數就把每個站點拆分出來的方法,所以我用力二次函數。第一次是找到“、”在單元格的位置,用find函數來找,find函數可以指定開始位置,然后返回找到的第一個字符的位置。
$B$1的意思是固定行列號,Excel有下拉功能,下拉的時候會按照第一個單元格的函數生成,但是涉及單元格位置的地方也會跟著變動,加上$號就固定了。從個B1中查找“、“,起始位置為前一個”、“+1的位置。然后下拉,把所有”、“位置生成。
3、生成列模式
生成列就很簡單了,下圖是我生成的,MID、LEFT、RIGHT為取值函數,我用MID,從B1中取,取值其實位置為第N個”、“后一位的位置,字符長度為兩個”、“位置差減1的位置,要注意第一個和最后一個。
4、轉回原來
當然能提取站點信息變成列信息,反過來把列信息變成一行信息呢,這個難不倒我。
先用&把”、“加上,然后把列元素復制一下,選擇性粘貼,選數值和轉置,數值就是把用函數生成的結果粘貼成字符,否則粘貼出來就是函數,顯示就為空了。轉置把列轉成行了,不然下一步操作后全是換行。
調出剪貼板,把成行的站點信息復制,然后找個空單元格,點擊剪貼板里面的全部粘貼,生成的結果可能有空格,SUBSTITUTE(B1," ",)把空格去掉就OK了。
覺得用的到的同學可以自己試一把。而我也在試著把這些做成宏,這樣用起來會更方便些。后面也會不斷分享我的方法,主要是Excel,也會有一些其它的工具。覺得不錯可以轉發
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。