Forum Discussion

bobbarker's avatar
bobbarker
New Member
6 years ago
Solved

DAX count in date range (slicer)

Hi togheter,

I got a challange where I can need some support / hints of the community πŸ™‚

The data source is a list where a row is generated every time a student take an exam. Looks like this:

 

On top of that data source, I need an report where I see the levels and the number of students who are in that level depending on the time slicer. If a student is in two levels, it should only take the higher level.

 

I tried the following calculation:

 
 Number of students per level = 
CALCULATE (

DISTINCTCOUNT ( List[STUDENT] );
FILTER (
'List';
'List'[LEVEL]
= CALCULATE (
MAX ( List[LEVEL] );
ALLEXCEPT( List; List[DATE])
)
)
)

As you can see in the second screenshot, John is counted two times.

Anyone a solution and hint?

Thanks in advance!

  • Hi bobbarker ,

     

    check this out

    Number of students per level =
    VAR MaxLevelPerStudent =
        SUMMARIZE (
            ALLEXCEPT ( List, List[DATE] ),
            List[STUDENT],
            "@LEVEL", MAX ( List[LEVEL] )
        )
    RETURN
        COUNTROWS (
            FILTER ( MaxLevelPerStudent, [@LEVEL] = SELECTEDVALUE ( List[LEVEL] ) )
        )

    Regards,

    Marcus

    Dortmund - Germany
    If I answered your question, please mark my post as solution, this will also help others.
    Please give Kudos for support.

3 Replies

  • JarroVGIT's avatar
    JarroVGIT
    Icon for Resident Rockstar rankResident Rockstar

    Hi bobbarker ,

    This is a cool question but please never post pictures of your data but a copy or a link to a PBIX/xlsx file so we can actually help you create the required DAX. This is potentially a complicated measure and having some testdata helps in developing it. 

     

    Is it possible to share that?
    Thanks!

     

    Kind regards

    Djerro123

    -------------------------------

    If this answered your question, please mark it as the Solution. This also helps others to find what they are looking for.

    Keep those thumbs up coming! πŸ™‚

     

  • mwegener's avatar
    mwegener
    Icon for Most Valuable Professional rankMost Valuable Professional

    Hi bobbarker ,

     

    check this out

    Number of students per level =
    VAR MaxLevelPerStudent =
        SUMMARIZE (
            ALLEXCEPT ( List, List[DATE] ),
            List[STUDENT],
            "@LEVEL", MAX ( List[LEVEL] )
        )
    RETURN
        COUNTROWS (
            FILTER ( MaxLevelPerStudent, [@LEVEL] = SELECTEDVALUE ( List[LEVEL] ) )
        )

    Regards,

    Marcus

    Dortmund - Germany
    If I answered your question, please mark my post as solution, this will also help others.
    Please give Kudos for support.