[[20110916103848]] 『3セルずつの平均を求めたい』(わんちょ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『3セルずつの平均を求めたい』(わんちょ)

excel2007を使用しています。

B5:AQ102まで数値が入力されています。
B5:D5,E5:G5,H5:J5.....AO5:AQ5 
B6:D6.E6:G6,H6:J6.....AO6:AQ6
............................
B102:D102,E102:G102,H102:J102....AO102:AQ102
....................

の平均値を同じシート内のB110〜あたりに出したのですが、
何か良い関数はないでしょうか?

今は、B110に=average(B5:D5),C110=average(E5:G5)....と
入力しています。
よく使うものなので、あらかじめこの数式が入力されているシートを作っておいて、
テンプレートシートとして使ってもよいのですが、
量が多く、参照するところがずれてしまいそうで、
何かスマートな方法があれば教えてください。

よろしくお願いします。


 B110=AVERAGE(OFFSET($B5,,(COLUMN()-2)*3,,3))
 必要分フィルライト&フィルダウン。
 (ROUGE)

ROUGEさん

コメントありがとうございます。
数式を入力してみましたが、実際の計算値を違う結果になってしまいます。

例)
B5=2000,C5=2100,D5=2000→B110=average(B5:D5)=2033
になりますが、
教えていただいた数式ですと、2001になってしまいます。

どこか変更する必要があるのでしょうか?


 こちらでは確かに2033.33と表示されていますが?
実際の入力セルは本当にB110ですか?
(ROUGE)

 再現性がありません

 新規にシートを作成し、直接 B5=2000,C5=2100,D5=2000 を入力
 B110=AVERAGE(OFFSET($B5,,(COLUMN()-2)*3,,3))
 でどのようになりますか

 質問者の表と新規作成したシートとどこが違うかを説明して下さい 


ROUGEさん

数式の()を一部間違っていました。ごめんなさい・・

B110=AVERAGE(OFFSET($B5,,(COLUMN()-2)*3,,3))

B110=AVERAGE(OFFSET($B5,,COLUMN()-2)*3,,3)
と入力していました。

正しく入力したら、ちゃんと2033になりました。

()がないだけで計算値が違ってしまうのですね・・
これも関数の勉強不足のためですね、

offset関数と、column関数、勉強してみます。

とても助かりました。

ありがとうございました。
感謝です。


ROUGEさん

こんにちは。
少し勉強してみましたが、 column()-2)*3 がどうしてもわかりません…

offset=(参照セル、行数、列数、高さ、幅)
自分の求めたいのは。。。

offset=(B$5, , 列数, , 3)

行数は使わないので空白、列数に当たるところがcolumn()-2)*3、幅は3列なので3

というところまではあっていますか?

     A B C D E F G H

列番号  1 2 3 4 5 6 7 8

計算させるのは B:D,E:F,H:J,・・・・

列移動の引数を右にずらすたびに2→5→8 とすればいいのでは と思うのですが、
そこからなぜ column()-2)*3になるのか どうしてもわかりません・・・・

たびたびで済みませんが、よろしくお願いします。


        COLUMN()  →   -2   →      *3    →   OFFSET、B列起点で3配列
 B110      2            0            0             B、C、D列 (Bから0シフトで3配列)
 C110      3            1            3             E、F、G列 (Bから3シフトで3配列)
 D110      4            2            6             H、I、J列 (Bから6シフトで3配列)

 ・
 ・
 ・
 ・

 (GobGob)

GobGobさん

コメントありがとうございます。

うっすらわかってきた気がします・・・・

言われればなるほど。。。。と思うのですが、
自分で法則を見つけるのって熟練が必要そうですね。

まずはすんなり理解できるようにいろいろ応用して使ってみます。

ありがとうございました。


 2→5→8 とすればよいってんではなく、

 「1列移動するごとに参照起点セルを3つ変化させる」ってことやね。

 単純に1列ごとに3つ変化させるってことはCOLUMN()*3で出来る。(結果 → 3,6,9)

 今回はB列起点やから 3から3ずつでなく、0から3ずつ変化させるから

 (COLUMN()-2) ・・・ 起点を0にする。

 ってことやね。

 (GobGob)


GobGobさん

!!!!

「1列移動するごとに参照起点セルを3つ変化させる」ってことやね。

この一文で霧が晴れました。

すっごくわかりました。
ありがとうございます!!!


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.