Excel-根據分隔符將一個單元格的內容分發到多個單元格


A1

1;2;3;4;5;6;7;;;;10

現在想將A1根據";"進行分離,再講分離出來的一個值填到一個單元格中

 

=TRIM(MID(SUBSTITUTE($A$12,";",REPT(" ",99)),(ROW(A1)-1)*99+1,99))

次值為1

=TRIM(MID(SUBSTITUTE($A$12,";",REPT(" ",99)),(ROW(A1)-1+1)*99+1,99))

次值為2

=TRIM(MID(SUBSTITUTE($A$12,";",REPT(" ",99)),(ROW(A1)-1+2)*99+1,99))

次值為3

 

TRIM=去掉空格

MID=從一個文本字符串的指定位置開始,截取指定數目的字符。MID(A1,4,3),表示從A1單元格中的第4個字符開始提取,提取字符為3個

SUBSTITUTE=如果需要在一個文字串中替換指定的文本,可以使用函數SUBSTITUTE.

REPT函數可以按照定義的次數重復顯示文本,相當於復制文本

ROW=返回所選擇的某一個單元格的行數。

    

實例
如果A1=學習的革命、A2=電腦
則公式=SUBSTITUTE(A1,"的革命",A2,1)
返回“學習電腦”

 

REPT("*-", 3) // 字符串顯示 3 次 *-*-*-
=REPT("-",10) //短划線顯示 10 次 ----------

 

 

------------------------------------------------------------------------------------------------------------------

發現使用過程中上面的公式有時不准確,下面另外一種方法

G6:

0.1;2.56;一生一世;D;E;F;G;H

 

0.1=

=MID(G6,1,FIND("@",SUBSTITUTE(G6,";","@",1))-1)

2.56=

 =MID(G6,FIND("@",SUBSTITUTE(G6,";","@",1))+1,FIND("@",SUBSTITUTE(G6,";","@",2))-FIND("@",SUBSTITUTE(G6,";","@",1))-1)

一生一世=

=MID(G6,FIND("@",SUBSTITUTE(G6,";","@",2))+1,FIND("@",SUBSTITUTE(G6,";","@",3))-FIND("@",SUBSTITUTE(G6,";","@",2))-1)

 

原理:

由於find只能獲取該字符串出現的第一個位置

0.1@2.56;一生一世;D;E;F;G;H    找到第一個;位置

0.1;2.56@一生一世;D;E;F;G;H    找到第二個;位置

Mid() 中間的數據數據就出來了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM