2016-04-07 14 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の計算や予測に問題はありません。 (で見つかったソリューションに応じて、私はそれを「」含む細胞がなければ、これらがうまくいくと信じて

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

は、私が(+ CTRL +シフトを使用して配列数式に入力した)以下の式を試してみました別の場所)

どのような考えですか?スプレッドシートはすでに大きいので、新しい列を作成せずに(つまり、平均を計算する新しい列のabs(DATA)を作成せずに)これを実行したいと考えています。

私はまた、VBA /マクロなしでこれを作っています。これは、単純なエクセル式以外の何も知らない人がアクセスできる必要があります。

ありがとうございます!

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

どちらの回答を選択するか分かりません。 非CSE(配列)式を使用するためにTomに渡すとします。 – 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

A1などが実際に= ""を含んでいても、最初のものが#valueを返すならば、CSEが動作することがわかります!エラー –

+0

@トムシャープあなたは正しいです、私はそれに取り組ませてください。 –

+0

@TomSharpe私はこの場合、唯一の答えはCSE配列の式だと思います。少なくとも私の限られた知識で私はSUPRODUCT()を動作させることができませんでした。それはABS()ですが、空白のセルは好きではありません。 –

関連する問題