我试图用多个值分隔一个列--用逗号分隔--并将每个值移到下一行,同时从不同的列继承相关的值。
我找到了与R,Perl等相关的解决方案。然而,我想用excel或excel来处理这个问题。我也尝试过使用excel的“文本到列”特性,然后用一个直接链接映射新的单元格,但这并没有解决我的问题。
下面是excel表格:
Name Subject Topic Tags
Chinedu Mathematics Algebra Algebra, Trigonometry, Maths
Sophia English Comp English,comprehension, New tag
Sonia English Essay English, Essay Writing,Tag
John Maths. Trig. Maths, Trigonometry, New预期产出如下:
Name Subject Topic Tags
Chinedu Mathematics Algebra Algebra
Chinedu Mathematics Algebra Trigonometry
Chinedu Mathematics Algebra Maths
Sophia English Comp English
Sophia English Comp comprehension
Sophia English Comp New tag
John Maths. Trig. Maths
John Maths. Trig. Trigonometry
John Maths. Trig. New发布于 2019-09-12 04:17:56
您可以使用#powerquery,它可以在、Excel2010和更高版本的中找到。
请参考此文章,了解如何在您的Excel版本上使用电源查询。
逻辑是将源数据加载到Power,在选项卡下使用Transform拆分列函数,以逗号,分隔Tags列,并将结果放入Rows中。

那么,您应该拥有以下内容:

您可以对和Clean Tags列进行修剪,以使数据整洁,然后将输出表加载到新工作表(默认情况下),或者创建查询的连接,然后选择将其加载到工作簿中的特定位置。
下面是场景后面的power查询M代码,仅供参考。您只需要使用编辑器的内置函数就可以得到所需的结果。
let
Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Subject", type text}, {"Topic", type text}, {"Tags", type text}}),
#"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Changed Type", {{"Tags", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Tags"),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Tags", type text}}),
#"Trimmed Text" = Table.TransformColumns(#"Changed Type1",{{"Tags", Text.Trim, type text}}),
#"Cleaned Text" = Table.TransformColumns(#"Trimmed Text",{{"Tags", Text.Clean, type text}})
in
#"Cleaned Text"如果你有任何问题,请告诉我。干杯:)
https://stackoverflow.com/questions/57899567
复制相似问题