Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more
Hello all,
I have one table with the Machine name , the number of Alarms and the alarm nature. I want to create a simple graph with the top 10 of the machines with the hightest number of alarms(don't mind the alarm nature).
So, i have created the top 10 table.
But don't give me the necessary output, the machine A have 4 registers so takes 4 places..... How can I write the TOPN function in order to appear machine A only one time and not fill the first 4 levels of the top 10.
NewTable = TOPN(10,'Table','Table'[Alarm],DESC)
Machine | Alarms | Nature |
A | 14 | a |
A | 14 | s |
A | 14 | f |
A | 14 | g |
B | 13 | a |
B | 13 | g |
D | 12 | r |
E | 11 | t |
F | 10 | h |
G | 6 | w |
H | 5 | q |
I | 5 | a |
J | 4 | g |
K | 3 | h |
L | 2 | t |
Thanks in advance for your help
Solved! Go to Solution.
Use Summarize to group the Machines and sum the alarms
NewTable = TOPN(10,SUMMARIZE(SampleTable,SampleTable[Machine],"TotalAlarms",SUM(SampleTable[Alarms]) ))
@Sea_and_Anne an alternative would be to RANK the machines by the SUM of alarms
1) Create Total Alarms MEASURE
Total Alarms = SUM ('Table'[Alarms])
2) Create the Ranking MEASURE
Machine RANK = IF ( HASONEVALUE ( 'Table'[Machine] ), RANKX ( ALL ( 'Table'[Machine] ), [Total Alarms] ) )
NOTE => if you want to combine steps 1 and 2 you HAVE TO wrap the SUM in CALCULATE like this!
Machine RANK 2 = IF ( HASONEVALUE ( 'Table'[Machine] ), RANKX ( ALL ( 'Table'[Machine] ), CALCULATE ( SUM ( 'Table'[Alarms] ) ) ) )
3) Go to the Visual Level Filter => select Machine RANK => Show items when the value: is less than or equal to 10
Hope this also helps!
@Sea_and_Anne an alternative would be to RANK the machines by the SUM of alarms
1) Create Total Alarms MEASURE
Total Alarms = SUM ('Table'[Alarms])
2) Create the Ranking MEASURE
Machine RANK = IF ( HASONEVALUE ( 'Table'[Machine] ), RANKX ( ALL ( 'Table'[Machine] ), [Total Alarms] ) )
NOTE => if you want to combine steps 1 and 2 you HAVE TO wrap the SUM in CALCULATE like this!
Machine RANK 2 = IF ( HASONEVALUE ( 'Table'[Machine] ), RANKX ( ALL ( 'Table'[Machine] ), CALCULATE ( SUM ( 'Table'[Alarms] ) ) ) )
3) Go to the Visual Level Filter => select Machine RANK => Show items when the value: is less than or equal to 10
Hope this also helps!
Use Summarize to group the Machines and sum the alarms
NewTable = TOPN(10,SUMMARIZE(SampleTable,SampleTable[Machine],"TotalAlarms",SUM(SampleTable[Alarms]) ))
Check out the April 2025 Power BI update to learn about new features.
Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.
User | Count |
---|---|
103 | |
63 | |
44 | |
37 | |
35 |