最近大家都在討論分列的操作,示例數據如下(紅色的部分),有一組數據省市全部顯示在一個單元格之中,而這樣不利於我們進行一些數據分析,需要把省和市分割到兩列中。對於以上的分列方法有很多種,這里就說說兩種比較簡單的分列這種數據的方法。
方法一:使用直接分列法進行數據分割
在數據標簽下,有分列選項如下圖所示。
選中我們要分列的數據,然后點擊分列,彈出如下的對話框:
選擇分隔符號,點擊下一步,如下所示:
此處選擇分隔符號為其他,並輸入分隔符合為省,如上圖設置所示。之后點擊下一步,如下圖所示:
列數據格式選擇文本,目標區域就是輸出的區域,可以看到數據預覽區域已經給出了分列后的形式,點擊完成,出現以下的數據內容。
按照這樣的操作可以繼續分列下去,不過有一點不好的是分列的字符會在分列的過程中被省掉了,因此如果還需要“省”,還要使用連接符號,再把“省”找回,如下圖所示:
方法二:公式法(left、mid、find)
首先我們增加一個輔助列,如下圖藍色區域所示:
首先先解釋一下函數使用說明信息:
LEFT是根據所指定的字符數,LEFT 返回文本字符串中第一個字符或前幾個字符。
LEFT(text,num_chars)
Text 是包含要提取的字符的文本字符串。
Num_chars 指定要由 LEFT 提取的字符的數量。
FIND返回一個字符串在另一個字符串中出現的起始位置(區分大小寫)
FIND(find_text,within_text,start_num)
Find_text 要查找的文本。
Within_text 包含要查找文本的文本。
Start_num 指定要從其開始搜索的字符。within_text 中的首字符是編號為 1 的字符。如果省略 start_num,則假設其值為 1。
MID 返回文本字符串中從指定位置開始的特定數目的字符,該數目由用戶指定。
MID(text,start_num,num_chars)
Text 是包含要提取字符的文本字符串。
Start_num 是文本中要提取的第一個字符的位置。文本中第一個字符的 start_num 為 1,以此類推。
Num_chars 指定希望 MID 從文本中返回字符的個數。
我們最終要達到的效果是在C列和D列將省市分離出來,通過以下的操作即可實現。
分列一我們要分出來省級名稱,在C2的位置輸入公式:
=LEFT(A2,FIND($B$2,A2))
分列二我們要分出來市級名稱,在D2的位置輸入公式:
=MID(A2,FIND($B$2,A2)+1,FIND($B$3,A2)-FIND($B$2,A2)+1)
公式計算
省名稱計算公式說明
首先以C2單元格公式計算為例解釋如何將省名稱信息分列出來。這里通過公式計算來理解,如下圖所示:
單擊求值,首先求出來A2的信息,如下圖所示:
點擊求值,find函數將從A2中(注意不是left取出的信息)找到“省”的位置。
Find函數最終取出省的位置,返回一個數值,此數值是用於計算left應該取出的字符個數,進而幫助left計算截取字符。
最后求出結果,如下圖所示。
市名稱計算說明
原始公式如下所示,點擊求值。
首先mid函數取出A2信息,便於最后進行計算。
之后第一個find開始計算截取字符的起始位置,此處需要注意的是在取出省的位置后要加1,否則最后會把 “省”也取出來。
繼續求值,此時第二個find計算“市”出現的位置,如下圖所示。
繼續求值,第三個find開始計算,其實就是“省”的位置,第二個find計算結果減去第三個find計算結果就是市的名稱信息。如下圖所示。
即從以上字符串中的第4個位置開始取3個字符,此時正好輸出市的信息。
以上為兩種比較簡單的針對不同長度且有關鍵字的數據進行分列的方法,當然也有其他的方法,比如通過處理文本在省和市之后加上分隔符,在進行分列,其實原理都是相同的。