I had a similar issue, but in a matrix, needed to repeat prior value at the details group level when there is only one rowgroup. To do this, I used custom code.
For example, I have a column in my matrix named "Clusters". The row group field is a simple date field. In my data set, I have Date, Clusters, ResourceType as fields. I have different resource type values and so I can see the dates that clusters associated with a given resource type have data. My challenge came from the fact that my data set is sparse - for a given ResourceType value, not all dates have values. In my matrix, I ended up with rows that have blank values in cells that there is no corresponding row in the underlying data set. The use of Previous doesn't work well (lots of other examples).
To solve the problem, I used custom code and a hashtable as follows:
Private LastSeenValue as System.Collections.HashTable = New System.Collections.HashTable
' GetRowValue is used to fill in blank cells in the dynamic matrix with the nearest value above them in the same column.
' The data can contain multiple sets according to ResourceType field, and not all dates are present in all of these sets.
' This has the effect on the screen of having blank cells for each given date where there is no corresponding resource type.
' The requirement this function enables is that it allows filling in the blank cells with the nearest real value above.
' The SSRS PreviousRow function does not do this.
' Author: DanRo, 1/8/2016
'
' Some behavior notes for developers who follow and seek to alter the function.
' The prototype for the GetRowValue function performs "null to zero" coercion as a result of return type. This was done purposefully.
' The Object type for the FieldVal inpute parameter allows null rows to be processed with the same type of coercion
' on the incoming side.
' This is report specific logic that takes advantage of the fact that all of data requiring this function is numeric.
Function GetRowValue(ByVal FieldName as String, ByVal FieldVal as Object, ByVal ResourceType as String) As Double
' TheKey variable allows this function to be used for any number of columns for any number of resource types.
Dim TheKey as String
TheKey = "[" & FieldName & "][" & ResourceType & "]"
' See if a value was passed. In SSRS, when the cell tries to render in the matrix, there
' is no underlying data row for the column region, so a null (Nothing) gets passed by the runtime environment.
If FieldVal is Nothing Then
' Coercion on the return type happens when the HashTable Item property returns Null if the lookup fails.
' If the lookup succeeds, the last value encountered (top to bottom) will be present.
Return LastSeenValue(TheKey)
End If
' now we know that a value was passed
If (Not LastSeenValue.ContainsKey(TheKey)) Then
LastSeenValue.Add(TheKey, FieldVal)
Return FieldVal
End If
' A value was passed and we have an old value. Update it
LastSeenValue(TheKey) = FieldVal
Return FieldVal
End Function
Finally, in the Matrix Cell for Clusters column I set the expression to:
=Code.GetRowValue("Clusters", Fields!Clusters.Value, ReportItems!ResourceType.Value)
And that solved the problem. An added benefit is now my rows at the start of the table that were blank now correctly contain zeroes (which was correct for me). One tricky thing was Typing the FieldVal argument to Object instead of Integer (which was my Clusters data type) because you cannot check for existence on value types. Another was referring to the ReportItem!ResourceType.Value instead of Fields!ResourceType.Value
because ResourceType was my column grouping. Finally, the return type choice for the function will impact whether your data has decimal points - so the choice of Double lets you handle both integers and real numbers. This would have to be modified to make this function handle strings correctly.
Before, Original Experience:
After, Values are now repeating where previously blank: