- ベストアンサー
[エクセル] 平均値導出関数 意味を教えて下さい
=AVERAGE(OFFSET($E$18,ROW(F1)*10,0,10,1)) この関数が、平均値を導出するための関数であることは理解できます。 ですが、()の中の意味がさっぱり分かりません。 ()の中はどのような意味なのですか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
OFFSET関数の意味を関数のヘルプで調べてみれば OFFSET(基準セル、基準セルから下に移動する数、同右に移動する数、縦のサイズ、横のサイズ) だと判ります。 つまり、その関数が記入されたそのセルで、オフセット関数は E18セルを基準として ROW(F1)つまり1*10=10下がって右にゼロ動いたE28セル、 そのE28セルを左上とする縦10×横1のセル範囲、 つまりE28:E37のセル範囲 を計算してくれます。 つまり平均関数の中身は =AVERAGE(E28:E37) となっているという事です。 その関数を1つ下のセルにコピーすると、数式の中のROW関数はROW(F2)に変わります。 つまりつまり、その関数を一つ下にコピーしたセルで、オフセット関数は E18セルを基準として ROW(F2)つまり2*10=20下がって右にゼロ動いたE38セル、 そのE38セルを左上とする縦10×横1のセル範囲、 つまりE38:E47のセル範囲 を計算してくれます。 つまり一つ下のセルで平均関数の中身は =AVERAGE(E38:E47) となっているという事です。
その他の回答 (3)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
OFFSET関数は揮発性のある関数で、計算速度の面でできるだけ使わないほうが良いです。 つまり、計算対象の範囲外に値を入力したときにも計算が走ってしまいます。 対策としては、 =AVERAGE(INDEX($E:$E,ROW(F1)*10+18):INDEX($E:$E,ROW(F1)*10+28)) のように、INDEX関数を使います。 INDEX関数は値を直接返すのではなく、セル参照を返す特性を利用します。 ROW(F1)*10+18 の部分は 直線の数式 ax+bと考えます。(a=10、x=ROW(F1)、b=18) ROW(F1)は下へコピーすることにより、1,2,3,4と変化します。(なので正確には直線の数式ではないけどね) 日曜のたそがれ時、、、もとい、アベレージはほかの方の説明通りです。
お礼
回答ありがとうございます。 せっかく回答を頂いたのですが、ごめんなさい。 INDEX関数は私にはちょっと難しいので、今まで通りにさせて頂きます
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
=AVERAGE(OFFSET($E$18,ROW(F1)*10,0,10,1)) これがどこのセルに仕掛けられたものかは存じ上げませんが、下の解説によれば、 基準の「$E$18」からさほど離れていない、一定の範囲(テーブル?)のセルの安部礼司を計算せよ、と言うことになる。 「ROW(F1)」は、これだけ解釈するなら「1」、だから計算範囲は、 「$E$18」から「下に10行、右に0列」オフセットした、「$E$28」を起点とする「10行X1列」になる。 「ROW(F1)」は、式をドラッグコピーするとそれなりに修飾されるので、それが示すオフセットは当然変動する。 OFFSET関数 http://officetanaka.net/excel/function/function/offset.htm <<適当にツマミ食い!>> OFFSET関数は理解しづらい関数のひとつです。しかし、その仕組みを理解できれば、これほど役に立つ関数はありません。 OFFSET(基準,行数,列数,高さ,幅) 1.基準となるセルを指定する引数→[基準] 2.基準セルを動かす位置を指定する引数→[行数],[列数] 3.基準セルの大きさを指定する引数→[高さ],[幅] 引数[基準]は、どこか基準にするセルのアドレスを指定します。 OFFSET関数の[基準]はセルA1です。 セルE2に入力したのは、=OFFSET(A1,2,1,1,1) です。行数=2、列数=1というのは、 基準セルから 下に2行、右に1列 動いた位置にあるセルに、基準セルを移動せよという意味です。 まず、1つのセルとは、1行×1列のセル範囲だという認識を持ってください。 上の図のセル範囲A1:C5は、5行×3列のセル範囲ですね。 このように、任意の大きさのセル範囲は、[高さ]行×[幅]列で表すことができます。 引数[高さ]と引数[幅]は、この大きさを指定する引数なのです。
お礼
回答ありがとうございます。 C言語のfor文と似たような感じなのですね! URLも参考になります。 ありがとうございました。
》 ()の中の意味がさっぱり分かりません どの括弧の中? ROW(F1) の F1 ?
お礼
ありがとうございました
補足
一番外側の()です。 =AVERAGE(OFFSET($E$18,ROW(F1)*10,0,10,1)) とあるうちの =AVERAGE(@@@) @@@にした部分の意味が知りたいです。 引き続き宜しくお願い致します。
お礼
回答ありがとうございます。 ヘルプでも調べることができるのですね。 分かりやすい解説ありがとうございます! ありがとうございました!