![](/img/trans.png)
[英]Excel: Split ; separated cell values into columns and then shift in consecutive rows
[英]Split values in cell into columns and rows
在 Power Query 中,您可以根据您的问题拆分为行和列。
<line feed>
作为分隔符拆分成行<space>
作为分隔符拆分为列- M代码
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}}),
//Remove the extraneous commas
#"Replaced Value" = Table.ReplaceValue(#"Changed Type",",","",Replacer.ReplaceText,{"Column2"}),
//Split by linefeed into rows
#"Split Column by Delimiter" = Table.ExpandListColumn(
Table.TransformColumns(#"Replaced Value", {
{"Column2", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv), let
itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Column2"),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column2", type text}}),
//split on the <space> into columns
#"Split Column by Delimiter1" = Table.SplitColumn(#"Changed Type1", "Column2",
Splitter.SplitTextByEachDelimiter({" "}, QuoteStyle.Csv, false), {"Column2.1", "Column2.2"}),
#"Changed Type2" = Table.TransformColumnTypes(#"Split Column by Delimiter1",{{"Column2.1", type text}, {"Column2.2", type text}})
in
#"Changed Type2"
根据问题通过公式:
A6
中的公式:
=FILTERXML("<t><s>"&TEXTJOIN("</s><s>",,REPT(A2:A3&"</s><s>",LEN(B2:B3)-LEN(SUBSTITUTE(B2:B3,CHAR(10),""))+1))&"</s></t>","//s[.!='']")
B6
中的公式:
=FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXTJOIN(CHAR(10),,B2:B4),",","")&CHAR(10),"ppm"&CHAR(10)," ")," ","</s><s>")&"</s></t>","//s[.*0!=0][.!='']")
C6
中的公式:
=FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXTJOIN(CHAR(10),,B2:B4),",","")&CHAR(10),"ppm"&CHAR(10)," ")," ","</s><s>")&"</s></t>","//s[.*0=0]")
虽然我也会根据其他答案推荐 PowerQuery。
是的。 通过 Microsoft Excel 文本到列function 在菜单数据 > 文本到列中找到。
理想的文本通常是等宽(需要等宽字体)或由逗号或其他类型的分隔符分隔。
提供好的数据 = 更好的结果
在单击“文本到列”之前,请确保 select 将要“拆分”的单元格范围。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.