2

グラフを平滑化するための移動平均を生成するvba平滑化の数式を調整するには、四分位範囲を使用する必要があります。QuartileRange をEvaluate関数に渡してその範囲の四分位値を返すにはどうすればよいですか?

関数は次のように呼び出されます

=MovingAverageSmoothQuartile( A1, 4, B1:b10 )

どこ

  • A1は平滑化する値です。
  • 4は使用する値の数で、
  • B1:B10四分位値の計算に使用されるサンプルの列です。

    Function MovingAverageSmoothQuartile(r As Range, ByVal m As Integer, QuartileRange As Range)
    ' returns a smoothed average using the 'rectangular' method
    Dim q1 As Double, q2 As Double, q3 As Double        
    q1 = Evaluate("Quartile( " + QuartileRange.Text + ", 1") ' <--- Stuck here
    
4

4 に答える 4

2

このような:

q1 = WorksheetFunction.quartile(QuartileRange, 1)
于 2012-10-05T07:38:42.190 に答える
1

QUARTILEなしでVBAで直接使用できますEVALUATE

たとえば、A1:A10から最初の四分位数を返すには:

Sub Calltest()
MsgBox Test([a1:a10])
End Sub

Function Test(rng1 As Range)
Test = Application.WorksheetFunction.Quartile(rng1, 1)
End Function
于 2012-10-05T07:39:49.503 に答える
1

ここで使用する理由がよくわかりませんEvaluateか? 代わりにこれを行う必要があると思います:

ql = WorksheetFunction.Quartile(QuartileRange, 1)
于 2012-10-05T07:41:52.863 に答える
0
q1 = Evaluate("Quartile(INDIRECT(" + QuartileRange.Text + "), 1")

申し訳ありませんが、関数の使用方法がわかりません。文字列形式の範囲アドレスが含まれているQuartileと想定しています。QuartileRange.Text

于 2012-10-05T07:26:06.420 に答える