-3

これらの目標と実績のセットがあります。

実績:「-20」/目標:「-10」

実績「50」/目標:「-5」

実績:「-10」/目標:「30」

目標値は3区分それぞれの予想値、実績値は年初来の実績値です。

  • 最初のカテゴリで。では、前期比で-10の売上があると予想されていました。今期末には-20でした。答えは -100% または -200% です。完了したパーセンテージは負の値であってはならないため、これらのパーセンテージはどれも意味がありません。パーセンテージを不合理にするもう 1 つの理由は、この場合、100% と -100% の違いを認識できないことです。

  • 2 番目のカテゴリでは、今期の売上が 5 件少ないと予想されていましたが、実際には今期の売上は 50 件でした。5 のすべての量が 100% であることに同意する場合、答えは +1100% になるはずです。

  • 編集: 上記と同じ、3 番目のカテゴリの答えは -133% である必要があります

目標がどの程度達成されているかを確認したい。実績=目標の場合、答えは 100% ですが、実績と目標の両方が負の金額である場合、これは意味がありません。

(actual/target)*100 を使用すると、負の金額は常に間違っています。正解を計算するための一般式が必要です。数式に多くの条件定義が含まれていてもかまいません。これどうやってするの?

4

4 に答える 4

1

負の金額を含む場合、探しているものが何であるかを常に知っておく必要があります。

例 1:

絶対値を使用する場合は、target=10actual=-550%であることに同意する必要があります。ただし、それを見る「純粋な」数学的方法は-50%です。

これに対する論理的な説明は、論理的に予測されるように、actual=0 は 0% であり、-5 はさらに悪いということです! 進歩がなかっただけでなく、後退が起こったので、-50% は理解できる結果です。

例 2:

target=-10actual=-20 の両方が負の場合、アンカー ポイントは0であるため、「純粋な」数学的結果は200%であり、減少が必要なため (もちろん、視点によって異なります) 正しいです。 10 減り、20 減った。

注:必要な出力を別の方法で定義したい場合は、そうしてください。「カスタム」パーセンテージ計算方法を試してみます。

編集:

あなたの場合に試すことができること(ただし、このアプローチには同意しないと言わなければなりません):

  • ターゲット>0 かつ実際の > 0 の場合 : (通常) :

    (actual/target)*100

  • if target < 0 and actual < 0 : (通常の負) :

    • if (target>actual) - 実際は予想より悪い:

      -(actual/target)*100

    • if (target < actual) - 実際は予想よりも優れています:

      (actual/target)*100

  • ターゲット>0 かつ実際の < 0 の場合:

    ((actual-target)/target)*100

    target=50 、actual = -100 -> result = -300%に対応

  • ターゲット <0 かつ実際 > 0 の場合:

    (abs(target)+actual)/abs(target))*100

    そのため、ターゲット = -50 ですが、実際 = 100 ->結果 = 300%

私はそれがあなたのオプションをカバーし、あなたのニーズに合っていると信じています.

編集:

私の観点からあなたの問題への良いアプローチは、 (差分値ではなく)絶対値を見ることです:

月 A の売上が 200 で、月 A+1 に 10% の増加が必要だとします -> 目標を 220 に設定し、それから実績を比較します。また、月の A の実績とレポート全体を比較することもできます。比較のために絶対値を使用すると、それらは常に正であり、より明確に理解できます。

今これ:

目標 = -10% 、実績 +5% 、前月の基準値 100

単にこれになります:

ターゲット = 90 実際 =105 => 105/90 の全体的なパフォーマンス、または (105/90)-1 予想より高い。

于 2013-07-05T21:53:53.707 に答える
0

R を使用したソリューションは次のとおりです。データが Target 列と Actual 列を含むサンプルであると仮定します。

sample<-structure(list(Actual = c(-20L, 50L, -10L), Target = c(-10L, 
-5L, 30L)), .Names = c("Actual", "Target"), row.names = c(NA, 
-3L), class = "data.frame")

sample<-
  Actual Target
1    -20    -10
2     50     -5
3    -10     30

#first I compute the percentage deviation as ((Actual-Target)/Actual)*100
#then I will use following two conditions:
# if Actual<0 and Target>0 multiply by -1
#if Actual<0 and Target<0  and if  absolute(Actual)>absolute(Target) multiply by -1 else leave as original percent

sample$diff<-with(sample,((Actual-Target)/Actual)*100)
> sample
  Actual Target diff
1    -20    -10   50
2     50     -5  110
3    -10     30  400

sample$percent<-with(sample,ifelse((Actual<0 & Target>0),diff*(-1),ifelse((Actual<0 & Target<0),ifelse((abs(Actual)>abs(Target)),diff*-1,diff),diff)))

> sample
  Actual Target diff percent
1    -20    -10   50     -50
2     50     -5  110     110
3    -10     30  400    -400

#delete diff column 

sample$diff<-NULL 

#your final output

> sample
  Actual Target percent
1    -20    -10     -50
2     50     -5     110
3    -10     30    -400

更新しました:

答えを一致させるには:

sample$diff<-with(sample,((Actual-Target)/Target)*100)
sample$percent<-with(sample,ifelse((Actual<0 & Target>0),diff,ifelse((Actual<0 & Target<0),ifelse((abs(Actual)>abs(Target)),diff*(-1),diff),diff*(-1))))
> sample
  Actual Target       diff   percent
1    -20    -10   100.0000 -100.0000
2     50     -5 -1100.0000 1100.0000
3    -10     30  -133.3333 -133.3333
于 2013-07-08T16:19:10.697 に答える