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

Get certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now

Reply
BIswajit_Das
Solution Supplier
Solution Supplier

Power bi DAX findout 2nd MAX value

Hello Guys,
I have a table like

itemresa
1a30.98
1b30.98
1c20.34
1d

17.7

and
my required table is like

itemresamax2ndgap
1a30.9830.9830.980
1b30.9830.9830.980
1c20.3430.9830.980
1d17.730.9830.980

when i calculated its hard to detect max cause both a and b have same values so the coming 2nd max result is wrong
i.e the coming result is like

itemresamax2ndgap
1a30.9830.9820.3410.64
1b30.9830.9820.3410.64
1c20.3430.9820.3410.64
1d17.730.9820.3410.64

 

Thanks & Regrads...

1 ACCEPTED SOLUTION
BIswajit_Das
Solution Supplier
Solution Supplier

Hello I've finally figures it out 
Here's the used related DAX

VAR _max_count =
    MAXX (
        SUMMARIZE (
            'table_name',
            'table_name'[item],
            'table_name'[res],
            "count",
            COUNTROWS ( 'table_name' )
        ),
        [count]
    )
VAR _value =
    MAXX (
        FILTER (
            SUMMARIZE (
                'table_name',
                'table_name'[item],
       
                'table_name'[res],
                "@count",
                COUNTROWS ( 'table_name' )
            ),
            [@count] = _max_count
        ),
        'table_name'[res]
    )
VAR _sec_max_count =
    MAXX (
        FILTER (
            SUMMARIZE (
                'table_name',
                'table_name'[item],
       
                'table_name'[res],
                "count2",
                COUNTROWS ( 'table_name' )
            ),
            'table_name'[res] <> _value &&
            'table_name'[item] = EARLIER('table_name'[item])
   
        ),
        [count2]
    )

VAR _total =
CALCULATE (
    COUNT ( 'table_name'[res] ),
    FILTER (
        'table_name',
        'table_name'[item] = EARLIER ( 'table_name'[item] )

        )
    )
RETURN
    DIVIDE(_sec_max_count,_total,0)

View solution in original post

6 REPLIES 6
BIswajit_Das
Solution Supplier
Solution Supplier

#EP_MAX_PARTYCOUNT% =
VAR _value =
    MAXX (
        FILTER (
            SUMMARIZE (
                'Z_EP_DATA',
                'Z_EP_DATA'[PC_ID],
                'Z_EP_DATA'[RESPONSE1],
                "@count",
                COUNTROWS ( 'Z_EP_DATA' )
            ),
            'Z_EP_DATA'[PC_ID] = EARLIER('Z_EP_DATA'[PC_ID])
        ),
        [@count]
    )
VAR _total =
CALCULATE (
    DISTINCTCOUNT( 'Z_EP_DATA'[MOBILE] ),
    FILTER (
        'Z_EP_DATA',
        'Z_EP_DATA'[PC_ID] = EARLIER ( 'Z_EP_DATA'[PC_ID] )
        )
    )
RETURN
    DIVIDE(_value,_total,0)
BIswajit_Das
Solution Supplier
Solution Supplier

Hello I've finally figures it out 
Here's the used related DAX

VAR _max_count =
    MAXX (
        SUMMARIZE (
            'table_name',
            'table_name'[item],
            'table_name'[res],
            "count",
            COUNTROWS ( 'table_name' )
        ),
        [count]
    )
VAR _value =
    MAXX (
        FILTER (
            SUMMARIZE (
                'table_name',
                'table_name'[item],
       
                'table_name'[res],
                "@count",
                COUNTROWS ( 'table_name' )
            ),
            [@count] = _max_count
        ),
        'table_name'[res]
    )
VAR _sec_max_count =
    MAXX (
        FILTER (
            SUMMARIZE (
                'table_name',
                'table_name'[item],
       
                'table_name'[res],
                "count2",
                COUNTROWS ( 'table_name' )
            ),
            'table_name'[res] <> _value &&
            'table_name'[item] = EARLIER('table_name'[item])
   
        ),
        [count2]
    )

VAR _total =
CALCULATE (
    COUNT ( 'table_name'[res] ),
    FILTER (
        'table_name',
        'table_name'[item] = EARLIER ( 'table_name'[item] )

        )
    )
RETURN
    DIVIDE(_sec_max_count,_total,0)
BIswajit_Das
Solution Supplier
Solution Supplier

Hello @Ahmedx thanks for responding but

my required result table should like

itemresamax2ndgap
1a30.9830.9830.980
1b30.9830.9830.980
1c20.3430.9830.980
1d17.730.9830.980
Greg_Deckler
Super User
Super User

@BIswajit_Das Try:

max a 2nd = 
    VAR __Item = MAX('Table'[item])
    VAR __Table = FILTER(ALL('Table'), [item] = __Item)
    VAR __Summarized = SUMMARIZE(__Table, [item], [a], "__Count", COUNTROWS('Table'))
    VAR __Max = MAXX(__Table, [a])
    VAR __Result = 
        IF(
            MAXX(FILTER(__Summarized, [a] = __Max),[__Count]) > 1,
            __Max,
            MAXX(FILTER(__Summarized, [a] < __Max), [a])
        )
RETURN
    __Result


Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Power BI Cookbook Third Edition (Color)

DAX is easy, CALCULATE makes DAX hard...

Hello @Greg_Deckler  Thanks for responding but what if i have multiple Items
i.e

itemresamax2ndgap
1a30.9830.9830.980
1b30.9830.9830.980
1c20.3430.9830.980
1d17.730.9830.980
2a55554510
2b45554510
3a35653530
3c65653530
Ahmedx
Super User
Super User

Based on your description, I created data to reproduce your scenario. The pbix file is attached in the end.

Power bi DAX findout 2nd MAX value.pbix

Helpful resources

Announcements
November Carousel

Fabric Community Update - November 2024

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

Live Sessions with Fabric DB

Be one of the first to start using Fabric Databases

Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.

Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.

Nov PBI Update Carousel

Power BI Monthly Update - November 2024

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