Как объяснил TnTinMn, IIF всегда оценивает как истинную, так и ложную часть выражения.
Простое исправление - сделать что-то вроде РЕДАКТИРОВАТЬ Пересмотрено из-за обновления с OP
=IIF(Fields!Proceeds.Value<>"n|a",VAL(REPLACE(REPLACE(Fields!Proceeds.Value,",",""),"$","")) / Fields!DealBalance.Value,"n|a")
Это просто удаляет символ $ и запятые, а затем преобразует текст на число с помощью VAL (), если текст не является числом, он вернет ноль, что не приведет к ошибке, поскольку ложная часть вашего выражения выдаст 0 / DealBalance.