繁体   English   中英

将单元格中的值拆分为列和行

[英]Split values in cell into columns and rows

是否可以将一个单元格中的数据拆分为单元格和行? 我了解使用 power 查询,您可以使用分隔符将其拆分为 2 列,但我想知道是否也可以使用公式将这些数据拆分为行和列。 实际上所需的 output 可以位于电子表格中的任何位置(实际上将在 sheet2 中)。

在此处输入图像描述

在 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 将要“拆分”的单元格范围。

图像1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM