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

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
rizkus
Frequent Visitor

Need Help with DAX Formula to combine rows

Hi All,

 

I am looking for help in regards to the data i have. currently i have this type of data

 

IMG_1298.jpeg

 

And then i have created a rank to categorize the order of the segment, as below

IMG_1299.jpeg

 

the outcome expected is a table, showing only the highest rank (in this case, segment B), but the Value Measure is added altogether:

IMG_1300.jpeg

 

I would also like to have it able to be filtered, so for example, if i filter segment A, it doesnt show any data anymore

 

Need your help and appreciate all the help, thanks!

9 REPLIES 9
v-sgandrathi
Community Support
Community Support

Hi @rizkus,

 

Thank you for your answer @Olufemi7

Checking in one last time to make sure all is good on your side. If there’s anything still outstanding or you need any further assistance, I’m here to help.

Thank you.

Olufemi7
Resolver I
Resolver I

Hello @rizkus 

Thanks for your question!
I have recreated your scenario and here’s the full explanation. 

DataTable:

ID Segment Value Measure
123A100
123B200
123B300
 

RankTable:

Segment Rank
B1
A2

 

TopSegmentTotal :=
IF (
    ISINSCOPE ( 'DataTable'[ID] ),
    VAR CurrentID =
        SELECTEDVALUE ( 'DataTable'[ID] )
    VAR TopRankForID =
        CALCULATE (
            MIN ( 'RankTable'[Rank] ),
            FILTER ( ALL ( 'DataTable' ), 'DataTable'[ID] = CurrentID )
        )
    VAR CurrentSegmentRank =
        MIN ( 'RankTable'[Rank] )
    VAR TotalForID =
        CALCULATE (
            SUM ( 'DataTable'[Value Measure] ),
            FILTER ( ALL ( 'DataTable' ), 'DataTable'[ID] = CurrentID )
        )
    RETURN
        IF (
            ISFILTERED ( 'DataTable'[Segment] )
                && SELECTEDVALUE ( 'DataTable'[Segment] ) = "A",
            TotalForID,
            IF ( CurrentSegmentRank = TopRankForID, TotalForID )
        )
)


Why the Difference

  • In your screenshot, Segment B had only one row (300), so the total was 300.

  • In my dataset, Segment B has two rows (200 + 300), so the total is 600.

  • The measure is correct, it always sums all values for the same ID and shows the total only on the top‑ranked segment.

Filtering Behavior

  • If you filter Segment B, the measure shows the total (600).

  • If you filter Segment A, the measure shows blank (unless you allow it to return the total for A).

  • If you want to show the raw row (300) instead of the total, use Value Measure directly and filter to that row.

Conclusion

  • Use Value Measure if you want to show raw rows (200 and 300 separately, or just 300).

  • Use TopSegmentTotal if you want to show the combined total (600) for the top segment.

  • Both are correct , it depends on whether you want to display raw values or the calculated total.

  • Slicers make it easy to toggle between segments and see how the measure behaves under filter

  • Slicer showing TopSegment TotalSlicer showing TopSegment TotalValue Measure for Segment B onlyValue Measure for Segment B only



sanalytics
Super User
Super User

@rizkus 

Apart from @DataNinja777  solution, Alternatively, you can use below tiny DAX code

 

Value Measure = 
VAR _Rank = 
RANKX( ALL( 'Table'[Segment]),CALCULATE( SUM( 'Table'[ValueMeasure])),,DESC)
VAR _Result = 
IF(
    _Rank =1,
    CALCULATE( SUM( 'Table'[ValueMeasure]), ALL( )
    ) ,BLANK()
)
RETURN
_Result

 

Below screenshots

sanalytics_0-1764575209393.png

when you select Segment A

sanalytics_1-1764575236379.png

Hopt it helps

 

Regards

sanalytics

sayan_07
Frequent Visitor

Hi , @rizkus 

Try like this Please!!

First you need to do total measure value

Total Value = SUM(Data[Value])

Then find the Top Rank Value

Top Rank = MIN(Data[Rank])

Then show Total fo top Segments

Top Segment = IF(Data[Rank]=[Top Rank], [Total Value],BLANK())

 

v-sgandrathi
Community Support
Community Support

Hi @rizkus,

 

Just wanted to follow up and confirm that everything has been going well on this. Please let me know if there’s anything from our end.
Please feel free to reach out Microsoft fabric community forum.

 

Thankyou.

v-sgandrathi
Community Support
Community Support

Hi @rizkus,

 

Just wanted to follow up and confirm that everything has been going well on this. Please let me know if there’s anything from our end.
Please feel free to reach out Microsoft fabric community forum.

 

Thank you.

v-sgandrathi
Community Support
Community Support

Hi @rizkus,

 

Hi @op,

 

I reviewed your requirement and tested it using @DataNinja777  sample PBIX file. When I selected Segment A in the filter, the visual displayed blank values. This behavior is expected because the DAX measure is designed to return results only for the top ranked segment (Rank = 1) within each ID. In your dataset, Segment A does not hold the highest rank, so the condition in the formula . IF ( _currentSegment = _topSegment, _totalForID ) evaluates to blank for that segment. Essentially, the measure aggregates and displays values only for the segment with the top rank, while all other lower ranked segments show no results when filtered.

 Thank you and continue using Microsoft Fabric Community Forum
Have a nice day ahead.

DataNinja777
Super User
Super User

Hi @rizkus ,

 

You can produce your required output by writing a measure like below:

Combined Value = 
VAR _totalForID =
    CALCULATE (
        SUM ( Data[Value Measure] ),
        ALLEXCEPT ( Data, Data[ID] )
    )
VAR _topSegment =
    CALCULATE (
        SELECTEDVALUE ( SegmentRank[Segment] ),
        SegmentRank[Rank] = 1
    )
VAR _currentSegment =
    SELECTEDVALUE ( Data[Segment] )
RETURN
    IF (
        _currentSegment = _topSegment,
        _totalForID
    )

Then, you can put the measure along with the fields in the fact and dimension tables in a table visual as shown below:

DataNinja777_0-1761833483515.png

I am attaching the pbix file for your reference.

 

Hi,

 

thanks so much! quick question, if i filter the segment as "A", will it show?

Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

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

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.