ส่งกลับ Double ที่ระบุค่าเสื่อมราคาของสินทรัพย์สําหรับช่วงเวลาที่ระบุโดยใช้วิธี Double-Declining Balance หรือวิธีอื่นที่คุณระบุ
ไวยากรณ์
DDB(cost, salvage, life, period* [, factor] )
ไวยากรณ์ของฟังก์ชัน DDB มีอาร์กิวเมนต์ดังนี้
| อาร์กิวเมนต์ | คำอธิบาย |
|---|---|
| ค่าใช้จ่าย | จำเป็น ระบุต้นทุนเริ่มต้นของสินทรัพย์สองครั้ง |
| ซาก | จำเป็น การระบุมูลค่าของสินทรัพย์เป็นสองเท่าเมื่อสิ้นสุดอายุการใช้งาน |
| ชีวิต | จำเป็น การระบุระยะเวลาของอายุการใช้งานของสินทรัพย์เป็นสองเท่า |
| ช่วงเวลา | จำเป็น การระบุคาบเวลาสองเท่าสําหรับการคํานวณค่าเสื่อมราคาของสินทรัพย์ |
| ปัจจัย | ไม่จำเป็น ตัวแปรที่ระบุอัตราที่ยอดลดลง ถ้าละไว้ จะถือว่าเป็น 2 (วิธีปฏิเสธทวีคูณ) |
ข้อสังเกต
วิธี Double-Declining Balance จะคํานวณค่าเสื่อมราคาในอัตราเร่ง ค่าเสื่อมราคาจะสูงสุดในช่วงแรก และจะลดลงในช่วงต่อมา
อาร์กิวเมนต์ life และ period ต้องแสดงเป็นหน่วยเดียวกัน ตัวอย่างเช่น หากกําหนด ระยะเวลา เป็นเดือน ต้องกําหนด ระยะเวลา เป็นเดือนด้วย อาร์กิวเมนต์ทั้งหมดต้องเป็นจํานวนบวก
ฟังก์ชัน DDB จะใช้สูตรต่อไปนี้คํานวณค่าเสื่อมราคาของคาบเวลาที่ระบุ
ค่าเสื่อมราคา / ระยะเวลา = ((ต้นทุน – ซาก) * ค่า factor) / life
ตัวอย่าง
หมายเหตุ
ตัวอย่างต่อไปนี้จะสาธิตการใช้ฟังก์ชันนี้ในโมดูล Visual Basic for Applications (VBA) สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการทํางานกับ VBA ให้เลือก การอ้างอิงนักพัฒนาในรายการ ดรอปดาวน์ที่อยู่ถัดจาก ค้นหา แล้วใส่คําอย่างน้อยหนึ่งคําในกล่องค้นหา
ตัวอย่างนี้ใช้ฟังก์ชัน DDB เพื่อส่งกลับค่าเสื่อมราคาของสินทรัพย์สําหรับงวดที่ระบุ โดยให้ต้นทุนเริ่มต้น ()InitCost มูลค่าซาก ณ จุดสิ้นสุดของอายุใช้ประโยชน์ของสินทรัพย์ ()SalvageVal อายุรวมของสินทรัพย์ในปี ()LifeTime และคาบเวลาเป็นปีที่มีการคํานวณค่าเสื่อมราคา ()Depr
Dim Fmt, InitCost, SalvageVal, MonthLife, LifeTime, DepYear, Depr
Const YRMOS = 12 ' Number of months in a year.
Fmt = "###,##0.00"
InitCost = InputBox("What's the initial cost of the asset?")
SalvageVal = InputBox("Enter the asset's value at end of its life.")
MonthLife = InputBox("What's the asset's useful life in months?")
Do While MonthLife < YRMOS ' Ensure period is >= 1 year.
MsgBox "Asset life must be a year or more."
MonthLife = InputBox("What's the asset's useful life in months?")
Loop
LifeTime = MonthLife / YRMOS ' Convert months to years.
If LifeTime <> Int(MonthLife / YRMOS) Then
LifeTime = Int(LifeTime + 1) ' Round up to nearest year.
End If
DepYear = CInt(InputBox("Enter year for depreciation calculation."))
Do While DepYear < 1 Or DepYear > LifeTime
MsgBox "You must enter at least 1 but not more than " & LifeTime
DepYear = InputBox("Enter year for depreciation calculation.")
Loop
Depr = DDB(InitCost, SalvageVal, LifeTime, DepYear)
MsgBox "The depreciation for year " & DepYear & " is " & _
Format(Depr, Fmt) & "."