you might be able to do it by creating 2 hidden controls to initially hold the value 0, and writing a similar IIF statement that would go something along these lines IIF(Report.HasData, control +=1,) so that it adds one for each valid value. then divide by the control in the main set of IIF...