Forum Discussion

CBrinky's avatar
CBrinky
Frequent Visitor
2 years ago
Solved

Creating a "Current Activity Flag" based on different scenarios.

Hi all, 

 

I've done my best to research this, using forums, google, chatgpt to create a solution. I just can't get my head around this. 

I have 3 different project scenarios where you can see what the "current activity" is. Based on predecessors, dates, task_id, project id etc.



It works with the below example as it only has 1 "predecessor" with start/finish date

I don't know how to adjust it so in this scenario it only shows "Surface Treatment" as the current activity. 

And I don't know how to adjust it so in this scenario it just displays as "Job complete"

Successor =

VAR PredecessorID = 'RAW_TASK/PRED_MERGED'[TASK PREDECESSOR]
VAR PredecessorStatus =
    CALCULATE(
        COUNTROWS('RAW_TASK/PRED_MERGED'),
        FILTER(
            'RAW_TASK/PRED_MERGED',
            'RAW_TASK/PRED_MERGED'[TASK_ID] = PredecessorID &&
            NOT ISBLANK('RAW_TASK/PRED_MERGED'[ACT_START_DATE]) &&
            NOT ISBLANK('RAW_TASK/PRED_MERGED'[ACT_END_DATE])
        )
    )
RETURN
    IF(
        PredecessorStatus > 0,
        "Current Activity",
        BLANK()
    )



 

  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi CBrinky ,

    You can use this DAX:

    Measure 2 = 
    var _countend=COUNTX(ALLSELECTED('Table'),'Table'[ACT_END_DATE])
    var _countname=COUNTX(ALLSELECTED('Table'),'Table'[TASK_NAME])
    var _maxend=MAXX(ALL('Table'),'Table'[ACT_END_DATE])
    var _maxid=
    CONCATENATEX(
        FILTER(ALL('Table'),'Table'[ACT_END_DATE]=_maxend),[TASK_ID],"-")
    return
    IF(
        _countend=_countname,"Job complete",
    IF(
       CONTAINSSTRING(
        _maxid,MAX('Table'[TASK PREDECESSOR]))=TRUE()&&MAX('Table'[TASK PREDECESSOR])<>BLANK(),
    "current activity", BLANK()))

    I didn't use "switch", but it work in my situation.

    Best Regards,
    Dino Tao
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

3 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi CBrinky ,

    Please try this way:
    Use this DAX to create a new measure:

    Successor = 
    VAR _MAXEND = MAXX(ALL('Table'), 'Table'[ACT_END_DATE])
    VAR _MAXID = MAXX(FILTER(ALL('Table'), 'Table'[ACT_END_DATE] = _MAXEND), [TASK_ID])
    RETURN
    IF(
        MAX('Table'[TASK PREDECESSOR]) = _MAXID, "current activity", BLANK())


    And about "Job complete", you can use these DAXs:

    Successor1 = 
    IF(
        CALCULATE(
            COUNTROWS('Table2'),
            NOT(ISBLANK('Table2'[ACT_END_DATE]))
        ) = COUNTROWS('Table2'),
        "Job complete"
    )

    Or

    Successor2 = 
    IF(
        COUNTBLANK(Table2[ACT_END_DATE]) > 0,
        "non-complete",
        "Job complete"
    )


    Best Regards,
    Dino Tao
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

    • CBrinky's avatar
      CBrinky
      Frequent Visitor

      Hi Dino, 

       

      Is there a way to maybe use the "switch" function to combine these solutions? So it'd check if it means 1 condition, and if it doesn't it checks if it meets the next condition? Your help is greatly appreciated!

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hi CBrinky ,

        You can use this DAX:

        Measure 2 = 
        var _countend=COUNTX(ALLSELECTED('Table'),'Table'[ACT_END_DATE])
        var _countname=COUNTX(ALLSELECTED('Table'),'Table'[TASK_NAME])
        var _maxend=MAXX(ALL('Table'),'Table'[ACT_END_DATE])
        var _maxid=
        CONCATENATEX(
            FILTER(ALL('Table'),'Table'[ACT_END_DATE]=_maxend),[TASK_ID],"-")
        return
        IF(
            _countend=_countname,"Job complete",
        IF(
           CONTAINSSTRING(
            _maxid,MAX('Table'[TASK PREDECESSOR]))=TRUE()&&MAX('Table'[TASK PREDECESSOR])<>BLANK(),
        "current activity", BLANK()))

        I didn't use "switch", but it work in my situation.

        Best Regards,
        Dino Tao
        If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.