dポイントプレゼントキャンペーン実施中!

電気代 最後の12か月分の月平均を出したいです。

電気代は4列に月ごとに入力しています。
AH4からAS4までが最後の12か月分です。
次にAT4に入力すると自動的に
AI4からAT4までの平均を出したいです。

どうしたらセルの C4 に書いたらいいですか?

質問者からの補足コメント

  • 自動的に12か月分の平均値を算出させたいです。
    次に AU4に入力するとAJ4~AU4の平均を算出です。

      補足日時:2022/06/03 15:02

A 回答 (4件)

No2です。



補足を頂いたので、No3様の説明にあるのと同じ方法です。
=AVERAGE(OFFSET(F4,0,MAX(COUNT(F4:AT4)-12,0),1,12))

ただし、No2の式で計算できないようなので、こちらの式でもできない可能性があります。
セルの値が数値ではない場合などは計算に反映されません。

>・代金を記入する予定の最後の列(今後の予定の最後の列)
>AT4
>次にAT4に入力すると自動的に   と書いてあります。
とのことですので、式はAT4を最後の対象列となるようにしてあります。
(それ以降の列は計算対象とはみなされません)

>前提条件として当たり前のことではないでしょうか?
質問者様の前提条件は私にはわかりません。
途中に中見出しがあったり、5年区切りで空欄を設けていたりと、いくらでも可能性は考えられますので・・

No2の式で計算できないというのも、こちらの前提条件とは違うことをなさっているものと想像します。
(当方の環境では、きちんと計算できますので・・)
今回の式も同じ前提条件ですので、計算できない可能性は多分にあります。
もしも計算できない場合は、新しいブックの新しいシートに、F4セルから右に「数値」を連続でいくつか入力したものを作成した上で、試してみてください。
(必ず「数値」で入力のこと)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
計算されました。
来年の12月がBM4なのですが
AT4をBM4にしても最後の12か月の平均値が算出されました。
追記時に正常に最後の12個の平均値が計算されました。

お礼日時:2022/06/05 09:13

んんーと。


AS4までデータが入力されていたら、
 =AVERAGE(AH4:AS4)
AT4までデータが入力されていたら、
 =AVERAGE(AI4:AT4)
のような計算をさせたいということでしょうか。
ならば、最後のデータの位置を確認して、その手前12個のデータで平均を取れば良いと思います。

データの範囲を指定するにはOFFSET関数を使うと良いでしょう。
データのあるセルの数を数えれば、基準にするセルから見て、
 行方向にいくつ、列方向にいくつ、のセルを範囲の左上として、
 高さがいくつ、幅がいくつ、の範囲を返す。

・・・
A1セルを基準として、D3セルからG10セルの範囲を指定する場合、
 行方向2、列方向3、のセル(D3セル)から
 高さ8、幅4、のセル範囲(D3:G10セル)なので
 OFFSET(A1,2,3,8,4)
とすれば良いのです。
・・・

質問のケースでは、4行目に「数値」が入力されているセルの数を数え、
それを列方向の値にすれば良いでしょう。
COUNT関数で数えましょう。
足りない分は足し算すれば良いんです。10足りなければ「+10」する。
 COUNT(4:4)+10
とかね。
(A4セルの次から数えてAH4セルは33番目ですので、
 このCOUNT関数を使った式の返り値が33になるように
 「+10」の値を変えて使いましょう)
すると
 OFFSET(A4,0,COUNT(4:4)+10,1,12)
こんな感じで範囲を指定できます。
あとはAVERAGE関数に入れるだけ。

前の回答者さんはCOUNT関数ではなくAGGREGATE関数を使っていらっしゃいますが、
それって結構イレギュラーな使い方ですので、理解できないのであれば
 「そんなやり方もある」 
程度に覚えておくことを薦めます。
条件が変わったときに応用できないでしょ?


・・・余談・・・

データが横に延びる表はお勧めしません。
集計が面倒になることがあるのです。
縦方向に延びる表に置き換えるようにしてみましょう。

上記の説明が理解できていれば、OFFSET関数を使った範囲の指定方法は分かると思います。
    • good
    • 0

No1です。


連投失礼。

とりあえず、C4セルに
=AVERAGE(OFFSET($A$4,0,AGGREGATE(14,6,COLUMN(4:4)/(4:4<>""),1)-12,1,12))
とか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
値は0になります、

お礼日時:2022/06/03 15:14

こんにちは



説明にはありませんが、順に右の列に記入してゆく表になっているものと想像しました。
最後の行から12か月分を計算対象にすれば良いと思われますが、無条件で計算しようとすると面倒な式になります。

以下が明確になれば、かなり簡単に求められるようになると思います。
・代金を記入している最初の列(一番左の列)
・代金を記入する予定の最後の列(今後の予定の最後の列)
・上記の代金欄は、左端のセルから、必ず「連続して数値で入力されている」と考えても良いか
    • good
    • 0
この回答へのお礼

面倒でもなんでも
新たな月の電気代を入力すれば
最後の12か月分の平均値を計算したいです。

・代金を記入している最初の列(一番左の列)
   F4
・代金を記入する予定の最後の列(今後の予定の最後の列)
   AT4
  次にAT4に入力すると自動的に   と書いてあります。
・上記の代金欄は、左端のセルから、必ず「連続して数値で入力されている」と考えても良いか
  連続して入力してあるのか聞くこと自体わかりませんが
前提条件として当たり前のことではないでしょうか? F4からAS4まで入力してあってひとつも空白はありません。

お礼日時:2022/06/03 15:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!