Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9922 / 13644 ツリー ←次へ | 前へ→

【24738】Excelの平均値について せなき 05/5/6(金) 17:05 質問[未読]
【24742】Re:Excelの平均値について ちゃっぴ 05/5/6(金) 19:26 回答[未読]
【24743】Re:Excelの平均値について G-Luck 05/5/6(金) 20:10 発言[未読]
【24749】Re:Excelの平均値について せなき 05/5/7(土) 10:34 お礼[未読]

【24738】Excelの平均値について
質問  せなき  - 05/5/6(金) 17:05 -

引用なし
パスワード
   教えてください。〈(-_-)〉お手上げです。

1行目 10              7.2  (3+9+10+6+8)/5  
2行目  6              9   (9+10+6+8+12)/5
3行目  8              10.2  (10+6+8+12+15)/5
4行目 12              9.6  (6+8+12+15+7)/5
5行目 15 5と入力すると→    9   (8+12+15+7+3)/5
6行目  7              9.2  (12+15+7+3+9)/5
7行目  3              8.8  (15+7+3+9+10)/5
8行目  9              7   (7+3+9+10+6)/5

A列に上記の数値があります。
これを指定した数値範囲ごとに平均値を出したいのです。
この指定するデータはセル上に入力したいです。
そして、上段の行は最終行からデータを取って平均したい!
逆に下段の行は上段からデータを取る!
例えば・・・5と入力すると、
1行目は7行目と8行目と1行目と2行目と3行目を足して5で割る。
2行目は8行目と1行目と2行目と3行目と4行目を足して5で割る。
        ・
        ・
        ・
7行目は5行目と6行目と7行目と8行目と1行目を足して5で割る。
8行目は6行目と7行目と8行目と1行目と2行目を足して5で割る。
Excelの機能でそんなのは無いですよね?
VBAでも構いません。
教えてください。説明、下手ですみません。。。 
よろしくお願いいたします。

【24742】Re:Excelの平均値について
回答  ちゃっぴ  - 05/5/6(金) 19:26 -

引用なし
パスワード
   一番簡単な方法は、わかりますかね?

上下に同じDataを作っておくことです。
(つまり、同じDataが3つ存在することになります)

1行目 10
2行目  6
3行目  8
4行目 12
5行目 15
6行目  7
7行目  3
8行目  9
9行目 10              7.2  (3+9+10+6+8)/5  
10行目  6              9   (9+10+6+8+12)/5
11行目  8              10.2  (10+6+8+12+15)/5
12行目 12              9.6  (6+8+12+15+7)/5
13行目 15 5と入力すると→     9   (8+12+15+7+3)/5
14行目  7              9.2  (12+15+7+3+9)/5
15行目  3              8.8  (15+7+3+9+10)/5
16行目  9              7   (7+3+9+10+6)/5
17行目 10  
18行目  6
19行目  8
20行目 12
21行目 15
22行目  7
23行目  3
24行目  9

その上で、真ん中のDataに対して関数を使ってやれば
簡単にできるはずです。

VBAを使ってSmartにやることもできますが、
使用したことあるのでしょうか?

もし、使用したことないのであれば、条件分岐、Loopから
みっちり修行しないと厳しいでしょう。

【24743】Re:Excelの平均値について
発言  G-Luck  - 05/5/6(金) 20:10 -

引用なし
パスワード
   せなきさん、ちゃっぴさん
こんばんわ。

式で対応してみました。

条件 
データは、Sheet1のA:A列に空白を挟まず入力されている。
データはすべて数字で、A:A列には、データ以外入力されていない。見出しも不可
計算数は、奇数。
計算数は、データの個数を超えない。
結果の出力位置は、データと同じ行にする。

以下を定義してください。

計算数
 =5
  あるいは、5を入力したセル位置
データ数
 =COUNTA(Sheet1!$A:$A)
データ範囲
 =OFFSET(Sheet1!$A$1,0,0,データ数)
データインデックス
 =MOD(ROW(データ範囲)-ROW(Sheet1!D1)+INT(計算数/2)+1,データ数)
  Sheet1!D1をセレクトした状態で定義すると↑です。
  他のセルなら、そのセルのアドレスを$無しで入力してください
平均値
 =AVERAGE(IF((0<データインデックス)*(データインデックス<=計算数),データ範囲,""))


で、結果を出力したいセルに、
=平均値
としてください。

【24749】Re:Excelの平均値について
お礼  せなき  - 05/5/7(土) 10:34 -

引用なし
パスワード
   ちゃっぴさん・G-Luckさん
回答ありがとうございました。
VBAはある程度わかります。
VBAで頑張って作成したいと思います。
(あるセルに数値を入れて、ボタンを押すと平均が出る!みたいな感じに。)
いまは、数値に対応した平均を出すところまで、出来たのですが、
上下のデータ取得がうまくいきません。
もう少し、頑張ってみようと思います。
また、良い案があったら教えてください。
お待ちしております_(._.)_

9922 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free