ส่งกลับ สองชั้น ที่ระบุค่าเสื่อมราคาของสินทรัพย์สําหรับช่วงเวลาที่ระบุโดยใช้วิธีดุลที่ลดลงสองเท่าหรือวิธีอื่นที่คุณระบุ
ไวยากรณ์
DDB( cost, salvage, life, period [, factor] )
ไวยากรณ์ของฟังก์ชัน DDB มีอาร์กิวเมนต์ดังนี้
อาร์กิวเมนต์ |
คำอธิบาย |
ต้นทุน |
จำเป็น Double ที่ระบุต้นทุนเริ่มต้นของสินทรัพย์ |
ซาก |
จำเป็น สองเท่า ที่ระบุมูลค่าของสินทรัพย์เมื่อสิ้นสุดอายุการใช้งาน |
อายุการใช้งาน |
จำเป็น สองเท่า ที่ระบุความยาวของอายุการใช้งานของสินทรัพย์ |
รอบ ระยะ เวลา |
จำเป็น สองเท่า ที่ระบุรอบระยะเวลาที่จะคํานวณค่าเสื่อมราคาสินทรัพย์ |
ปัจจัย |
ไม่จำเป็น ตัวแปรที่ระบุอัตราที่ยอดดุลลดลง ถ้าไม่ใส่ค่าอะไรไว้ จะถือว่ามี 2 (วิธีลดลงสองเท่า) |
ข้อสังเกต
วิธียอดลดลงทบสองเท่าจะคํานวณค่าเสื่อมราคาในอัตราเร่ง ค่าเสื่อมราคาจะสูงสุดในคาบเวลาแรกและลดลงในคาบเวลาต่อเนื่องกัน
อาร์กิวเมนต์ 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) & "."