我有一个表格,可以提供每月或每年的数据。表数据如下所示:
Item Date Name
Class 1 12/31/2010 David
Class 1 12/31/2011 David
Class 1 12/31/2012 David
Class 1 12/31/2010 Moses
Class 1 12/31/2011 Moses
Class 1 12/31/2012 Moses
Class 1 01/31/2012 Shelly
Class 1 02/28/2012 Shelly
Class 1 03/31/2012 Shelly
Class 1 04/30/2012 Shelly
Class 1 05/31/2012 Shelly
Class 1 06/30/2012 Shelly
Class 1 07/31/2012 Shelly
Class 1 08/31/2012 Shelly
Class 1 09/30/2012 Shelly
Class 1 10/31/2012 Shelly
Class 1 11/30/2012 Shelly
Class 1 12/31/2012 Shelly
Class 2 01/31/2012 Shelly
Class 2 02/28/2012 Shelly
Class 2 03/31/2012 Shelly
Class 2 04/30/2012 Shelly
Class 2 05/31/2012 Shelly
Class 2 06/30/2012 Shelly
Class 2 07/31/2012 Shelly
Class 2 08/31/2012 Shelly
Class 2 09/30/2012 Shelly
Class 2 10/31/2012 Shelly
Class 2 11/30/2012 Shelly
Class 2 12/31/2012 Shelly
Class 2 01/31/2012 David
Class 2 02/28/2012 David
Class 2 03/31/2012 David
Class 2 04/30/2012 David
Class 2 05/31/2012 David
Class 2 12/31/2011 Soni
Class 2 12/31/2012 Soni对于组合的Name and Item,日期差异可以是monthly或yearly。我想包括一个名为Flag的计算列。设置标志的条件是,如果用户输入了monthly数据,则将值设置为Yes else No。
因此,包含类1- Shelly的行和除Soni以外的第2类的所有行都应该设置为Yes。
有人能指点我吗?如果我尝试遍历和相交,对于某些列,结果是空行。
发布于 2017-03-21 16:31:00
假设每个项/名称配对至少有2个月的数据,则可以采用以下两种方法。请注意,除非您有2个月的数据,否则您无法判断,对于给定的年份,您是每月或每年接收数据。
DatePart("year",[Date]) as [Year]If(Count([Item]) OVER (Intersect([Name],[Item],[Year]))>1,"Yes","No") as [Flag]您可能认为有用的另一个表达式将对每个Year | Month | Item | Name配对应用一个秩/行号。下面是一个表达式,您可以使用该表达式查看用于该分析的数据(使用MAX())或执行其他聚合/逻辑检查所需的数据。
RankReal(Date(DatePart("year",[Date]),DatePart("month",[Date]),1),"asc",[Name],[Item],DatePart("year",[Date]),"ties.method=minimum") as [RowRank]https://stackoverflow.com/questions/42932387
复制相似问题