ส่งกลับ Double ที่ระบุค่าเสื่อมราคาแบบผลรวมจํานวนปี (sum-of-years' digits) ของสินทรัพย์สําหรับงวดที่ระบุ
ไวยากรณ์
SYD(cost, salvage, life, period)
ไวยากรณ์ของฟังก์ชัน SYD มีอาร์กิวเมนต์ดังนี้
| อาร์กิวเมนต์ | คำอธิบาย |
|---|---|
| ค่าใช้จ่าย | จำเป็น ระบุต้นทุนเริ่มต้นของสินทรัพย์สองครั้ง |
| ซาก | จำเป็น การระบุมูลค่าของสินทรัพย์เป็นสองเท่าเมื่อสิ้นสุดอายุการใช้งาน |
| ชีวิต | จำเป็น ระบุความยาวของอายุการใช้งานของสินทรัพย์เป็นสองเท่า |
| ช่วงเวลา | จำเป็น การระบุคาบเวลาสองเท่าสําหรับการคํานวณค่าเสื่อมราคาของสินทรัพย์ |
ข้อสังเกต
อาร์กิวเมนต์ life และ period ต้องแสดงเป็นหน่วยเดียวกัน ตัวอย่างเช่น หากกําหนด ระยะเวลา เป็นเดือน ต้องกําหนด ระยะเวลา เป็นเดือนด้วย อาร์กิวเมนต์ทั้งหมดต้องเป็นจํานวนบวก
ตัวอย่างคิวรี
| นิพจน์ | ผลลัพธ์ |
|---|---|
| SELECT SYD([LoanAmount],[LoanAmount]*.1,20,2) AS Expr1 FROM FinancialSample; | คํานวณค่าเสื่อมราคาสําหรับสินทรัพย์ที่มีมูลค่าเป็น "LoanAmount" ด้วยมูลค่าซาก 10% ("LoanAmount" คูณด้วย 0.1) โดยพิจารณาว่าอายุการใช้งานของสินทรัพย์เป็น 20 ปี ค่าเสื่อมราคาจะคํานวณสําหรับปีที่สอง |
| SELECT SYD([LoanAmount],0,20,3) AS SLDepreciation FROM FinancialSample; | ส่งกลับค่าเสื่อมราคาสําหรับสินทรัพย์ที่มีมูลค่าเป็น "LoanAmount" ด้วยมูลค่าซากเป็น $0 เมื่อพิจารณาว่าอายุการใช้งานของสินทรัพย์เป็น 20 ปี ผลลัพธ์จะแสดงในคอลัมน์ SLDepreciation ค่าเสื่อมราคาจะคํานวณเป็นปีที่สาม |
ตัวอย่าง VBA
หมายเหตุ
ตัวอย่างต่อไปนี้จะสาธิตการใช้ฟังก์ชันนี้ในโมดูล Visual Basic for Applications (VBA) สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการทํางานกับ VBA ให้เลือก การอ้างอิงนักพัฒนาในรายการ ดรอปดาวน์ที่อยู่ถัดจาก ค้นหา แล้วใส่คําอย่างน้อยหนึ่งคําในกล่องค้นหา
ตัวอย่างนี้ใช้ฟังก์ชัน SYD เพื่อส่งกลับค่าเสื่อมราคาของสินทรัพย์สําหรับงวดที่ระบุ โดยกําหนดต้นทุนเริ่มต้นของสินทรัพย์ ()InitCost มูลค่าซากที่ช่วงสุดท้ายของอายุใช้ของสินทรัพย์ ()SalvageVal และอายุรวมของสินทรัพย์เป็นปี ()LifeTime คาบเวลาเป็นปีที่คํานวณค่าเสื่อมราคาเท่ากับPDepr
Dim Fmt, InitCost, SalvageVal, MonthLife, LifeTime, DepYear, PDepr
Const YEARMONTHS = 12 ' Number of months in a year.
Fmt = "###,##0.00" ' Define money format.
InitCost = InputBox("What's the initial cost of the asset?")
SalvageVal = InputBox("What's the asset's value at the end of its life?")
MonthLife = InputBox("What's the asset's useful life in months?")
Do While MonthLife < YEARMONTHS ' 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 / YEARMONTHS ' Convert months to years.
If LifeTime <> Int(MonthLife / YEARMONTHS) Then
LifeTime = Int(LifeTime + 1) ' Round up to nearest year.
End If
DepYear = CInt(InputBox("For which year do you want depreciation?"))
Do While DepYear < 1 Or DepYear > LifeTime
MsgBox "You must enter at least 1 but not more than " & LifeTime
DepYear = CInt(InputBox("For what year do you want depreciation?"))
Loop
PDepr = SYD(InitCost, SalvageVal, LifeTime, DepYear)
MsgBox "The depreciation for year " & DepYear & " is " & Format(PDepr, Fmt) & "."