Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

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 4
Payeras_BI
Super User
Super User

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"
    )
)

 

Payeras_BI_0-1605885369377.png

Payeras_BI_2-1605885759496.png

Payeras_BI_3-1605885853487.png

 

If this post answered your question, please mark it as a solution to help other users find useful content.
Kudos are another nice way to acknowledge those who tried to help you.

J. Payeras
Mallorca, Spain
amitchandak
Super User
Super User

@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" }))

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.

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")



* Matt is an 8 times Microsoft MVP (Power BI) and author of the Power BI Book Supercharge Power BI.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.