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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Reply
BIswajit_Das
Resolver III
Resolver III

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
Resolver III
Resolver III

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
Resolver III
Resolver III

#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
Resolver III
Resolver III

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
Resolver III
Resolver III

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

@ 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!:
Mastering Power BI 2nd Edition

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
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

February 2024 Update Carousel

Power BI Monthly Update - February 2024

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

Fabric Career Hub

Microsoft Fabric Career Hub

Explore career paths and learn resources in Fabric.

Fabric Partner Community

Microsoft Fabric Partner Community

Engage with the Fabric engineering team, hear of product updates, business opportunities, and resources in the Fabric Partner Community.

Top Solution Authors