Excel VBA質問箱 IV

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

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


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

【25366】不要な値を除いて平均値を求めたい monmon 05/5/30(月) 6:11 質問[未読]
【25370】Re:不要な値を除いて平均値を求めたい ぴかる 05/5/30(月) 9:28 回答[未読]
【25403】Re:不要な値を除いて平均値を求めたい monmon 05/5/30(月) 16:40 質問[未読]

【25366】不要な値を除いて平均値を求めたい
質問  monmon  - 05/5/30(月) 6:11 -

引用なし
パスワード
   みなさんまたお願いします。

ここに、AからF列まで各列に100行まである値が格納されています。ここで各行の平均値を求めます。ただ、その際にそれぞれのセルの値があるしきい値以上の場合、その値を除いて平均値を求めたいのです。

例えば、ある行が、AからF列まで各々5,6,7,8,9,10の場合平均値はしきい値を設定しない場合は
(5+6+7+8+9+10)/6で求めますが、
しきい値を9に設定した場合、
(5+6+7+8)/4として平均値を求めたいのです。

これをマクロを使ってやった場合、If...Then...文を使うと、64通りの条件設定が必要になるのですが、どうにかもっと簡単にできないかと考えています。どうしたら、簡略化できますでしょうか?

【25370】Re:不要な値を除いて平均値を求めたい
回答  ぴかる  - 05/5/30(月) 9:28 -

引用なし
パスワード
   monmonさん、こんにちは。

こんなんでOKですかね?

Sub TEST()

Dim しきい値 As Integer
Dim データ数 As Integer
Dim 合計値 As Integer
Dim I As Long

  しきい値 = InputBox("しきい値を入力して下さい。")
  For I = 1 To Range("A1").End(xlDown).Row
    For J = 1 To 6
      If Cells(I, J).Value < しきい値 Then
        合計値 = 合計値 + Cells(I, J).Value
        データ数 = データ数 + 1
      End If
    Next
    If データ数 > 0 Then
      Cells(I, 7).Value = 合計値 / データ数
    End If
    合計値 = 0
    データ数 = 0
  Next

End Sub

【25403】Re:不要な値を除いて平均値を求めたい
質問  monmon  - 05/5/30(月) 16:40 -

引用なし
パスワード
   ありがとうございます。無事解決です。

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