Forum Discussion

xariet's avatar
xariet
Helper I
3 years ago
Solved

Dynamic Segmentation

Hi All

I am struggling to correctly calculate bins_Segments.

I have an Annual Income table : 

Annual Income = GENERATESERIES(18000, 1560000,1000) and [Value1] is the column in this table with generated amounts.

And I have a parameter that regulates the size of the bins. So depending on which Bin size I choose the number of rows in the below visual changes. 

 

I have also created a table param_Segment to be able to calculate the number of bins in each segment.

My current Bins_segment calculation is: 

Bins_segments = CALCULATE(COUNTROWS(SUMMARIZE('Annual Income','Annual Income'[Value1])), FILTER('Annual Income', NOT(ISEMPTY(FILTER(param_Segment, NOT(ISBLANK('Annual Income'[Value1]))&& param_Segment[Min]<'Annual Income'[Value1]&& param_Segment[Max]>='Annual Income'[Value1])))))
So I am trying to calculate the number of rows in the visual, which changes depending on the chosen bin size.  But as you can see it calculates the number of rows in the Annual Income table as a whole but not in visual. How do I achieve the correct result? 

 

  • Hi xariet ,

    According to your description, I create a same sample and here's my solution, create a measure.

    Bins_segments =
    CALCULATE (
        COUNTROWS ( SUMMARIZE ( 'Annual Income', 'Annual Income'[Value1] ) ),
        FILTER (
            'Annual Income',
            MOD (
                'Annual Income'[Value1]
                    - MINX ( ALL ( 'Annual Income' ), 'Annual Income'[Value1] ),
                SELECTEDVALUE ( 'Parameter'[What is bin size] )
            ) = 0
                && NOT (
                    ISEMPTY (
                        FILTER (
                            param_Segment,
                            NOT ( ISBLANK ( 'Annual Income'[Value1] ) )
                                && param_Segment[Min] < 'Annual Income'[Value1]
                                && param_Segment[Max] >= 'Annual Income'[Value1]
                        )
                    )
                )
        )
    )
    

    Get the correct result.

    I attach my sample below for your reference.

     

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

    Best regards,

    Community Support Team_yanjiang

     

5 Replies

    • xariet's avatar
      xariet
      Helper I

      Thank you , do you by any chance know how to achieve this result?  To group all bins where the income is more than 200,000. The below visual was done in Tableau, I can't figure out if this possible in Power BI..

       

    • xariet's avatar
      xariet
      Helper I

      I don't think I can attach the file to my post ..

  • Hi xariet ,

    According to your description, I create a same sample and here's my solution, create a measure.

    Bins_segments =
    CALCULATE (
        COUNTROWS ( SUMMARIZE ( 'Annual Income', 'Annual Income'[Value1] ) ),
        FILTER (
            'Annual Income',
            MOD (
                'Annual Income'[Value1]
                    - MINX ( ALL ( 'Annual Income' ), 'Annual Income'[Value1] ),
                SELECTEDVALUE ( 'Parameter'[What is bin size] )
            ) = 0
                && NOT (
                    ISEMPTY (
                        FILTER (
                            param_Segment,
                            NOT ( ISBLANK ( 'Annual Income'[Value1] ) )
                                && param_Segment[Min] < 'Annual Income'[Value1]
                                && param_Segment[Max] >= 'Annual Income'[Value1]
                        )
                    )
                )
        )
    )
    

    Get the correct result.

    I attach my sample below for your reference.

     

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

    Best regards,

    Community Support Team_yanjiang