Использование переключателя true в Power BI с датами - PullRequest
0 голосов
/ 19 декабря 2018

Я работаю над проблемой в Power BI, чтобы классифицировать строки на основе критерия даты.Моей первой идеей было использование вложенного оператора if, но я понял, что функция switch (True () может быть более подходящей. К сожалению, по какой-то причине оператор переходит с [Result2] на [Result3] и не учитывает никаких критериев послеfirst.

У меня есть непрерывный диапазон дат, и в основном, если даты попадают между 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 голосов
/ 19 декабря 2018

У Оли есть хорошее предложение, но его можно упростить, используя функцию анализа времени STARTOFYEAR, где второй аргумент указывает на конец года.

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

Стоит также отметить, что в вашем SWITCHфункции, 30 и 31 августа не учитываются для каждого года.Я предполагаю, что это не преднамеренно.

0 голосов
/ 19 декабря 2018

Это неэффективный способ справиться с этим, когда ваше значение может быть получено.

Попробуйте

New Column = 
VAR StartYear = 
    YEAR ( Dates[Date] ) + 
    IF ( 
        MONTH ( Dates[Date] ) < 9,
        0,
        1
    )
RETURN
    StartYear & "/" & StartYear + 1
...