今天主要是來給大家分享一篇關于數據處理的技巧。
(相關資料圖)
即將單元格中的內容按照分隔符拆分為多行顯示。
效果如下:
今天主要來教大家3種方法:
PQ拆分法
空格替換提取數據法
OFFICE365函數法
方法一:利用PQ拆分單元格內容到多行
首先,將鼠標放在任意有數據的單元格中,點擊【數據】-【來自表格/區域】,勾選【表格包含標題】,然后確定。
選中【人員】這一列,然后點擊【拆分列】-【按分隔符】來拆分,然后輸入分隔符【、】,展開下方的【高級選項】,選擇拆分到行,然后確定。
下面,這份名單就已經拆分出來了,我們再點擊【關閉并上載至】,選擇現有工作表,選擇A8單元格即可。
效果如下:
溫馨提示:PQ僅在office2016及以上版本適用,WPA版本也暫不支持。
方法二:用空格替換提取數據法來拆分單元格內容到多行
如果你的excel版本較低,無法使用PQ的話,建議大家用空格替換提取數據法來解決這個問題。該法是一個經典套路,用多個(如99個)空格來替換分隔符,然后完成字符數不等的數據提取。
步驟1:計算各部門人數
首先,在C2單元格輸入公式=LEN(B2)-LEN(SUBSTITUTE(B2,"、",""))+1,然后下拉公式,獲取各個部門的人數。
步驟2:獲取部門名稱
下面,再在D2單元格中輸入公式
=OFFSET($A$1,INT((ROW(A1)-1)/MAX($C$2:$C$6))+1,0)
然后下拉填充。
此公式的含義是獲取部門名稱,重復的次數為C列的最大值。
步驟3:將人員名單拆分到多行
我們再在E2單元格輸入公式獲取人員名單,輸完公式后下拉填充。
=TRIM(MID(SUBSTITUTE(OFFSET($B$1,INT((ROW(A1)-1)/MAX($C$2:$C$5))+1,0),"、",REPT("",99)),MOD(ROW(A1)-1,MAX($C$2:$C$6))*99+1,99))
步驟4:刪除多余的單元格
最后,將多余的單元格刪掉即可得到我們想要的效果。
溫馨提示:上述公式還可以優化,只用三步完成操作。
步驟1相同。步驟2在D2中輸入公式并下拉填充:
=TRIM(MID(SUBSTITUTE(CONCAT(REPT($A$2:$A$6&"、",$C$2:$C$6)),"、",REPT("",99)),99*(ROW(A1)-1)+1,99)),
步驟3在E2中輸入公式并下拉填充:
=TRIM(MID(SUBSTITUTE(CONCAT($B$2:$B$6&"、"),"、",REPT("",99)),99*(ROW(A1)-1)+1,99))
方法2適用于低版本的excel表格,但很明顯,這些公式都太長,對于新手來說著實不太友好,不利于掌握,下面再來給大家介紹一種相對討巧的函數公式。
方法三:利用新函數TEXTSPLIT和TEXTJOIN來拆分單元格內容到多行
步驟1:計算各部門的人數
如下圖所示,在C2單元格輸入公式=COUNTA(TEXTSPLIT(B2,,"、")),然后下拉填充。
公式含義:先用TEXTSPLIT函數將B2單元格按照分隔符“、”拆分到列,然后用COUNTA函數來計數,即完成各部門的人數統計。
步驟2:提取部門名稱
在部門這一列,我們輸入公式=TEXTSPLIT(CONCAT(REPT(A2:A6&"、",C2:C6)),,"、",1)
公式含義:
首先,我們使用REPT函數,即根據指定次數重復文本,函數結構=(文本,次數)。
將各個部門按照各自的人數來重復,如行政部有3個人,即重復3次,中間用、連接。
再用CONCAT函數來將這一組多行多列的數據合并在一起,最后再用TEXTSPLIT函數將它們拆分到同一列中。
下面,在人員這一列,輸入公式=TEXTSPLIT(TEXTJOIN("、",,B2:B6),,"、")
公式含義:先用TEXTJOIN函數將數據用“、”合并在同一個單元格,然后再用TEXTSPLIT來拆分。
關于TEXTJOIN函數和TEXTSPLIT函數,在之前的教程中也會大家講解過,可以戳以下鏈接進行查看。
TEXTJOIN,Excel最強大的文本連接函數
千萬別用"分列"拆分數據了,試試這個新函數,效率太高了!