Power Query 中是不是有一种方法可以根据基于文本值重置的两列计算运行总计?
Posted
技术标签:
【中文标题】Power Query 中是不是有一种方法可以根据基于文本值重置的两列计算运行总计?【英文标题】:Is there a way in Power Query to calculate a running total based upon two columns that resets based on a text value?Power Query 中是否有一种方法可以根据基于文本值重置的两列计算运行总计? 【发布时间】:2019-04-10 18:51:21 【问题描述】:我正在尝试在 Power Query 中为每个财政年度的每个月创建一个运行总计,并在新财政年度开始时重置。
我可以为整个列创建一个运行总计,但我不知道如何在每次 ClosedMonth 等于四月/会计年度更改时重置总计。
我想在 Power Query 中执行此操作,因为我正在从数据库加载数据,并且希望表在每天安排 Power BI 刷新时自动更新。
我试图为运行总计列实现的结果是:
【问题讨论】:
【参考方案1】:创建名为 fnAddRunningSum 的函数
(MyTable as table) as table =>
//see: https://community.powerbi.com/t5/Desktop/How-to-do-a-running-Sum-by-group-in-Power-Query/td-p/290123
let Source = Table.Buffer(MyTable),
TableType = Value.Type(Table.AddColumn(Source, "Running Sum", each null, type number)),
Cumulative = List.Accumulate(Source[Count],,(cumulative,amount) => cumulative & List.Last(cumulative, 0) + amount),
AddedRunningSum = Table.FromColumns(Table.ToColumns(Source)&Cumulative,TableType)
in AddedRunningSum
然后创建查询
let Source = Excel.CurrentWorkbook()[Name="Table1"][Content],
#"Grouped" = Table.Group(Source, "ClosedFiscalYear", "AllData", fnAddRunningSum),
#"Expanded AllData" = Table.ExpandTableColumn(#"Grouped", "AllData", "ClosedMonth", "Count", "Index", "Running Sum", "ClosedMonth", "Count", "Index", "Running Sum")
in #"Expanded AllData"
【讨论】:
以上是关于Power Query 中是不是有一种方法可以根据基于文本值重置的两列计算运行总计?的主要内容,如果未能解决你的问题,请参考以下文章