cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Helper I
Helper I

Group by category calculation

Please help me to find correct answer:
Fact Table: FactStudent

SchoolId

StudId

InSession

 

S1

11

5

SchoolLevelP= DISTINCT COUNT(StudId (NOTE: Those are in insession 7,8,9) / TotalStudID(DISTINCT)*100

S1

12

6

S1

13

4

S1

14

8

 

S1

15

7

 

S1

16

9

 

S1

17

8

 

S1

18

0

Status =  FILTER (
                    Configuration,
                    [SchoolLevelP] >= Configuration[MinValue]
                        && [SchoolLevelP] < Configuration[MaxValue]
                )

S1

19

9

S1

20

8

S1

21

9

S1

22

9

S1

23

9

S1

24

7

S1

25

3

 

S2

111

8

 

S2

112

9

 

S2

113

4

 

S2

114

4

 

S2

115

8

 

S2

116

7

 

S2

117

7

 

S2

118

9

 

S2

119

9

 

S2

120

8

 

 

I have created measure below and there is a configuration table for minimum/maximum range along with status column (performance labels). to show label wise school count. Ex:
Table: Configuration

Status

MaxValue

MinValue

 

Excellent

100

70

 

Average

70

50

 

OK

50

0

 

 

Expected result: (There are 50 schools in fact table)

Status

School Count

Excellent

10

Average

35

OK

5

 

Below I tried to achieve by calculated measure.

 

Measure1 :=

VAR RS =

    CALCULATE (

        COUNT ( FactStudent [Schoolid] ),

        FILTER (

            FactStudent,

            AND (

                FactStudent [InSession] >= 7,

                FactStudent [InSession] <= 9

            )

        )

    )

VAR SS =

    COUNT ( FactStudent[StudId] )

RETURN

    CALCULATE (

        DISTINCTCOUNT ( FactStudent[SchoolId] ),

        FILTER (

            ADDCOLUMNS (

                DimSchool,

                "SchoolLevelP", CALCULATE (

                    DIVIDE ( RS, SS, 0 ) * 100,

                    CALCULATETABLE (FactStudent)

                )

            ),

            COUNTROWS (

                FILTER (

                    Configuration,

                    [SchoolLevelP] >= Configuration[MinValue]

                        && [SchoolLevelP] < Configuration[MaxValue]

                )

            )

                > 0

        ),

        FILTER (

            FactStudent,

            FactStudent[SchoolId] = FactStudent[SchoolId]

        )

    )

2 ACCEPTED SOLUTIONS

Accepted Solutions
Highlighted
Community Support
Community Support

Re: Group by category calculation

hi, @Tejesh_Gour

You may try this formula

Measure2 = 
CALCULATE (
    DISTINCTCOUNT ( FactStudent[SchoolId] ),
    FILTER (
        ADDCOLUMNS (
            DimSchool,
            "SchoolLevelP", CALCULATE (
                DIVIDE (
                    CALCULATE (
                        COUNT ( FactStudent[Schoolid] ),
                        FILTER (
                            FactStudent,
                            AND ( FactStudent[InSession] >= 7, FactStudent[InSession] <= 9 )
                        )
                    ),
                    COUNT ( FactStudent[StudId] )
                ) * 100
            )
        ),
        COUNTROWS (
            FILTER (
                Configuration,
                [SchoolLevelP] >= Configuration[MinValue]
                    && [SchoolLevelP] < Configuration[MaxValue]
            )
        ) > 0
    )
)

Result:

5.JPG6.JPG7.JPG

 

Best Regards,

Lin

 

 

Community Support Team _ Lin
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

Highlighted
Helper I
Helper I

Re: Group by category calculation

Thanks! Its working as expacted result.

View solution in original post

3 REPLIES 3
Highlighted
Community Support
Community Support

Re: Group by category calculation

hi, @Tejesh_Gour

You may try this formula

Measure2 = 
CALCULATE (
    DISTINCTCOUNT ( FactStudent[SchoolId] ),
    FILTER (
        ADDCOLUMNS (
            DimSchool,
            "SchoolLevelP", CALCULATE (
                DIVIDE (
                    CALCULATE (
                        COUNT ( FactStudent[Schoolid] ),
                        FILTER (
                            FactStudent,
                            AND ( FactStudent[InSession] >= 7, FactStudent[InSession] <= 9 )
                        )
                    ),
                    COUNT ( FactStudent[StudId] )
                ) * 100
            )
        ),
        COUNTROWS (
            FILTER (
                Configuration,
                [SchoolLevelP] >= Configuration[MinValue]
                    && [SchoolLevelP] < Configuration[MaxValue]
            )
        ) > 0
    )
)

Result:

5.JPG6.JPG7.JPG

 

Best Regards,

Lin

 

 

Community Support Team _ Lin
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

Highlighted
Helper I
Helper I

Re: Group by category calculation

Thanks! Its working as expacted result.

View solution in original post

Highlighted
Community Support
Community Support

Re: Group by category calculation

hi, @Tejesh_Gour

It's pleasant that your problem has been solved, could you please mark my reply as Answered?

 

Best Regards,

Lin

Community Support Team _ Lin
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helpful resources

Announcements

August Community Highlights

Check out a full recap of the month!

August 2020 CYST Challenge

Check out the winners of the recent 'Can You Solve These?' community challenge!

Experience what’s next for Power BI

Join us for an in-depth look at the new Power BI features and capabilities at the free Microsoft Business Applications Launch Event.

Top Solution Authors
Top Kudoed Authors