在Power BI中使用带日期的true开关

时间:2018-12-19 15:33:22

标签: powerbi dax

我正在研究Power BI中的一个问题,以便根据日期条件对行进行分类。我的第一个想法是使用嵌套的if语句,但意识到switch(True()函数可能更适合。不幸的是,由于某些原因,该语句从[Result2]跳转到[Result3],并且在之后没有考虑任何条件首先。

我有一个连续的日期范围,基本上,如果日期介于w和x之间,我想返回一个特定值,如果日期介于y和z之间,我想返回另一个值。

我正在使用“新列”,并且日期被格式化为日期。我的公式如下:

Column 2 = 
SWITCH(TRUE(),
   Dates[Date]>01/01/2007 && Dates[Date]<08/30/2008,"2007/2008",
   Dates[Date]>08/31/2008 && Dates[Date]<08/30/2009,"2008/2009",
   Dates[Date]>08/31/2009 && Dates[Date]<08/30/2010,"2009/2010",
   Dates[Date]>08/31/2010 && Dates[Date]<08/30/2011,"2010/2011",
   Dates[Date]>08/31/2011 && Dates[Date]<08/30/2012,"2011/2012",
   Dates[Date]>08/31/2012 && Dates[Date]<08/30/2013,"2012/2013",
   Dates[Date]>08/31/2013 && Dates[Date]<08/30/2014,"2013/2014",
   Dates[Date]>08/31/2014 && Dates[Date]<08/30/2015,"2014/2015",
   Dates[Date]>08/31/2015 && Dates[Date]<08/30/2016,"2015/2016",
   Dates[Date]>08/31/2016 && Dates[Date]<08/30/2017,"2016/2017", 
   "Unaccounted")

2 个答案:

答案 0 :(得分:4)

Olly有一个很好的建议,但是可以使用时间智能功能STARTOFYEAR来简化它,其中第二个参数表示年末。

New Column = 
VAR StartYear = YEAR(STARTOFYEAR(Dates[Date], "08/31"))
RETURN StartYear & "/" & StartYear + 1

还值得注意的是,在您的SWITCH函数中,每年的8月30日和31日均未说明。我猜这不是故意的。

答案 1 :(得分:2)

当您获得价值时,这是一种低效的处理方式。

尝试

.enrichHeaders()