Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
5 years ago

Compare strings in previous month

Hello. I need a DAX Measure to count how many staff employees got promoted into a leadership position. This is what my data looks like. So it would need to return 1 because 101 was staff. 102's promotion doesnt count because he was already in a leadership position.

 

IDDateManagerial LevelPromotion
10110/20Staff 
10210/20Manager 
10310/20Staff 
10410/20Director 
10111/20ManagerPromotion
10211/20Executive ManagerPromotion
10311/20Staff 
10411/20Director 

 

Thanks

4 Replies

  • MattAllington's avatar
    MattAllington
    Icon for Community Champion rankCommunity Champion

    Power BI is easy when you prep your data. I would add a conditional column using Power Query to indicate if the Mgr level is considered to be a staff promotion. Then you can write a simple DAX formula

    CALCULATE(COUNTROWS(Table),table[promotion]="Promotion",table[new column]="from staff")

  • Anonymous's avatar
    Anonymous
    Not applicable

    MattAllington Hi. I don't have access to the data source. I can't add new columns. I want to try to solve this using DAX to avoid having to request a change in the database.

  • Anonymous , Try a measure like

    calculate( count(Table[Promotion]) , filter(Table, Table[Promotion] = "Promotion" && Table[ Managerial Level] in { "Staff" ,"Manager"}))

     

    or

     

    calculate( count(Table[Promotion]) , filter(Table, Table[Promotion] = "Promotion" && Table[ Managerial Level] in { "Staff" }))

  • Hello Anonymous,

     

    Try with this measure:

    Count of Promotions from Staff =
    COUNTROWS (
        FILTER (
            ADDCOLUMNS (
                'Table',
                "Previous managerial level",
                    VAR __id = 'Table'[ID]
                    VAR __date = 'Table'[Date]
                    RETURN
                        MAXX (
                            TOPN (
                                1,
                                FILTER (
                                    ALL ( 'Table' ),
                                    'Table'[ID] = __id
                                        && 'Table'[Date] < __date
                                ),
                                'Table'[Date], DESC
                            ),
                            'Table'[Managerial Level]
                        )
            ),
            [Previous managerial level] = "STAFF"
                && 'Table'[Promotion] = "Promotion"
        )
    )