Forum Discussion
rush
Helper V
4 years agoFill down values with DAX calculated column
Hi All
I need help trying to fill values down based on the date I have for each staff.
Please see the example below with the expected column to be created along with the link to the sample data:
Sample Data for Data Fill Down
Thanks in advance.
Please try
Employment Status New = VAR CurrentDate = TableName[Date] VAR CurrentStatus = TableName[Employment Status] VAR CurrentIdTable = CALCULATETABLE ( TableName, ALLEXCEPT ( TableName, TableName[ID] ) ) VAR NoBlanksTable = FILTER ( CurrentIdTable, TableName[Employment Status] <> BLANK () ) VAR NoBlanksTableBefore = FILTER ( NoBlanksTable, TableName[Date] < CurrentDate ) VAR LastDateWithData = MAXX ( NoBlanksTableBefore, TableName[Date] ) VAR LastStatus = MAXX ( FILTER ( NoBlanksTableBefore, TableName[Date] = LastDateWithData ), TableName[Employment Status] ) RETURN IF ( ISBLANK ( CurrentStatus ), LastStatus, CurrentStatus )
14 Replies
- tamerj1
Community Champion
Hi rush
you can use
Employment Status New = VAR CurrentStatus = TableName[Employment Status] VAR CurrentIdTable = CALCULATETABLE ( TableName, ALLEXCEPT ( TableName, TableName[ID] ) ) VAR NoBlanksTable = FILTER ( CurrentIdTable, TableName[Employment Status] <> BLANK () ) VAR LastDateWithData = MAXX ( NoBlanksTable, TableName[Date] ) VAR LastStatus = MAXX ( FILTER ( NoBlanksTable, TableName[Date] = LastDateWithData ), TableName[Employment Status] ) RETURN IF ( ISBLANK ( CurrentStatus ), LastStatus, CurrentStatus ) - PC2790
Community Champion
Hey rush ,
Here, try this:
New Value = VAR LastNonBlankID = CALCULATE ( LASTNONBLANK ( FillDown[ID], 1 ), FILTER ( ALL ( FillDown), FillDown[ID] <= EARLIER ( FillDown[ID]) && NOT ( ISBLANK ( FillDown[Employment Status] ) ) ) ) RETURN CALCULATE ( Max ( FillDown[Employment Status] ), FILTER ( ALL ( FillDown ), FillDown[ID] = LastNonBlankID ) )Outcome:
- Tahreem24
Super User
- tamerj1
Community Champion
Just wanted to add that my code retrieves the last available value before the blank incase you have multiple available values per Id with blanks inbetween the values.