アプリ版:「スタンプのみでお礼する」機能のリリースについて

ご存知の方ご教示ください。
下記 tap_amp  に取り込んだ値の絶対値の平均値を求めたいのですが良い方法はありませんか?

Cells(TAP_r, TAP_c).Select
Range(Selection, Selection.End(xlDown)).Select

Set myRange2 = Selection
tap_amp = myRange2.Value

tap_amp_ave =

If tap_amp_ave > tap_amp_lim Then TAP = "TAP"
Else
TAP = ""
End If

よろしくお願いいたします。

A 回答 (2件)

こんな感じでいかかでしょう。


SUMIF関数で0以上のセルを集計した値から0未満のセルを集計した値を減算し、その結果をCOUNT関数で求めた個数で割ります。
個数がゼロの場合の考慮はしていません。

With WorksheetFunction
tap_amp_ave = (.SumIf(myRange2, ">=0") _
- .SumIf(myRange2, "<0")) _
/ .Count(myRange2)
End With
    • good
    • 0

ご質問で書かれているマクロは、何をしようとしているのか分かりませんので、こちらの回答が思ったように行っていない場合は、言葉による説明が必要です。



しかし、絶対値平均ということでしたら、

関数では以下のようになります。
=AVERAGE(INDEX(ABS(A1:A20),,))

'マクロでは、一例ですが、このようになります。

Sub AbsoluteAverage()
 Dim x, v
 Dim i As Long
 Dim dSum As Double
 'マウスの範囲選択
 If TypeName(Selection) <> "Range" Then Exit Sub
 x = Selection.Value
 For Each v In x
  If IsNumeric(v) Then
   dSum = dSum + Abs(v)
   i = i + 1
  End If
 Next
 MsgBox dSum / i
End Sub

絶対値平均とは、平均値算出の際に正弦波などの正負が逆転したりして、求めたい平均値が出ないときに使うものです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!