Forum Discussion

CallumJ's avatar
CallumJ
Frequent Visitor
4 years ago
Solved

If Else Date Question

Hi All,

Ratting around in my brain to see how this would work, here is my data:

No.StageDate
1P10/05/2022
1F12/08/2022
1A 
2P 
2F15/06/2022
2A22/08/2022
3P 
3F20/08/2022
3A 
4P25/06/2022
4F25/04/2022
4A15/06/2022

 

P, F & A are Planned, Forecast & Actual. I am creating a new table (Duplicated query and grouped columns) for this data which amalgamates it, part of the requirement is that I must populate the date column in a certain way - If there is an Actual Date, use that, else use Forecast Date, Else use Planned Date.

New Table:

No.Date
112/08/2022
222/08/2022
320/08/2022
415/06/2022

 

I'm a bit lost as to how to reference the Stage column while using those If & Else conditions. Any help would be greatly appreciated.

  • CallumJ Create a Column like this:

    Column =
    VAR A_ = CALCULATE(MAX(StageTable[Date]),StageTable[Stage]="A",ALLEXCEPT(StageTable,StageTable[No.]))
    VAR P_ = CALCULATE(MAX(StageTable[Date]),StageTable[Stage]="P",ALLEXCEPT(StageTable,StageTable[No.]))
    VAR F_ = CALCULATE(MAX(StageTable[Date]),StageTable[Stage]="F",ALLEXCEPT(StageTable,StageTable[No.]))
    RETURN SWITCH(TRUE(),
    A_=BLANK(),F_,
    P_=BLANK(),A_,
    F_=BLANK(),A_,
    A_
    )
     
     

4 Replies

  • CallumJ , Based on what I got

    A new calculated table in dax  =

    Summarize(Filter(Table, not(isblank(Table[Date])) , Table[No], "Date", Max(Table[Date]) )

    • CallumJ's avatar
      CallumJ
      Frequent Visitor

      Hi Amitchandak,

      Appreciate your response, however I need an order of preference for the Dates, i.e. if A ISNOTNULL() then use the A Date, else if F ISNOTNULL() then use F Date, else if P ISNOTNULL() then use 'Null'.

      The distinction is that it doesn't matter what date is the Max/Min, I need to set up an order of prefence. 

  • CallumJ Create a Column like this:

    Column =
    VAR A_ = CALCULATE(MAX(StageTable[Date]),StageTable[Stage]="A",ALLEXCEPT(StageTable,StageTable[No.]))
    VAR P_ = CALCULATE(MAX(StageTable[Date]),StageTable[Stage]="P",ALLEXCEPT(StageTable,StageTable[No.]))
    VAR F_ = CALCULATE(MAX(StageTable[Date]),StageTable[Stage]="F",ALLEXCEPT(StageTable,StageTable[No.]))
    RETURN SWITCH(TRUE(),
    A_=BLANK(),F_,
    P_=BLANK(),A_,
    F_=BLANK(),A_,
    A_
    )