計算自体はごく簡単な中学(?)の式ですが,「一括で出来る方法」がエクセルの構造上ありません。
エクセルの関数や数式には,自分の上や下にあるのが「生数字」なのか「(自分と同じ)式なのか」を見分ける事が出来ないからです。
という訳で,一括にしたいのが重要ならマクロを併用する必要があります。
ところで平均は「上下」で見たいのか「左右」方向で見たいのか,ご相談に書かれていません。
とりあえず上下方向だけ書いておきますので,実は左右だったときは適宜修正して利用してください。
手順:
マクロのセキュリティを中にしてエクセルを再起動する
ALT+F11でVBE画面を出す
挿入メニューから標準モジュールを選ぶ
現れたシートに下記をコピー貼り付ける
Function myavrV()
Dim x As Long
Dim s As Long
Dim e As Long
Dim c As Long
Dim LB As Long
Application.Volatile
x = Application.Caller.Row
s = x
e = x
c = Application.Caller.Column
LB = Cells(65536, c).End(xlUp).Row
Do
s = s - 1
Loop Until s < 2 Or Not Cells(s, c).HasFormula
Do
e = e + 1
Loop Until e > LB Or Not Cells(e, c).HasFormula
myavrV = (Cells(e, c) - Cells(s, c)) / (e - s) * (x - s) + Cells(s, c)
End Function
終了してエクセルに戻り,表中の空欄に
=myavrV()
とまとめて記入する。
お礼
早速のご対応ありがとうございます。 エクセルは毎日のように使うのですが、マクロに苦手意識がありました。 「左右方向」だったのでこちらで対応して、 教えて頂いた方法で解決させて頂きました。 しかし、実はこの方法だと表の最後の数字以降に、見当違いな予測が記入されます。 説明が難しいのですが、 1、不明A、不明B、不明C、5の場合は問題が無いのですが、 1、不明A’、不明B’、4、不明C’のように、表の最後の数字(この場合は4)以降に不明な蘭があった場合、不明C’に平均ではない何らかの数字(有意とは思えない数字)が書き込まれてしまいます。 これはこちらで適宜削除していきましたが、今後大量のデータでご活用なさる方は、ご注意くださいませ。