我正在使用一个数据集,其中单元格中的多个值被标记在位置、主机、访客和存储桶等类别下,并用换行符分隔。我需要根据标签将它们分成单独的列,但值不一致,因此通过换行符分隔会创建许多不需要的列。此外,我需要将多个访客和存储桶合并到每个类别的单列中。
列标题建议我在单独的列中需要的值,但并非所有标题都是必需的,因为某些列大部分为空。它们有数百个,所以我无法手动完成。
当我使用分隔符分隔数据时,它对于“位置”和“主机”列效果很好,因为它们在整个列中都很相似,但其他值(例如“访客”和“存储桶”)在单元格之间不一致,因此它们在之后会溢出到不同的列中分离。当尝试正确构建数据时,这会导致问题。
我已经清理了大部分数据集,但我仍然不知道如何处理这些不一致的模式。我花了几个小时试图弄清楚,尝试使用不同的公式,如 textsplit、wrapcols、wraprows 等,但无济于事。我很沮丧请帮忙。
您能建议解决这个问题的最佳方法吗?任何意见或建议将不胜感激!
我不清楚您的需求,但看看以下内容是否能让您到达您想要的位置。
假设起始表为:
活动 | 您的专栏 |
---|---|
阿尔法 | 位置:LocAlpha 主机:HstAlpha1 主机:HstAlpha2 访客:GstAlpha1 访客:GstAlpha2 访客:GstAlpha3 音乐访客:MGAlpha1 音乐访客:MGAlpha2 安全:SecAlpha1 存储桶:BktAlpha1 存储桶:BktAlpha2 存储桶:B kt阿尔法3 桶:BktAlpha4 常规:RegAlpha1 常规:RegAlpha2 |
测试版 | 位置:LocBeta 主持人:HstBeta1 主持人:HstBeta2 客人:GstBeta1 客人:GstBeta2 客人:GstBeta3 音乐客人:MGBeta1 音乐客人:MGBeta2 安全:SecBeta1 存储桶:BktBeta1 BktBeta 2 桶:BktBeta3 存储桶:BktBeta4 常规:RegBeta1 常规:RegBeta2 |
查理 | 位置:LocCharlie 主机:HstCharlie1 主机:HstCharlie2 客人:GstCharlie1 音乐客人:MGCharlie1 安全:SecCharlie1 存储桶:BktCharlie1 存储桶:BktCharlie2 常规:RegCharlie1 常规:RegCharlie2 |
您可以执行以下步骤:
List.Sum([Value])
与
Text.Combine([Value], ", ")
给您以下结果表:
活动 | 地点 | 主持人 | 嘉宾 | 音乐嘉宾 | 安全 | 桶 | 常规 |
---|---|---|---|---|---|---|---|
阿尔法 | LocAlpha | HstAlpha1、HstAlpha2 | GstAlpha1、GstAlpha2、GstAlpha3 | MGAlpha1、MGAlpha2 | SecAlpha1 | BktAlpha1、BktAlpha2、BktAlpha3、BktAlpha4 | RegAlpha1、RegAlpha2 |
测试版 | LocBeta | HstBeta1、HstBeta2 | GstBeta1、GstBeta2、GstBeta3 | MGBeta1、MGBeta2 | SecBeta1 | BktBeta1、BktBeta2、BktBeta3、BktBeta4 | RegBeta1、RegBeta2 |
查理 | 洛克查理 | HstCharlie1,HstCharlie2 | GstCharlie1 | MG查理1 | 第二查理1 | Bkt查理1,Bkt查理2 | RegCharlie1、RegCharlie2 |
全电量查询:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Event", type text}, {"Your Column", type text}}),
#"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Changed Type", {{"Your Column", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Your Column"),
#"Split Column by Delimiter1" = Table.SplitColumn(#"Split Column by Delimiter", "Your Column", Splitter.SplitTextByDelimiter(": ", QuoteStyle.Csv), {"Category", "Value"}),
#"Trimmed Text" = Table.TransformColumns(#"Split Column by Delimiter1",{{"Value", Text.Trim, type text}}),
#"Grouped Rows" = Table.Group(#"Trimmed Text", {"Event", "Category"}, {{"Values", each Text.Combine([Value], ", "), type nullable text}}),
#"Pivoted Column" = Table.Pivot(#"Grouped Rows", List.Distinct(#"Grouped Rows"[Category]), "Category", "Values")
in
#"Pivoted Column"