1

私は毎月更新される膨大なデータセットを持っています。新しいデータが前月と%で異なるかどうかを確認したいと思います。

次のようになります。

month name  data  
jan   551   2  
jan   552   20  
dec   553   12  
jan   553   13  
dec   554   9  
okt   555   2  
nov   555   2  
dec   555   2,5    

つまり、5つの名前、最大4か月、さまざまなデータPR。月、pr。名前。

名前の1つが前月と比べてi%異なる場合に、私にわかる式を作成したいと思います。たとえば、12月の「名前」555は、その顧客 の平均と比較して25%異なると言いたいです。

ありがとう、
アンダース


まあ、私は自分自身を説明するにはあまり良くないと思います。ですから、もう少し明確にしようと思います。

私はこれをExcel関数として実行しています。

したがって、私が探している式はprを計算する必要があります。平均値(avgN)に名前を付けます。もちろんこれは毎月変わります。そして、数式は平均と比較した月間差を見つける必要があります。

私は900の異なる名前で約2.000行を持っています。

4

2 に答える 2

0

推定:

avgN = average amount for customer n
currN = current (monthly) amount for customer n
delta = tolerance expressed as a decimal (.25 in your example)

次に、式

=abs((currN - avgN) / avgN) 

今月の金額と平均のパーセンテージ差を返します。これが許容範囲 (デルタ) を超えているかどうかをテストする場合は、上記の式をifワークシート関数の最初の引数として使用します。

=if(abs((currN - avgN) / avgN) > delta, "tolerance exceeded", "within tolerance") 

これをVBAコードで行うのか、ワークシート関数で行うのかは、あなたの質問からは明らかではありません。前者の場合、次のようなものが必要になります

Sub checkTolerance()

    Dim percentageChange As Double
    Dim currN As Double
    Dim avgN As Double
    Dim delta As Double

    ' Set the values of the variables above from somewhere (worksheet cell, user input, etc.)

    percentageChange = Abs((currN - avgN) / avgN)


    If percentageChange > delta Then 
        ' Do something when tolerance is exceeded
        MsgBox "tolerance exceeded"     

    Else
        ' Do something when amount is within tolerance
        MsgBox "within tolerance"
    End If 

End Sub
于 2010-09-07T11:26:57.107 に答える
0
=(SUM(($A$2:$A$9=A2)*($B$2:$B$9=B2)*($C$2:$C$9))-(SUM(($B$2:$B$9=B2)*($C$2:$C$9))/SUM(--($B$2:$B$9=B2))))/SUM(($A$2:$A$9=A2)*($B$2:$B$9=B2)*($C$2:$C$9))

これは配列数式であり、Enter だけでなく、Control+Shift+Enter で入力する必要があります。データの最初の行が A2 で始まる場合、この数式は D2 に入り、データがある範囲まで入力します。

SUM(($A$2:$A$9=A2)*($B$2:$B$9=B2)*($C$2:$C$9))

この部分は、現在の行と同じ名前と月を持つすべてのデータを合計します。

(SUM(($B$2:$B$9=B2)*($C$2:$C$9))/SUM(--($B$2:$B$9=B2)))

この部分は、月に関係なく、現在の行と同じ名前を持つすべてのデータの平均 (合計/カウント) を取得します。

12 月、553、12 の場合、-4.17% になります。553 の平均は 12.5 で、dec は平均より 4.17% 少なくなっています。

于 2010-09-07T14:25:57.420 に答える