Azalan bakıyeler amortisman uygulaması

Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Merhaba arkadaşlar,

Site sayesinde normal amortisman uygulamasının fx in içinde finansal/SYD fonksiyonunu kullanarak öğrendim. Ama birde azalan bakiyeler yöntemi var, örnek dosyamda mevcut rica etsem fonksiyonu bilen varsa söyler mi ?
 

Ekli dosyalar

Bu değerli paylaşımınız için çok teşekkür ederim, elinize sağlık Yuttas bey
 
Kod:
Function Amortisman(AlisTarihi As Date, Maliyet As Currency, Oran As Single, _
Kist As Boolean, Normal As Boolean, Hizli As Boolean, HesaplanacakYil As Integer) As Currency

    sure = (Year(AlisTarihi) - 1) + (1 / Oran)
    If HesaplanacakYil > sure Then Exit Function
    
    'Normal
    If Kist = False And Normal = True And Hizli = False Then
    Amortisman = Round((Maliyet * Oran), 2)
    End If
    
    'Kıst-Normal
    If Kist = True And Normal = True And Hizli = False Then
        KistKatsayi = 13 - (Month(AlisTarihi))
        If HesaplanacakYil = sure Then KistKatsayi = 12 + (12 - KistKatsayi)
        If HesaplanacakYil <> Year(AlisTarihi) And HesaplanacakYil <> sure Then KistKatsayi = 12
        Amortisman = Round((Maliyet * Oran) / 12 * KistKatsayi, 2)
    End If
        
    'Hızlı-Normal
    If Kist = False And Normal = True And Hizli = True Then
        If Oran > 0.25 Then Oran = 0.25
        Oran = Oran * 2
           
        Donem = (sure - Year(AlisTarihi))
        DonemSayaci = 0
        alıs = sure - Donem
        For byt = alıs To sure
            Amortisman = Round((Maliyet * (1 - Oran) ^ DonemSayaci) * Oran, 2)
            If DonemSayaci <> Donem Then DonemSayaci = DonemSayaci + 1
            biriktir = Amortisman + biriktir
            If alıs = HesaplanacakYil Then Exit Function
            If DonemSayaci = Donem Then
                Amortisman = Maliyet - biriktir
                Exit Function
            End If
            alıs = alıs + 1
        Next byt
    End If

    'Hızlı-Kıst
    If Kist = True And Normal = False And Hizli = True Then
    If Oran > 0.25 Then Oran = 0.25
    Oran = Oran * 2
                
    If HesaplanacakYil = Year(AlisTarihi) Then
        KistKatsayi = 13 - (Month(AlisTarihi))
        Amortisman = Round((Maliyet * Oran) / 12 * KistKatsayi, 2)
        Exit Function
    End If
        
    If HesaplanacakYil <> Year(AlisTarihi) And HesaplanacakYil <> sure Then KistKatsayi = 12
    KistKatsayi2 = 13 - (Month(AlisTarihi))
    Amortisman2 = Round((Maliyet * Oran) / 12 * KistKatsayi2, 2)
    Maliyet2 = Maliyet - Amortisman2
    Donem = (HesaplanacakYil - Year(AlisTarihi)) - 1
    If sure <> HesaplanacakYil Then
        Amortisman = Round((Maliyet2 * (1 - Oran) ^ Donem) * Oran, 2)
        ElseIf sure = HesaplanacakYil Then
        sure = sure - 1
        For byt = Year(AlisTarihi) To sure - 1
            Donem = (sure - Year(AlisTarihi)) - 1
            sure = sure - 1
            Amortisman = Amortisman + Round((Maliyet2 * (1 - Oran) ^ Donem) * Oran, 2)
        Next byt
        Amortisman = Maliyet - Amortisman - Amortisman2
    End If
   End If

End Function

 
Son düzenleme:
Kıst ve Hızlandırılmış amortismanı yanlış hesaplıyor. Kodu tekrar revize edebilirmiyiz
 
Aşağıdaki kullanıcı tanımlı formüller işini görür mü

Kıst Amortisman

Kod:
Function KistAmortisman(Maliyet As Double, HurdaDegeri As Double, Omur As Double, KullanimAylari As Double) As Double
    Dim YillikAmortisman As Double
    Dim AylikAmortisman As Double
    
    ' Yıllık amortismanı hesapla
    YillikAmortisman = (Maliyet - HurdaDegeri) / Omur
    
    ' Aylık amortismanı hesapla
    AylikAmortisman = YillikAmortisman / 12
    
    ' Kıst amortismanı hesapla
    KistAmortisman = AylikAmortisman * KullanimAylari
End Function

Hızlandırılmış Amortisman

Kod:
Function HizlandirilmisAmortisman(Maliyet As Double, HurdaDegeri As Double, Omur As Double, Donem As Double) As Double
    Dim AmortismanOrani As Double
    Dim KalanDeger As Double
    
    ' Amortisman oranını hesapla
    AmortismanOrani = (2 / Omur)
    
    ' Kalan değeri hesapla
    KalanDeger = Maliyet
    
    ' Her dönem için amortismanı hesapla
    For i = 1 To Donem
        If i = Donem Then
            HizlandirilmisAmortisman = KalanDeger * AmortismanOrani
        Else
            KalanDeger = KalanDeger - (KalanDeger * AmortismanOrani)
        End If
    Next i
End Function
 
Merhaba,

Kullanmış olduğum amortisman hesaplama dosyasını inceleyebilirsiniz.
Enflasyon muhasebesinden dolayı amortisman çalışmaları çorbaya döndü, umarım işinize yarar.
 

Ekli dosyalar

Geri
Üst