3

ロジックはありますが、Excelで実行/コーディングする方法がわかりません。ロジックは次のとおりです。

オフィスでは、購入金額と年齢に基づいて、多くの古い商品の価値を調べる必要があります。VDBやその他の組み込み関数を使いたくありません。

私のスプレッドシート:

A1 = "Table" (Name of the article)  
B1 = "01/01/2005" (Date of purchase in MM/DD/YYYY format)  
C1 = "1000" (Purchase value)  
D1 = "=DATEDIF(B1,TODAY(),"Y")" (Gives the age of article in years)  
E1 = "20" (Percentage depreciation for first year, which varies based on article)  
F1 = "=C1*10%" '(Depreciated value should not be less than 10% of purchase value)  

ここで、記事 ""の減価償却額を、 " "年数の購入額" "、@フラット " "%で初年度、10%を次の年でG1計算したいと思います。A1C1D1E1

H1 = "=C1-G1" (Value of the article after depreciation)  
I1 = "=IF(H1<=F1,F1,H1)"

ループしての値を見つけるためのマクロまたは数式を手伝ってくださいG1

また、記事数が「n」なので、これを「n」行数に適用したいと思います。

編集

@ assylias SOポリシーについて教えてくれてありがとう、答えを見つけるために自分のために働くようにさせてくれました。

約30分間のグーグルと試行錯誤の末、私は自分のやりたいことを実行するためのマクロを作成することに成功しました。ここに行きます:

Sub DepVal()
'
' DepVal Macro
' Macro by Prashanth JC
'
' Keyboard Shortcut: Ctrl+d
'
fYear = 0
dVal = 0
tYear = ActiveCell.Offset(0, -3)
purVal = ActiveCell.Offset(0, -4)
depFirst = ActiveCell.Offset(0, -2)
depOther = 10

If tYear >= 1 Then
    Do
        If fYear = 0 Then
            dVal = purVal - (purVal * depFirst) / 100
        Else
            dVal = dVal - (dVal * depOther) / 100
        End If

        fYear = fYear + 1

    Loop Until fYear = tYear

    ActiveCell.Value = dVal

Else
    ActiveCell.Value = purVal

End If

End Sub

最後に、G1セルを小数点以下ゼロの数値にフォーマットしました。今ではすべてが完璧に機能します!

もう一度ありがとう、SOとassylias

4

1 に答える 1

1

マクロは必要ありません。単純な計算です。

パーセンテージ (in) が実際には ではなく (20%)E1として保存されていると仮定すると、次の式が機能します。.220

=MAX(F1,C1*(1-E1)-(C1*0.1*(D1-1)))
于 2012-06-22T03:57:33.220 に答える