PowerQuery:将多值单元格拆分到空单元格下方 [英] Powerquery: split multi-value cell to below empty cells

查看:15
本文介绍了PowerQuery:将多值单元格拆分到空单元格下方的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在用PowerQuery将很多表格从pdf文件导入到Excel中,它工作得很好。

除了其他几个迁移外,我还有以下无法解决的任务:

在某些情况下--特别是。换页符之后-应该放入单个单元格(一个在另一个下面)的单元格被放入一个用换行符连接的单元格,而下面的单元格是空的。

我需要拆分这样一个单元格的值(单元格内容包含换行符),并将第2到n个值放入此单元格下方相应的空单元格中。

(这是一种拆分的向下钻取(&Q;...)

我对M(不是VBA或编程)非常陌生,但我找不到有效的解决方案。

推荐答案

这很难很好地完成,但您可以按照@horseyride的建议,在换行分隔符上使用Text.Split展开,删除第二列上的空行,然后使用Table.FromColumns将这些列重新组合在一起。

下面是一个可以粘贴到高级编辑器中的示例:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUUoEYkMDpVgdCDcJiI0gXCMgMxkkawrnpsTkpcbkpYEEjeCCIJ4FMs8IImcMZKaDJI3h3AwQ11wpNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Week = _t, A = _t, B = _t]),
    TransformA = List.Select(List.Combine(List.Transform(Source[A], each Text.Split(_, "#(lf)"))), each Text.Length(_) > 0),
    FromCols = Table.FromColumns({Source[Week], TransformA, Source[B]}, {"Week", "A", "B"})
in
    FromCols

这采用如下所示的起始表:

A列转换为列表,拆分换行符上的每个元素,将每个结果组合在一起,并筛选出空字符串:

最后一步从原始表中取出列WeekB,并将转换后的列A放在中间:

如果额外展开的行数与删除的空行数不完全匹配,您将遇到麻烦,但这应该在它们确实匹配的假设下工作。

这篇关于PowerQuery:将多值单元格拆分到空单元格下方的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆