Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Prepping for a Fabric certification exam? Join us for a live prep session with exam experts to learn how to pass the exam. Register now.

Reply
adventurer7
Helper I
Helper I

Conditional Index with Maximum Value

Hi everyone! I have been searching the forum for conditional index solutions but I can't seem to find any which matches my problem. It seems fairly simple yet I wasn't able to combine ideas from provided solutions (such as usage of VAR/MAX).

 

The key column looks up from another table so it is static (abc MAX is always 3, def MAX is always 2, so on).

I need to create a new index column based on KEY which restarts to 1 once it reaches its max value.

 

KEYMAXINDEX
abc31
abc32
def21
def22
abc33
abc31
def21
ghi41
ghi42
ghi43
ghi44
def22

 

Thanks in advance!

1 ACCEPTED SOLUTION

@adventurer7 

you can create an index table in PQ, then use DAX to create a column

Column = 
if(mod(CALCULATE(COUNTROWS('Table'),'Table'[KEY]=EARLIER('Table'[KEY])&&'Table'[Index]<=EARLIER('Table'[Index])),'Table'[MAX])=0,'Table'[MAX],mod(CALCULATE(COUNTROWS('Table'),'Table'[KEY]=EARLIER('Table'[KEY])&&'Table'[Index]<=EARLIER('Table'[Index])),'Table'[MAX]))

1.PNG

pls see the attachment below





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




View solution in original post

8 REPLIES 8
MyroslavaM
Advocate II
Advocate II

Hi @k_rojvanakarn , @ryan_mayu , @adventurer7 

Might be useful for you.
Picture (1).png
In this case, I generate values from 1 to 5 and repeting them based on Index column.

= List.Accumulate(#"Added Index"[Index],{0}, (state,current) =>  
    if current = 0 then {1} 
    else if List.Last(state)>4 then
    state &{List.Last(state)-4} else state & {List.Last(state)+1})

Here is a good video related how to use other approach https://youtu.be/Hc3d8rMSXcQ?si=S1Adls_HbrgPn4bw

Ashish_Mathur
Super User
Super User

Hi,

How did you arrive at the numbers in the Index column?


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
ryan_mayu
Super User
Super User

@adventurer7 

is this a table or a visual?





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Hi! This is in a table

@adventurer7 

you can create an index table in PQ, then use DAX to create a column

Column = 
if(mod(CALCULATE(COUNTROWS('Table'),'Table'[KEY]=EARLIER('Table'[KEY])&&'Table'[Index]<=EARLIER('Table'[Index])),'Table'[MAX])=0,'Table'[MAX],mod(CALCULATE(COUNTROWS('Table'),'Table'[KEY]=EARLIER('Table'[KEY])&&'Table'[Index]<=EARLIER('Table'[Index])),'Table'[MAX]))

1.PNG

pls see the attachment below





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




is this possible in the power query editor? i have the sane structure but in power query instead of columns and measures..

Thanks! Works exactly as intended. Just having memory related problems once this is applied to a table with 50k+ rows, so I may have to recreate this in PQ instead of DAX

 

Appreciate the help!

I don't know how to do this in PQ, let's see if anyone else can help on M language.





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Helpful resources

Announcements
PBIApril_Carousel

Power BI Monthly Update - April 2025

Check out the April 2025 Power BI update to learn about new features.

Notebook Gallery Carousel1

NEW! Community Notebooks Gallery

Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.

April2025 Carousel

Fabric Community Update - April 2025

Find out what's new and trending in the Fabric community.