Power Query 能否以不同级别的小计详细信息对数据进行表格化?
Posted
技术标签:
【中文标题】Power Query 能否以不同级别的小计详细信息对数据进行表格化?【英文标题】:Can Power Query tabularize data with different levels of sub-total detail? 【发布时间】:2021-12-31 04:20:36 【问题描述】:我是一名熟练的 Excel 用户,但对 Power Queries 不熟悉 - 它们看起来很强大,但我对 Quickbooks 报告的表格化感到厌烦。
简而言之,数据包括几列层次结构,全部展开到最低节点,并包括子标题和小计。我需要对这些数据进行表格化,但是当一个部分的详细信息有 3 列深而下一部分只有 2 列深时,“填充”(在第 3 列中)会错误地填充不同部分中的子标题。
如果这没有意义,我整理了一个屏幕截图,希望能更好地说明这个问题:
提前谢谢你, 狄龙
【问题讨论】:
【参考方案1】:这是一个数据透视表吧? 转到“设计”-> 下拉“报表布局”-> 以表格形式显示
【讨论】:
不,这不是数据透视表【参考方案2】:如果您显示的不是数据透视表,而是 Quicken 的输出,那么您可以:
仅填写第 1 列 按第 1 列分组 使用自定义聚合填充每个子表中的第 2 列 然后展开子表 删除包含 null 的金额行 重置数据类型let
//cahnge table name in next line to the real table name in your workbook
Source = Excel.CurrentWorkbook()[Name="Table3"][Content],
#"Changed Type" = Table.TransformColumnTypes(Source,
"Column1", type text, "Column2", type text, "Item", type text, "Amount", Currency.Type),
//Fill down the main group
#"Filled Down" = Table.FillDown(#"Changed Type","Column1"),
//group by Column 1; then fill down subgroup in column 2
group = Table.Group(#"Filled Down","Column1",
"subGroup", each Table.FillDown(_,"Column2")
),
#"Expanded subGroup" = Table.ExpandTableColumn(group, "subGroup", "Column2", "Item", "Amount", "Column2", "Item", "Amount"),
#"Filtered Rows" = Table.SelectRows(#"Expanded subGroup", each ([Amount] <> null)),
#"Changed Type1" = Table.TransformColumnTypes(#"Filtered Rows","Column2", type text, "Item", type text, "Amount", Currency.Type)
in
#"Changed Type1"
【讨论】:
这很有帮助,但实际上,我的数据集有 1-7 列。如何扩展它以处理更多列? @DevinMiller 如果除了最后两列之外的每一列都指向一个子组,我可能会设置一个递归函数。但是,如果您只有五列要处理,那么在代码中连续执行它们可能会更简单。以上是关于Power Query 能否以不同级别的小计详细信息对数据进行表格化?的主要内容,如果未能解决你的问题,请参考以下文章