首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >M-将累积值(运行总数)转换为实际值

M-将累积值(运行总数)转换为实际值
EN

Stack Overflow用户
提问于 2017-12-08 04:18:18
回答 1查看 810关注 0票数 1

用户收到每月销售总额(只有数万行)的月度客户报告。销售结果显示为“运行总计”,我正试图找到一个powerquery解决方案,以获得实际的销售结果,如(*Required*)输出:

代码语言:javascript
运行
复制
╔══════╦═══════╦═════════╦═══════╦════════════╗
║ Year ║ Month ║ StoreID ║ Sales ║ *Required* ║
╠══════╬═══════╬═════════╬═══════╬════════════╣
║ 2017 ║    10 ║       1 ║     5 ║          5 ║
║ 2017 ║    11 ║       1 ║    11 ║          6 ║
║ 2017 ║    12 ║       1 ║    18 ║          7 ║
║ 2017 ║    11 ║       2 ║    10 ║         10 ║
╚══════╩═══════╩═════════╩═══════╩════════════╝

在tSQL,我会做一些类似的事情

代码语言:javascript
运行
复制
Sales - LAG(Sales,1,0)OVER(Partiton by Year, StoreID Order by Month)

一个模拟问题(但相反) was answered,但所提出的解决方案看起来相当于交叉连接。我对powerquery还不熟悉(所以我可能误解了),但随着数据集的每个月增长,我看不出这是可行的。有没有更好的方法来解决这个问题,我在"M“中找不到一个例子?

编辑: List.Range看起来很有希望

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-08 19:31:42

实际上,您需要当前行上一行的值。一种常见的方法是添加两个索引列,一个从0开始,另一个从1开始。接下来,使用索引列作为连接列与表本身合并。从嵌套表展开所需列后,可以添加具有所需计算的自定义列。

代码语言:javascript
运行
复制
let
    Source = Sales,
    #"Added Index" = Table.AddIndexColumn(Source, "Index", 0, 1),
    #"Added Index1" = Table.AddIndexColumn(#"Added Index", "Index.1", 1, 1),
    #"Merged Queries" = Table.NestedJoin(#"Added Index1",{"Index"},#"Added Index1",{"Index.1"},"Previous",JoinKind.LeftOuter),
    #"Expanded Previous" = Table.ExpandTableColumn(#"Merged Queries", "Previous", {"StoreID", "Sales"}, {"Previous.StoreID", "Previous.Sales"}),
    #"Sorted Rows" = Table.Sort(#"Expanded Previous",{{"Index", Order.Ascending}}),
    #"Added Custom" = Table.AddColumn(#"Sorted Rows", "Required", each [Sales] - (if [StoreID] = [Previous.StoreID] then [Previous.Sales] else 0), Int64.Type),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Index", "Index.1", "Previous.StoreID", "Previous.Sales"})
in
    #"Removed Columns"
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47707641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档