Forum Discussion

CC__123's avatar
CC__123
Frequent Visitor
5 years ago
Solved

How to create a chart that shows a decrease over time without a date variable

Hi all,

 

I'm new to Power BI and I can't figure out how to create a chart (preferably an area or line chart) which shows the decrease in number of participants (in %) over a period of time, without using a date-type variable.

 

1= active, 0 = not active

 

For example, I'm trying to create a chart which will show that in period 1 all participants are active (100%) but in period 2 only 83% of the participants remained active and in period 3 there's 67% left.  

 

I've seen these charts before but the X-axis is always a date-related variable, while in this instance the period-variable is unrelated to a specified date.

 

I hope someone can help me!

  • CC__123 -

    Unpivot your table using Power Query:

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCkgtKs7PUzBU0lHCxLE6cAVGWBQYICswRpGAYSQFJoRMMCXkBjMM48EmxAIA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Person = _t, #"Period 1" = _t, #"Period 2" = _t, #"Period 3" = _t, #"Period 4" = _t, #"Period 5" = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Person", type text}, {"Period 1", Int64.Type}, {"Period 2", Int64.Type}, {"Period 3", Int64.Type}, {"Period 4", Int64.Type}, {"Period 5", Int64.Type}}),
        #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Person"}, "Attribute", "Value")
    in
        #"Unpivoted Columns"

    then write a measure as:

    Measure = DIVIDE(CALCULATE(SUM('Table'[Value]),ALLEXCEPT('Table','Table'[Attribute])),COUNTROWS('Table'))

    format as 'Percentage' > should return as:

2 Replies

  • ChrisMendoza's avatar
    ChrisMendoza
    Resident Rockstar

    CC__123 -

    Unpivot your table using Power Query:

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCkgtKs7PUzBU0lHCxLE6cAVGWBQYICswRpGAYSQFJoRMMCXkBjMM48EmxAIA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Person = _t, #"Period 1" = _t, #"Period 2" = _t, #"Period 3" = _t, #"Period 4" = _t, #"Period 5" = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Person", type text}, {"Period 1", Int64.Type}, {"Period 2", Int64.Type}, {"Period 3", Int64.Type}, {"Period 4", Int64.Type}, {"Period 5", Int64.Type}}),
        #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Person"}, "Attribute", "Value")
    in
        #"Unpivoted Columns"

    then write a measure as:

    Measure = DIVIDE(CALCULATE(SUM('Table'[Value]),ALLEXCEPT('Table','Table'[Attribute])),COUNTROWS('Table'))

    format as 'Percentage' > should return as:

  • I hope Power Bi by default order by X axis based on measure you use.

     

    So any bar chart / column chart you can acieve it by default. If it is not working try to change the  sort property by clicking the three dots on top of chart.