我想在查询编辑器(QE)中创建一个表格,显示我的客户编号,年份,金额和自定义列,表明过去3年的金额是否为空。
我尝试了多种解决方案,但似乎都没有。我在查询编辑器中需要这个。我不能用这个措施。
有人可以帮我这个吗?如果您有任何需要额外信息,请告诉我,我会看到我能做些什么。
例如我的结果应该是什么:
Clientnumber Year Amount Custom table
1 2016 2100 FALSE
1 2017 2000 FALSE
1 2018 100 TRUE
2 2016 0 FALSE
2 2017 100 FALSE
2 2018 3800 FALSE
2 2019 2357 TRUE
我希望这个例子有所帮助!
答案 0 :(得分:1)
花了一分钟来理解你的意思,但我假设你正在寻找的是你所看到的记录年份以及前两年的每一年。
我也在假设这些数据已经汇总,因此每个客户每年只有一个金额(如果情况不是这样的话,您可以在PQ中轻松汇总这个数据)。
我不知道这是否是“正确”的方法,但我基本上只是在做一个countifs函数。添加一个自定义列并将其放入其中(我假设您提供的示例作为没有自定义列的起点,因此引用“Source”作为查询的第一步):
.c
答案 1 :(得分:1)
好吧我想到了一种完全不同的方法,即使PQ看起来很奇怪,也会对PQ更有意义。我认为这应该快得多。
制作一些包含Year - 1和Year - 2的自定义列,以获得过去两年。现在使用Merge Queries函数,并将表与自身合并。 Cntrl-选择客户端,然后选择您在顶部表格中为Year - 1创建的列,并选择Cntrl - 选择Client,然后在底部表格中选择当前Year的列。从结果中展开金额,但将其命名为上年金额或其他任何金额。对于第-2年列,请执行相同的操作。
然后只需添加一个自定义列,检查三年金额中的0或空值,即可获得答案。
这里是最终表格的样子和完整的M代码(显然,您可以在完成后删除带有前一年/ amt参考的列。)
let
Source = Table1,
#"Merged Queries" = Table.NestedJoin(Source,{"Client", "Year"},Source,{"Client", "Year"},"Source",JoinKind.LeftOuter),
#"Removed Columns" = Table.RemoveColumns(#"Merged Queries",{"Source"}),
#"Added Custom" = Table.AddColumn(#"Removed Columns", "PY", each [Year]-1),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "PPY", each [Year]-2),
#"Merged Queries1" = Table.NestedJoin(#"Added Custom1",{"Client", "PY"},#"Added Custom1",{"Client", "Year"},"Added Custom1",JoinKind.LeftOuter),
#"Expanded Added Custom1" = Table.ExpandTableColumn(#"Merged Queries1", "Added Custom1", {"Amt"}, {"PY.Amt"}),
#"Merged Queries2" = Table.NestedJoin(#"Expanded Added Custom1",{"Client", "PPY"},#"Expanded Added Custom1",{"Client", "Year"},"Expanded Added Custom1",JoinKind.LeftOuter),
#"Expanded Expanded Added Custom1" = Table.ExpandTableColumn(#"Merged Queries2", "Expanded Added Custom1", {"Amt"}, {"PPY.Amt"}),
#"Added Custom2" = Table.AddColumn(#"Expanded Expanded Added Custom1", "ThreeYearCheck", each not List.ContainsAny({[Amt],[PY.Amt],[PPY.Amt]}, {null, 0})),
#"Sorted Rows" = Table.Sort(#"Added Custom2",{{"Client", Order.Ascending}, {"Year", Order.Ascending}})
in
#"Sorted Rows"
答案 2 :(得分:-1)
DAX 正是您所期待的for。
使用数据分析表达式(DAX)来解决许多基本的计算和数据分析问题