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

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply
FrederikAhring
Frequent Visitor

Calculating sales orders, while ignoring certain id's

Hi PowerBI Community.

I have a little complex sales-orders and needs some help designing the measure.
I want to create a measure that sums the user price for the order.

If the order contains only "User" - summarize.
If the order contains "Unlimited" i only want that value, and ignore the rest
If the order contains anything else (fx. Company) i want to ignore that one and just summarize the Users.

OrderItemPrice
1-ordUser300
1-ordUser300
2-ordUnlimited5000
2-ordUser300
2-ordUser300
3-ordUser300
4-ordUser300
5-ordCompany10000
5-ordUser300
5-ordUser300


Expected outcome
Order 1: 600
Order 2: 5000
Order 3: 300
Order 4: 300
Order 5: 600

Unsure if this is possible, or if i should maybe add a conditional column so i have only Users and unlimited in a new column, as there are many different variations than "Company" which i want to ignore.

Really hope you can help

1 ACCEPTED SOLUTION
daXtreme
Solution Sage
Solution Sage

Something like this:

 

[Your measure] =
sumx(
    distinct( T[Order] ),
    calculate(        
        switch( true(),
            // if all visible items are User -> SUM the price
            and(
                distinctcount( T[Item] ) = 1,
                "user" in distinct( T[Item] ) ),
                    sum( T[Price] ),
            // if one of the items is Unlimited -> get the value for Unlimited    
            // what happens if there are 2 Unlimited's in the same order?
            "unlimited" in distinct(T[Item] ),
                calculate(
                    selectedvalue( T[Price] ),
                    T[Item] = "unlimited"
                ),
            // if order contains anything else -> SUM the price for User
            calculate(
                sum( T[price] ),
                keepfilters( T[Item] = "user" )
            )
        )
    )
)

 

View solution in original post

3 REPLIES 3
FrederikAhring
Frequent Visitor

Very glad to inform you that it works.
Thank you so much, the help is greatly appreciated.

BR Frederik

daXtreme
Solution Sage
Solution Sage

Something like this:

 

[Your measure] =
sumx(
    distinct( T[Order] ),
    calculate(        
        switch( true(),
            // if all visible items are User -> SUM the price
            and(
                distinctcount( T[Item] ) = 1,
                "user" in distinct( T[Item] ) ),
                    sum( T[Price] ),
            // if one of the items is Unlimited -> get the value for Unlimited    
            // what happens if there are 2 Unlimited's in the same order?
            "unlimited" in distinct(T[Item] ),
                calculate(
                    selectedvalue( T[Price] ),
                    T[Item] = "unlimited"
                ),
            // if order contains anything else -> SUM the price for User
            calculate(
                sum( T[price] ),
                keepfilters( T[Item] = "user" )
            )
        )
    )
)

 

Wow, thats a bit more complicated than i would have figured out.
Thanks a lot, I will give it a try.

Luckily, there can't be two unlimited in same order.

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

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