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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
GreenP
Regular Visitor

TOPN excluding blank measure

Hi Experts,

I have a table like below:

Dealer Target Actual
Dealer 013 82 52
Dealer 012 72 32
Dealer 018   13
Dealer 010 54 10
Dealer 014 32 5
Dealer 016 79 -10
 Dealer 01 37  
 Dealer 02 25  
 Dealer 03 23  
 Dealer 04 28  
 Dealer 05 99  
 Dealer 06 66  
 Dealer 07 23  
 Dealer 08 18  
 Dealer 09 15  
Dealer 011 48  
Dealer 015 49  
Dealer 017 40  

 

I am trying to show the total actual sales by top 10 dealers.

I am using the following dax:

 

Total Sales(Top 10 Dealers) = CALCULATE(
    SUM(table[Actual]),
    TOPN(
        10,
        ALL(table[Dealer]),
        CALCULATE(SUM(table[Actual]))
    )
)
 
This is returning 112 instead of 102 as it is considering the blank values as well in top 10 and thus ignores the negative value in the column.
 
How can we ignore the blank measures in the TOPN function?
1 ACCEPTED SOLUTION
johnt75
Super User
Super User

Try

Total sales ( top 10 dealers ) =
VAR DealersWithSales =
    FILTER (
        ADDCOLUMNS (
            ALL ( 'Table'[Dealer] ),
            "@sales", CALCULATE ( SUM ( 'Table'[Actual] ) )
        ),
        NOT ISBLANK ( [@sales] )
    )
VAR Top10Dealers =
    TOPN ( 10, DealersWithSales, [@sales] )
VAR Result =
    SUMX ( Top10Dealers, [@sales] )
RETURN
    Result

View solution in original post

2 REPLIES 2
johnt75
Super User
Super User

Try

Total sales ( top 10 dealers ) =
VAR DealersWithSales =
    FILTER (
        ADDCOLUMNS (
            ALL ( 'Table'[Dealer] ),
            "@sales", CALCULATE ( SUM ( 'Table'[Actual] ) )
        ),
        NOT ISBLANK ( [@sales] )
    )
VAR Top10Dealers =
    TOPN ( 10, DealersWithSales, [@sales] )
VAR Result =
    SUMX ( Top10Dealers, [@sales] )
RETURN
    Result
Greg_Deckler
Super User
Super User

@GreenP Try:

Total Sales(Top 10 Dealers) = 
  VAR __Table =
    TOPN(
        10,
        FILTER(ALL('Table'),[Actual] <> BLANK()),
        CALCULATE(SUM('Table'[Actual]))
    )
  VAR __Result = SUMX(__Table,[Actual])
RETURN
  __Result

PBIX attached below signature. 


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!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

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

Top Kudoed Authors