在 Excel 中处理具有多个值的列

在 Excel 中处理具有多个值的列

我有一张如下所示的 Excel 表格:

ID 最喜欢的水果
1 苹果、香蕉
2 草莓、香蕉
3 猕猴桃、苹果

我希望将每种水果放在不同的行中,如下所示:

ID 最喜欢的水果
1 苹果
1 香蕉
2 草莓
2 香蕉
3 奇异果
3 苹果

知道如何实现吗?

谢谢。

答案1

选择范围 - 转到数据-来自表格- 打开Power Query 编辑器- 选择最喜欢的水果柱及以下标签选择拆分列- 选择按分隔符- 选择最喜欢的水果.1最喜欢的水果.2列-转到转换-逆透视列- 消除属性列-改变价值名称最喜欢的水果-关闭并加载至...

在此处输入图片描述

答案2

您可以使用 Windows Excel 2010+ 和 Office 365 中提供的 Power Query 将逗号上的收藏夹列拆分为行。

使用 Power Query

  • 在数据表中选择一些单元格
  • Data => Get&Transform => from Table/Range
  • 当 PQ 编辑器打开时:Home => Advanced Editor
  • 记下表格姓名在第 2 行
  • 将下面的 M 代码粘贴到您所看到的位置
  • 将第 2 行的表名改回最初生成的表名。
  • 阅读评论并探索Applied Steps以了解算法

M 代码

let

//Read in the data
//Be sure to change Table Name in next line to the actual name in your workbook
    Source = Excel.CurrentWorkbook(){[Name="Fruits"]}[Content],

//set the data type
    #"Changed Type" = Table.TransformColumnTypes(Source,{
        {"id", Int64.Type}, 
        {"favorite fruits", type text}
        }),

//Split the Favorites column by the comma, into Rows!
    #"Split Column by Delimiter" = Table.ExpandListColumn(
        Table.TransformColumns(#"Changed Type", {
            {"favorite fruits", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), 
            let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "favorite fruits"),

//Trim the contents of the column to remove leading spaces (when delimiter was <comma> <space>
    #"Trimmed Text" = Table.TransformColumns(#"Split Column by Delimiter",{{"favorite fruits", Text.Trim, type text}})
in
    #"Trimmed Text"

在此处输入图片描述

相关内容