Power Query - 使用特殊文本条件向下填充
Power Query - Fill Down with special text conditions
我正在尝试清理一份详细的大型损益报告,它包括 Category
和 Sub Category
列。我已成功填写 Category
列。但是,Sub Category
列只有分散在整个报告中的子类别名称,因此正常的向下填充将不起作用。
如何从存在子类别值的地方开始向下填写,但只继续向下填写子类别总计描述?
下图中的示例:Sub Category = "Closing stock - cattle"
用这些确切的词 - Closing stock - cattle
填充,直到显示为 Total Closing stock - cattle
的单元格。然后以相同的格式从新的子类别中向下填充。
基本上,Total
这个词是一个非常重要的部分,因为我不想让那个特定的值向下填充。请注意,可能有数百行没有 Sub category
.
将总行过滤到它们自己的table,填写,然后追加总行。
let
StartTable = <Your Data Source>,
NoTotals = Table.SelectRows(StartTable, each not Text.Contains([Sub Category], "Total") or [Sub Category] = null),
OnlyTotals = Table.SelectRows(StartTable, each Text.Contains([Sub Category], "Total")),
FillDown = Table.FillDown(NoTotals, {"Sub Category"}),
Append = Table.Combine({FillDown, OnlyTotals})
in
Append
如果您需要它回到起始顺序,请在进行任何过滤之前添加一个索引列,然后在最后一步按该索引排序。
试试这个
#"Duplicated Column" = Table.DuplicateColumn(#"PreviousStep", "Subcategory", "Dupe"),
#"Filled Down" = Table.FillDown(#"Duplicated Column",{"Dupe"}),
#"Added Custom" = Table.AddColumn(#"Filled Down", "Custom", each if [Subcategory]=null then (if Text.Contains([Dupe], "Total") then [Subcategory] else [Dupe]) else [Dupe]),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Subcategory", "Dupe"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Custom", "Subcategory"}})
我正在尝试清理一份详细的大型损益报告,它包括 Category
和 Sub Category
列。我已成功填写 Category
列。但是,Sub Category
列只有分散在整个报告中的子类别名称,因此正常的向下填充将不起作用。
如何从存在子类别值的地方开始向下填写,但只继续向下填写子类别总计描述?
下图中的示例:Sub Category = "Closing stock - cattle"
用这些确切的词 - Closing stock - cattle
填充,直到显示为 Total Closing stock - cattle
的单元格。然后以相同的格式从新的子类别中向下填充。
基本上,Total
这个词是一个非常重要的部分,因为我不想让那个特定的值向下填充。请注意,可能有数百行没有 Sub category
.
将总行过滤到它们自己的table,填写,然后追加总行。
let
StartTable = <Your Data Source>,
NoTotals = Table.SelectRows(StartTable, each not Text.Contains([Sub Category], "Total") or [Sub Category] = null),
OnlyTotals = Table.SelectRows(StartTable, each Text.Contains([Sub Category], "Total")),
FillDown = Table.FillDown(NoTotals, {"Sub Category"}),
Append = Table.Combine({FillDown, OnlyTotals})
in
Append
如果您需要它回到起始顺序,请在进行任何过滤之前添加一个索引列,然后在最后一步按该索引排序。
试试这个
#"Duplicated Column" = Table.DuplicateColumn(#"PreviousStep", "Subcategory", "Dupe"),
#"Filled Down" = Table.FillDown(#"Duplicated Column",{"Dupe"}),
#"Added Custom" = Table.AddColumn(#"Filled Down", "Custom", each if [Subcategory]=null then (if Text.Contains([Dupe], "Total") then [Subcategory] else [Dupe]) else [Dupe]),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Subcategory", "Dupe"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Custom", "Subcategory"}})