- ベストアンサー
エクセルで不明なデータを平均で埋める方法
- エクセルで複数の不明なデータを平均で埋める方法をご紹介します。
- データが入手できない年が続く場合には、前後の年のデータから推移を予測する方法もあります。
- データの量が多い場合でも一括で処理することができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
計算自体はごく簡単な中学(?)の式ですが,「一括で出来る方法」がエクセルの構造上ありません。 エクセルの関数や数式には,自分の上や下にあるのが「生数字」なのか「(自分と同じ)式なのか」を見分ける事が出来ないからです。 という訳で,一括にしたいのが重要ならマクロを併用する必要があります。 ところで平均は「上下」で見たいのか「左右」方向で見たいのか,ご相談に書かれていません。 とりあえず上下方向だけ書いておきますので,実は左右だったときは適宜修正して利用してください。 手順: マクロのセキュリティを中にしてエクセルを再起動する 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’に平均ではない何らかの数字(有意とは思えない数字)が書き込まれてしまいます。 これはこちらで適宜削除していきましたが、今後大量のデータでご活用なさる方は、ご注意くださいませ。