You can use custom code and a lookupset()
.
Code:
Function SumLookup(ByVal items As Object()) As Decimal
If items Is Nothing Then
Return Nothing
End If
Dim suma As Decimal = New Decimal()
Dim ct as Integer = New Integer()
suma = 0
ct = 0
For Each item As Object In items
suma += Convert.ToDecimal(item)
ct += 1
Next
If (ct = 0) Then return 0 else return suma
End Function
- To add this, right-click on the blue background of the report and select Report Properties.
- Click on the Code option.

- Paste it into this window
- Call this with
=Code.SumLookup(lookupset("EXP", right(Fields!ProjCategoryId.Value, 3), Fields!Value.Value, "DatasetName"))
in your expression where you want the number to appear
This will add up all the Values where the ProjCategoryId starts with "EXP".
For <> "EXP", you might need to do several calls to it to add them all up for each thing that it can start with. For example..
Code.SumLookup(lookupset("ONE", right(Fields!ProjCategoryId.Value, 3), Fields!Value.Value, "DatasetName")) + Code.SumLookup(lookupset("TWO", right(Fields!ProjCategoryId.Value, 3), Fields!Value.Value, "DatasetName"))