Forum Discussion

mohanpal's avatar
mohanpal
Frequent Visitor
4 years ago
Solved

Create a dynamic index column based on Date Selection by user

Hi all,

 

I want to create a dynamic index column based on whatever date user select.

 

Look at the sample table below,

 

1. If the user select 2nd Jan from slicer, the index against it should be one.

2. If user select 3rd jan, then index should be 1 against 3rd Jan.

3. If user select multiple dates , for example: 3rd, 5th and 6th Jan then index should be 1 for 3rd jan, 2 for 5th Jan, 3 for 6th jan and so on.

 

I have tried using RANKX function but it's not giving me desired output. Any help is appreciated.

 

 

  • Hi mohanpal 

     

    In Power BI, the calculated column cannot be dynamic according to users' selection in the slicer/filter. Only measures can be dynamic. You can use the following measure. 

    Rank = RANKX(ALLSELECTED('Date'[Date]),CALCULATE(MAX('Date'[Date])),,ASC,Dense)

     

    Best Regards,
    Community Support Team _ Jing
    If this post helps, please Accept it as Solution to help other members find it.

6 Replies

  • v-jingzhang's avatar
    v-jingzhang
    Community Support

    Hi mohanpal 

     

    In Power BI, the calculated column cannot be dynamic according to users' selection in the slicer/filter. Only measures can be dynamic. You can use the following measure. 

    Rank = RANKX(ALLSELECTED('Date'[Date]),CALCULATE(MAX('Date'[Date])),,ASC,Dense)

     

    Best Regards,
    Community Support Team _ Jing
    If this post helps, please Accept it as Solution to help other members find it.

    • Ckumar22's avatar
      Ckumar22
      Regular Visitor

      Hi,

      RANKX(ALLSELECTED(Child[Mfg_Date_Time]),CALCULATE(MAX(Child[Mfg_Date_Time])),,ASC,Dense)
      Rank = RANKX(ALLSELECTED('Date'[Date]),CALCULATE(MAX('Date'[Date])),,ASC,Dense)​

      This formula is considering date only, how do we modify it to consider date and time too?

  •  dynamic ... column

    That is not something you can do in Power BI.  Either you have a column, or you have something dynamic (ie a measure).  You cannot have both.

  • pedroluccas's avatar
    pedroluccas
    Frequent Visitor

    Hello!
    I have a similar problem.

     

    I am working witha data series that relates a "result" (pH, mass, etc) to "sample code" and, in order to calculate my intersect, slope and R² I need an index starting with 1

    But when I filter my data, I need that the first sample be reenumerated to 1. Ex: 

    - First analysis: Sample 1 to 20 (1 = 1,  2 = 2, 3 = 3, ..., 20 samples)

    - Second analysis: Sample 8 to 16 (8 = 1, 9 = 2, 10 = 3, ..., 16 = 9)

     

    I tried your solutions but it didn't work. Maybe because my sample code is a text.

     

    The same way I want select samples of annother product, ex: B1AA/22 - B12AA/22, and, when I change the products the index restart with 1

     

    I expalin with more details of the statistics on DAX on LINEAR REGRESSION - X-AXIS IN TEXT FORMAT - Microsoft Power BI Community

     

    Any ideas? v-jingzhang 

    Thank you very much

     

  • azaki's avatar
    azaki
    Frequent Visitor

    To have a dynamic index follow below steps

    1- Add Index column to your data set

    2- Create Measure like this 

    MsrDynamicIndex = SUMX(FILTER(ALLSELECTED('Table_Name'),[Index]<=MAXX('Table_Name',[Index])),CALCULATE(1))
     
    Now the measure will be your Dynamic Index whatever filters you applied it will reset the index 🙂
     
     
    • kaacuesta's avatar
      kaacuesta
      New Member

       

      This generally works although I am wondering how this happened, see how first row is ranked 7th