もう一つの方法は、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"))
に動作します。 <>と - の配列式関数は何ですか? – beninato