2016-04-07 3 views
1

Я создаю инструмент сравнения методов прогноза в excel. Я должен использовать excel для этой конкретной задачи. Мне нужно сравнить различные типы ошибок (средняя абсолютная ошибка MAE, среднеквадратичная ошибка RMSE и т. Д.), Чтобы показать, какой метод выполняет лучшую работу.Усреднение абсолютных значений данных в excel, игнорирование пустых ("") ячеек

У меня есть ошибки (невязки) организована следующим образом:

Column 1 Column 2 
    -0.5  1.2 
    1.5  -1 
    ""  ""   # <==== here is what is causing the issue 
    0.2  1.5 

Проблема заключается в том, что иногда наборы данных не полностью заселены, и я построил в «если» заявлении, что возвращение «» (как пустую ячейку, которую я могу получить из инструкции «if»), если в определенный день нет активности. Это не вызывает проблемы при вычислении Средней ошибки или RMSE или в прогнозировании.

Я попытался следующие формулы (с помощью Ctrl + Shift + Enter для формул массива):

=average(abs(DATA-RANGE)) 
=sum(abs(DATA-RANGE))/count(DATA-RANGE) # I calculated the count in another cell 

Я считаю, что это будет работать, если бы не было клеток, содержащих «» (в соответствии с решением, найденным в другое место)

Любые мысли? Электронная таблица уже велика, я бы хотел сделать это, не создавая новые столбцы (т. Е. Создавая новый столбец abs (DATA) для вычисления среднего значения).

Я также хочу сделать это без каких-либо VBA/макросов - он должен быть доступен для людей, которые ничего не знают, кроме простых формул excel.

Спасибо!

EDIT 1: Here I have tried both Scott and Tom's method with my data. Both work! I even tried removing some of the formulas that provide the "" (so that true blank spaces were there), and it did not return #VALUE in either method. The formula in the edit box is what is being used to calculate the errors. Much obliged!

+0

Я не знаю, какой ответ выбрать, оба работают! Я полагаю, что я передам его Тому для использования формулы non-CSE (массив). – henrythedj

ответ

3

формула не-CSE, который работает с пустыми и клетки, содержащие = «» является

=SUMPRODUCT(ABS(N(+A2:B5))*(A2:B5<>""))/COUNT(A2:B5) 

или потому, что клетки, которые являются пустыми или имеют котировки в них не могут благоприятствовать сумма,

=SUMPRODUCT(ABS(N(+A2:B5)))/COUNT(A2:B5) 

See this useful answer, а также this

enter image description here

+0

Хорошая работа, я пробовал все, но используя '-' или '+', чтобы превратить '' '' в '0'. Хотя с '+' я считаю, что 'N()' не требуется. –

+1

Спасибо! Казалось, что нужно «+», чтобы заставить его работать как массив, а N() преобразовать «» в 0, чтобы, насколько я могу судить, две разные вещи. –

2

Попробуйте следующую формулу массива:

=AVERAGE(IF(A2:B5<>"",ABS(A2:B5))) 

Будучи формула массива должна быть подтверждена с Ctrl-Shift-Enter. Если все сделано правильно, Excel автоматически поместит {} вокруг формулы.

![enter image description here

+0

Я нахожу, что CSE работает, если A1 и т. Д. На самом деле содержат = "", но первый дает #value! ошибка –

+0

@TomSharpe вы правы, позвольте мне поработать над этим. –

+0

@TomSharpe Я думаю, что в этом случае единственным ответом является формула CSE Array. По крайней мере, с моими ограниченными знаниями я не мог сделать SUPRODUCT() работу. Это ABS(), он не любит пустые ячейки. –