Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
8 years ago
Solved

Custom Bin Labels

I'm using Groups to cluster my data in bins. I'd like to label the bins by the intervals they represent. My bin size is 30, so I'd like my graphs to have labels like the following:

 

0-29

30-59

60-89

90-119

120-149

150-170

180-210

 

Instead my labels are 0, 30, 60, 90,120, 150, and 180.

 

Is there a way to customize those labels, or a better way to make my graphs that use bins more visually intuitive?

  • Anonymous's avatar
    Anonymous
    8 years ago

    Anonymous,

    There is no built-in option to customize the bin labels. In your scenario, you can add a column using the DAX below, then drag the column into your graph.

    Column = IF(Table[columnname (bins)]=0,"0-30", if(Table[columnname (bins)]=30,"30-90",IF(Table[columnname (bins)]=90,"90-990",IF(Table[columnname (bins)]=990,"above 990",IF(Table[columnname (bins)]=120,"120-149", IF(Table[columnname (bins)]=150,"150-170", IF(Table[columnname (bins)],"180-210")))))))


    Regards,
    Lydia

  • Anonymous,

     

    I would use SWITCH() function instead of nested IFs as follows:

     

    NewBinName = SWITCH(
                             [YourBinName]=0,"0-29"
                             ,[YourBinName]=30,"30-59"
                             ...
                             ,[YourBinName]=180,"180-210"
                             ,"Unknown")

     

    However, you don't need to cluster your variable by in-built functionality into category first, when you have to rename it anyway. You can create new column with the category using the SWITCH() function by yourself as follows:

     

    NewCategory = SWITCH(
                             TRUE(),
                             [BaseVariableName]<30,"0-29"
                             ,[BaseVariableName]<60,"30-59"
                             ...
                             ,[BaseVariableName]<211,"180-210"
                             ,"")

     

    The SWITCH() function prioritizes the conditions according to their order.

3 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Anonymous,

    There is no built-in option to customize the bin labels. In your scenario, you can add a column using the DAX below, then drag the column into your graph.

    Column = IF(Table[columnname (bins)]=0,"0-30", if(Table[columnname (bins)]=30,"30-90",IF(Table[columnname (bins)]=90,"90-990",IF(Table[columnname (bins)]=990,"above 990",IF(Table[columnname (bins)]=120,"120-149", IF(Table[columnname (bins)]=150,"150-170", IF(Table[columnname (bins)],"180-210")))))))


    Regards,
    Lydia

  • Anonymous,

     

    I would use SWITCH() function instead of nested IFs as follows:

     

    NewBinName = SWITCH(
                             [YourBinName]=0,"0-29"
                             ,[YourBinName]=30,"30-59"
                             ...
                             ,[YourBinName]=180,"180-210"
                             ,"Unknown")

     

    However, you don't need to cluster your variable by in-built functionality into category first, when you have to rename it anyway. You can create new column with the category using the SWITCH() function by yourself as follows:

     

    NewCategory = SWITCH(
                             TRUE(),
                             [BaseVariableName]<30,"0-29"
                             ,[BaseVariableName]<60,"30-59"
                             ...
                             ,[BaseVariableName]<211,"180-210"
                             ,"")

     

    The SWITCH() function prioritizes the conditions according to their order.

    • RookieAnalyst's avatar
      RookieAnalyst
      Regular Visitor

      Hi, 

      Do you know whether there is any way to do this and leave the bins unsorted, i.e. that they don't order by size? 
      I am looking at data for when actions are performed relative to their due dates, and  want bins grouped as '1 day overdue', '2-4 days overdue', '5-7 days overdue' etc.

      I haven't been able to sort these according to days in any sensible matter. Do you, or anyone else here know how/if I can do this? 🙂