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

EXCEL 表の上部に行を追加すると、AVEREGE関数の範囲がずれて正確な値が求められない。

「EXCEL AVEREGE関数について」の質問画像

A 回答 (9件)

No.2の回答者です。


回答したものは行追加した状態の計算式でした。
正確には
 =AVERAGE(OFFSET(B2,1,0,B12))
ですね。
「EXCEL AVEREGE関数について」の回答画像4
    • good
    • 0

範囲を下に多めにとっておいて、新しい日付は一旦一番下に入れて日付を降順で並べ替えてはどうでしょうか?

    • good
    • 0

ご質問のようなケースでは、AVERAGEIF関数を使う方法で解決できます。



ご質問者は3行目に新しい行を追加して、そこに最新日付のデータを入力していくという方法でデータを更新し、その状態で最新の平均値を求めたいというご希望だと思います。
掲出された画像のように、平均値を表示するのがB2セルでA2セルは空白だとすると、B2セルに

=AVERAGEIF(A1:A12,"<>",B1:B12)

という数式を記述することで、A3の上に行を追加すると自動的に計算範囲が拡大されてご希望の平均値が算出されます。

また、日付範囲を区切って計算したいとすると、AVERAGEIFS関数を用いてB2セルに、

=AVERAGEIFS($B:$B,$A:$A,">=2023/8/1",$A:$A,"<=2023/8/31")

とすれば、月を跨いでどんどんデータを蓄積していく場合でも、8月中だけの平均を求めることができます。
    • good
    • 0

「$」を入れておけば、


行や列を挿入・削除しても、
値は変わらない。
    • good
    • 0

こんにちは



>AVEREGE関数の範囲がずれて正確な値が求められない。
挿入・削除を行った場合に式の参照セルを調整してくれるのは、エクセルの仕様ですね。
便利な場合と、変わってくれない方が良い場合がありますが、ご質問の場合は変わらないままで、
 >=AVERAGE(B3:B12)
となっていても困るのではないでしょうか?
B12だけB13になって欲しいのではないかと想像します。

セル範囲を指定するのに、スタート位置はアドレス固定で、エンドの位置は操作に応じて変化して欲しいということではないかと解釈しました。
範囲の終わりは、ご提示の状態でB12で良いものとするなら・・
 =AVERAGE(OFFSET($B$1,2,0,ROW(B12)-2))
のような方法でも可能と思います。

※ 開始位置は固定のB$1を基準にして、範囲は可変になるような設定をしています。
    • good
    • 0

まあ、仕様だから仕方ないですよ。


どうしてもそこに「行挿入」するのであれば、
範囲を文字列で指定するようにしましょう。
 =AVERAGE(B3:B12)
 ↓
 =AVERAGE(INDIRECT("B3:B12"))
ただし追加された行により下のデータは押し出されて集計外になる。
ですので、
 =AVERAGE(INDIRECT("B3:B1048576"))
これでOK。

 ※ B1048576 はシート最下のセル

・・・

同様のことがA11セルに
 =AVERAGE(A1:A10)
と入力されているところに、
11行目を挿入すると起きる。
(AVERAGE(A1:A10)のままで11行目を集計の範囲に含まない)
    • good
    • 0

一体どういう操作してます???


普通に3行目にカーソル当てて、右クリックで挿入。

これで自動的に範囲はB3:B13になるけど・・・・。
    • good
    • 0

質問にある平均を求める一番下のセルが12行目で開始するのなら、


以下のようにOFFSET関数で処理できます。
 =AVERAGE(OFFSET(B2,1,0,B13))
https://www.tipsfound.com/excel/04offset-excel
    • good
    • 0

3の行をコピーして、4の行に挿入する。


次に、3の行を修正すればいいと思います。
    • good
    • 0

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