2016-11-24 3 views
2

this スプレッドシートのように、最も最近の7つのエントリの平均を検索しようとしています。Googleスプレッドシートの1つの列にある最後の7つの値の平均値を調べるにはどうすればよいですか?

私は似たような質問をいくつか見つけましたが、回答の仕組みについてはかなり混乱しています。私の似たような質問は、私のスプレッドシートの左側にあります。

私は数式を使用していくつかの簡単な調整をして私のために働くだろうと思うが、私はそれを把握していないようだ。誰かが既存の回答の1つを説明したり、別の答えを思いつくことができたら、本当に感謝しています。

スプレッドシートは毎日更新されるため、データが追加されるにつれて引き続き機能するものが必要です。

答えて

1

試してみてください。私たちはの範囲を取得しているoffset式でMAX(ARRAYFORMULA(ROW(H:H)*--(H:H<>"")))

その後:

=round(AVERAGE(OFFSET(H1,MAX(ARRAYFORMULA(ROW(H:H)*--(H:H<>"")))-7,,7))) 

ここworking sample

説明私たちは、最後の非空の行を取得している

です列の最後の7つのセル。

そして、AVERAGEを使用してください。

あなたがここで最後の非空の行を見つけることについての詳細情報を見つけることができ

さらに詳しい情報: Selecting the last value of a column

+0

に動作します。 <>と - の配列式関数は何ですか? – beninato

1

もう一つの方法は、INDEXとMATCHを使用することです。最初の試合は、その範囲内の最後の数字の位置を見つけ、それから6を離します.2番目の試合は、その範囲内の最後の数字の位置を見つけます。これをINDEX関数に渡すと、AVERAGEが動作するための7つのセルの範囲を指定するための参照が得られます。

=average(index(H:H,match(999,H:H)-6):index(H:H,match(999,H:H))) 

だから私の答えはここにあなたのLink2

大きな暗礁のようなものです、あなたが(「ナッシング」のような)の範囲内のテキストのセルを持っている場合、それははるかに困難を開始するためにどのセル動作するようにされています平均して7個の細胞が得られます。私はオフセットを使用してExcelでそれを行う方法を知っていると思うが、オフセットはGoogleシートで同じように動作していないようだ。

しかし、A:AをH:Hに、SUMをAVERAGEに変更すると、あなたのためにはあなたのLink3に解決策があります。私は「何も」セルを含む最後の10個のセルの平均にそれをテストしています

=ArrayFormula(AVERAGE(QUERY(SORT(H:H,ROW(H:H)*ISNUMBER(H:H),0),"select * limit 10"))) 

、それが正解61.8を与えます。

一般的に、配列式が機能する方法では、関数に単一の値を渡す代わりに、範囲または配列全体(値のリスト)を渡し、それらを1つずつ処理します。上の公式は、列H:H全体を取り、降順で行番号にソートしますが、数値を含まないセルは乗算でゼロを返し、下にソートされます。その後、クエリはトップセル(私の場合は10個)を取り、それをAVERAGEに渡します。

ところでこれは、配列数式として宣言する必要はありません。これはまた、これは間違いなく動作しますが、私は本当にどのように理解していない

=AVERAGE(QUERY(SORT(H:H,ROW(H:H)*ISNUMBER(H:H),0),"select * limit 10")) 
+0

応答ありがとうございます。しかし、私はおそらくマックスの答えを使用します。あなたはまた、配列の数式関数を使用することがわかります、あなたはそれが何を説明することができますか? – beninato

+0

Aは私の答えに2番目の式の説明を追加します(最初のものは配列式ではありません) –

関連する問題