- ベストアンサー
Excel 2003使用者です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 一例です。 データは2行目からあるとします。 C2セルに =IF(OR(B2="",COUNT($B$2:B2)<5),"",(SUM(INDEX($B$2:B2,MAX(IF($B$2:B2<>"",ROW($A$1:A1)))):INDEX($B$2:B2,LARGE(IF($B$2:B2<>"",ROW($A$1:A1)),5))))/5) これは配列数式になってしまいますので、この画面からC2セルにコピー&ペーストしただけではエラーになると思います。 C2セルに貼り付け後、F2キーを押す、またはC2セルをダブルクリック、または数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 このC2セルをオートフィルでずぃ~~~!っと下へコピーしてみてください。 希望に近い形にならないでしょうか? 尚、かなり下までコピーするのも大変ですので、 一つの方法として、C列に1列挿入 → 元のC列がD列に移動します。 挿入したC2セルに「1」と入力OK 当方使用のExcel2003の場合ですが C2セルをアクティブにし → メニュー → 編集 → フィル → 連続データの作成 → 「列」を選択「停止値」は適当にこれ以上データはないという数値を入力 (仮に300と入力したとします。) → OK これでC301セルまで連番が表示されます。 先ほどの数式をD2セルにコピー&ペースト(配列数式です)し、D2セルのフィルハンドルでダブルクリック これで先ほどのC列の番号が表示されている行すべてに数式がコピーされます。 最後にC列すべてを削除して完了です。 以上、長々と書きましたが 他に良い方法があれば読み流してくださいね。m(__)m
その他の回答 (3)
- KURUMITO
- ベストアンサー率42% (1835/4283)
C列に作業列を作って、お求めの答えをD列に表示させる方法です。 C1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B1="","",COUNT(B$1:B1)) D1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(OR(C1="",C1<5),"",AVERAGE(INDEX(B:B,MATCH(C1-4,C:C,0)):B1))
お礼
作業列を用いた算出手法としては、スッキリ表示できました。 どれも希望通りの値を表示できました。 ありがとうございました。
セル D1 に式 =COUNT(B$1:B1) を入力 セル C1 に式 =IF(B1="","",IF(D1>4,AVERAGE(OFFSET(B1,,,MATCH(D1-4,D$1:D1,0)-ROW(A1)-1,)),AVERAGE(OFFSET(B1,,,-ROW(),)))) を入力 範囲 C1:D1 を下方にズズーッとドラッグ&ペースト
お礼
できました! こちらも希望の値をピタリと算出してくれます。 ありがとうございました。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
お礼
アドバイスいただいた数式を実際に使ってみました。 結果、Very Good でした。 ありがとうございました。