excel - Powerquery:将多值单元格拆分为空单元格下方

标签 excel powerquery m

我正在通过 Powerquery 将大量表格从 pdf 文件导入到 Excel 中 - 效果非常好。

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

在某些情况下 - 尤其是。分页符后 - 应该进入单个单元格(一个在另一个单元格下面)的单个值被放置到一个由换行符连接的单元格中,并且下面的单元格为空。

sample of cell with multi-value and expected result

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

(这是一种“ split 的深入分析”......)

我对 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

这需要一个像这样的起始表: Start

A 列转换为列表,分割换行符上的每个元素,将每个结果重新组合在一起,并过滤掉 null 和空字符串:

Transform

最后一步从原始表中获取列 WeekB 并将转换后的列 A 粘贴在中间:

Result

如果额外扩展的行数与删除的空白行数不完全匹配,您将会遇到麻烦,但这应该在它们匹配的假设下有效。

关于excel - Powerquery:将多值单元格拆分为空单元格下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68624072/

相关文章:

excel - Power Query - 多级父子

powerbi - 在 PowerBI 的另一列中为相应组添加 "missing"日期行和默认值?

Excel Power Query - 通过比较两列来过滤行

excel - 如何使用 Power Query 在同一列中进行增量求和?

Excel VBA - 使用 3 个行元素和 1 个列元素从数据透视表中获取数据

powerquery - 扩展表时 Power Query 缺失值

ruby-on-rails - 使用 Ruby 生成 Excel 文档

excel - 从周数、星期几和年份获取日期 PowerQuery M

arrays - 具有 n 行和列的动态数组

c# - Visual Basic "Module not Found"错误