Forum Discussion
Measure Request: Value is within TopN, True or False
I have two tables, Contacts and Accounts. I want to apply a filter on Contacts according to whether or not the Account it belongs to is within the Top 2 Accounts by Sales. So given the table below, I'd want to only see Bob and Alice.
I realize I can use the filters option but need the formula for a more complex situation
Contacts
| Name | Account |
| John | ABC Corp |
| Michael | XYZ Inc |
| Bob | Test, LLC |
| Alice | Example Inc |
Accounts
| Sales | Account |
| $100 | ABC Corp |
| $1000 | XYZ Inc |
| $5000 | Test, LLC |
| $10,000 | Example Inc |
- Anonymous4 years ago
Hi nckpedersen ,
I created a sample pbix file(see attachment) for you, please check whether that is what you want.
1. Create two measures as below to judge if the account is Top 2 accounts
Rank = RANKX ( ALLSELECTED ( 'Accounts' ), CALCULATE ( SUM ( 'Accounts'[Sales] ) ) )Flag = VAR _tab = CALCULATETABLE ( VALUES ( 'Accounts'[Account] ), FILTER ( 'Accounts', [Rank] <= 2 ) ) RETURN IF ( SELECTEDVALUE ( 'Contacts'[Account] ) IN _tab, 1, 0 )2. Create a table visual and apply the visual-level filter with the condition(Flag is 1)
If the above one can't help you get the desired result, please provide some sample data in your tables (exclude sensitive data) with Text format and your expected result with backend logic and special examples. It is better if you can share a simplified pbix file. You can refer the following link to upload the file to the community. Thank you.
How to upload PBI in Community
Best Regards
3 Replies
- AnonymousNot applicable
Hi nckpedersen ,
I created a sample pbix file(see attachment) for you, please check whether that is what you want.
1. Create two measures as below to judge if the account is Top 2 accounts
Rank = RANKX ( ALLSELECTED ( 'Accounts' ), CALCULATE ( SUM ( 'Accounts'[Sales] ) ) )Flag = VAR _tab = CALCULATETABLE ( VALUES ( 'Accounts'[Account] ), FILTER ( 'Accounts', [Rank] <= 2 ) ) RETURN IF ( SELECTEDVALUE ( 'Contacts'[Account] ) IN _tab, 1, 0 )2. Create a table visual and apply the visual-level filter with the condition(Flag is 1)
If the above one can't help you get the desired result, please provide some sample data in your tables (exclude sensitive data) with Text format and your expected result with backend logic and special examples. It is better if you can share a simplified pbix file. You can refer the following link to upload the file to the community. Thank you.
How to upload PBI in Community
Best Regards
- nckpedersen
Helper I
This is wonderful, thank you! I feel like you just opened an entirely new area of Power BI for me!
- amitchandak
Super User
nckpedersen , My advice would be create TOP2 measure and use in Visual
TOPN: https://youtu.be/QIVEFp-QiOk
Otherwise first create a rank in Accounts (All new columns below )
Rank = ranxk(Accounts, [Sales],,desc, dense)
Then copy that to table Contacts
Rank contact = Maxx(filter(Accounts, Accounts[Account] = Contacts [Account] && Accounts[Rank]<=2), Accounts[Rank])