Forum Discussion
Data limit Issues
- 1 year ago
Hi Bright_Chen,
Thank you for the response and detailed explanation. Based on your requirement please use a RANKX measure to calculate the rank of each name by total amount and then apply a visual level filter to display only the Top 5:
- Create a measure for total amount, if not created already:
TotalAmount = SUM('TableName'[Amount])
- Now create a RANKX measure:
NameRank = RANKX(ALLSELECTED('TableName'[Name]),
[TotalAmount],,DESC, DENSE)
Apply a visual level filter, in the visual’s Filters pane drag this NameRank measure and set the filter to less than or equal to 5.
This flow is efficient, scalable and works in the new engine behaviour, no memory overhead or invalid filters.
If this post helps, then please consider Accepting as solution to help the other members find it more quickly, don't forget to give a "Kudos" – I’d truly appreciate it!
Thanks and regards,
Anjan Kumar Chippa
- Create a measure for total amount, if not created already:
Hi Bright_Chen,
Thank you for reaching out to Microsoft Fabric Community.
The error here is likely because of recent change in power bi’s internal DAX engine, it now enforces stricter validation when handling filters like IN or TopN that internally create table expressions.
These expressions must now contain only direct column references. If the engine detects any aliases, calculated expressions or non column projections, it throws this error even if the logic worked perfectly fine in earlier versions.
Update your filter logic to use only direct column references.
If you immediately need the visuals to work as before, you can download an earlier version of the desktop using Microsoft’s official link:
Previous monthly updates to Power BI Desktop and the Power BI service - Power BI | Microsoft Learn
But this is only a temporary workaround, future compatibility is not guaranteed and it is strongly recommended to adapt the logic as per updated behaviour.
If this post helps, then please consider Accepting as solution to help the other members find it more quickly, don't forget to give a "Kudos" – I’d truly appreciate it!
Thanks and regards,
Anjan Kumar Chippa
- v-achippa1 year agoCommunity Support
Hi Bright_Chen,
Thank you for the response and detailed explanation. Based on your requirement please use a RANKX measure to calculate the rank of each name by total amount and then apply a visual level filter to display only the Top 5:
- Create a measure for total amount, if not created already:
TotalAmount = SUM('TableName'[Amount])
- Now create a RANKX measure:
NameRank = RANKX(ALLSELECTED('TableName'[Name]),
[TotalAmount],,DESC, DENSE)
Apply a visual level filter, in the visual’s Filters pane drag this NameRank measure and set the filter to less than or equal to 5.
This flow is efficient, scalable and works in the new engine behaviour, no memory overhead or invalid filters.
If this post helps, then please consider Accepting as solution to help the other members find it more quickly, don't forget to give a "Kudos" – I’d truly appreciate it!
Thanks and regards,
Anjan Kumar Chippa
- v-achippa1 year agoCommunity Support
Hi Bright_Chen,
As we haven’t heard back from you, we wanted to kindly follow up to check if the solution I have provided for the issue worked? or let us know if you need any further assistance.
If my response resolved your issue, please mark it as "Accept as solution" and click "Yes" if you found it helpful.Thanks and regards,
Anjan Kumar Chippa
- v-achippa1 year agoCommunity Support
Hi @Bright_Chen,
We wanted to kindly follow up to check if the solution I have provided for the issue worked.
If my response resolved your issue, please mark it as "Accept as solution" and click "Yes" if you found it helpful.Thanks and regards,
Anjan Kumar Chippa
- Create a measure for total amount, if not created already: