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

Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Bu değerli paylaşımınız için çok teşekkür ederim, elinize sağlık Yuttas bey
 
Katılım
16 Eylül 2005
Mesajlar
5
Excel Vers. ve Dili
Office 365
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:
Üst