Я получаю ошибку при вычислении средних значений в итоговой строке отчета. Мое выражение выглядит так:
=IIF(SUM(Fields!column3.Value) > 0, Format(DateAdd("s", (SUM(Fields!column4.Value) / SUM(Fields!column3.Value)), "00:00:00"), "HH:mm:ss"), "-")
(простите за супер длинную линию)
Выражение отлично работает, когда данные выглядят примерно так:
8311 87 0 0
8311 41 0 0
8311 80 0 0
8311 136 1 136
Идея состоит в том, что столбец 3 равен 1, если столбец 2 больше 120, в противном случае он равен 0. Столбец 4 имеет значение больше 0, только если столбец 2 больше 120, и в этом случае это значение равно столбцу 2. Таким образом, для итоговой строки этой группы в службах отчетов я могу определить общее количество строк, превышающее 120 (используя SUM в столбце 3). Таким же образом, я могу определить общее число значений в столбце 2, которые больше 120, суммируя столбец 4. Оттуда должно быть просто деление столбца 4 на столбец 3, чтобы определить среднее значение столбца 2 значения более 120.
Как только я получу среднее значение, я хочу преобразовать его во временную строку (например, «00:02:16»). Если значения нет (то есть в группе нет значений столбца 2 свыше 120, я хочу отобразить «-».
Эта логика работает в случаях, когда столбец 2 имеет значения более 120. Однако, когда столбцы 3 и 4 равны 0, как показано ниже:
8310 108 0 0
выражение выдает страшный результат #Error при запуске отчета. Я предполагаю, что это ошибка деления на ноль, поэтому я бросил IIF в выражение, чтобы проверить, что знаменатель в моем среднем расчете равен> 0.
К сожалению, # Ошибка сохраняется для тех групп, которые имеют 0 в столбцах 3 и 4. Чего мне не хватает?