Ücretlilerde 2006 Yılı vergi indirimi

Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Merhaba;

Son kez ücretlilere ödenecek 2006 yılı için vergi iade oranları aşağıdaki gibi.

3600 Yeni Türk Lirasına kadar %8
7200 Yeni Türk Lirasının 3600 YTL için %8, aşan kısmı için %6'sı
7200 YTL fazlasının 7200 YTL için %7'si, aşan kısmı için %4'ü

Burada 7200 YTL fazlasının 7200 YTL'si için %7 denilmekte.

Aşağıdaki kodlarımı nasıl revize edebilirim.

Function Vergi_İade2006(toplam)
If toplam <= 3600 Then Vergi_İade2006 = Round(toplam * 0.08, 2)
If toplam > 3600 And toplam <= 7200 Then Vergi_İade2006 = Round((toplam - 3600) * 0.06, 2) + 288
If toplam > 7200 Then Vergi_İade2006 = Round((toplam - 7200) * 0.04, 2) + 504
End Function
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Kod:
Function Vergi_iade(Toplam As Range) As Double
    Select Case Toplam.Value
        Case Is <= 3600
            Vergi_iade = Toplam.Value * 0.08
        Case 3601 To 7200
            Vergi_iade = 288 + (Toplam.Value - 3600) * 0.06
        Case Is > 7200
            Vergi_iade = 504 + (Toplam.Value - 7200) * 0.04
    End Select
    Vergi_iade = Format(Vergi_iade, "0.00")
End Function
 
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Merhaba.

Sayın Haluk kodlar için teşekkürler fakat 2 fonksiyon ayni sonucu veriyor. Ben fonksiyonda aşağıdaki durumu ilave etmek istiyorum.

3600 Yeni Türk Lirasına kadar %8
7200 Yeni Türk Lirasının 3600 YTL için %8, aşan kısmı için %6'sı
7200 YTL fazlasının 7200 YTL için %7'si, aşan kısmı için %4'ü

Burada 7200 YTL fazlasının 7200 YTL'si için %7 denilmekte.

Siyah ile renklendirdiğim kısmın ilave edilmesi lazım.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

Ben sizin verdiğiniz fonksiyonu denememiştim ama, verdiğiniz kriterleri uyguladığımda o fonksiyon çıktı.

Bana göre doğru çalışıyor ... bir şey kaçırdım mı, bilemiyorum.

Örneğin, 8500 YTL için sonucun kaç çıkması gerekiyor ?
 
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Sn Haluk;
3600 Yeni Türk Lirasına kadar %8
7200 Yeni Türk Lirasının 3600 YTL için %8, aşan kısmı için %6'sı
7200 YTL fazlasının 7200 YTL için %7'si, aşan kısmı için %4'ü

Yukarıdaki kriterlere göre;
3600 * %8 = 288
3600 * %6 = 216
1300 * %7 = 91 ---TOPLAM 595 YTL yapıyor.

Hocam; Şimdi benim ilk verdiğim fonksiyon ile sizin verdiğiniz fonksiyon sonucu ise 556 YTL çıkıyor.

Yukardaki kriterlerde diyor ki;
7200 YTL fazlasının 7200 YTL' si içn %7 Bu kısım kafamı karıştırdı.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

Siz kriterleri yanl&#305;&#351; uyguluyorsunuz.

E&#287;er o kriterler do&#287;ruysa, 8500 YTL i&#231;in do&#287;ru cevap, 556 YTL'dir. Ba&#351;ka bir alternatif olamaz.

&#199;&#252;nk&#252;, 3 adet se&#231;ene&#287;iniz var.

Matrah;

- 3600' den k&#252;&#231;&#252;k

- 3600'den b&#252;y&#252;k ama 7200'den k&#252;&#231;&#252;k

- 7200'den b&#252;y&#252;k.

&#304;ncelenen matrah bu tan&#305;mlardan hangisine uyarsa, onun &#351;artlar&#305; ge&#231;erlidir.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Ben mesajı gönderdim zannediyordum, göndermemişim,
Haluk beyin verdiği kodda 3600.25 gibi küsuratlarda hesaplama yapmıyor,

Kod:
Function Vergi_İade2006(Toplam)
    Select Case Toplam.Value
        Case Is > 7200
            Vergi_İade2006 = Round(7200 * 0.07 + (Toplam - 7200) * 0.04, 2)
        Case Is > 3600
            Vergi_İade2006 = Round(3600 * 0.08 + (Toplam - 3600) * 0.06, 2)
        Case Else
            Vergi_İade2006 = Round(Toplam * 0.08, 2)
    End Select
End Function
Yukardaki kriterlerde diyor ki;
7200 YTL fazlasının 7200 YTL' si içn %7 Bu kısım kafamı karıştırdı.
Burda pratiklik olsun diye aritmetik ortalama yapılıyor, yani (3600 * %8) +(3600*%6)=7200 * %7
 
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Arkadaşlar Teşekkürler.
Bu 7200 olayına odaklandım aslında benim ilk verdiğim fonksiyonda problem yok demekki. Sağolun.


Function Vergi_İade2006(toplam)
If toplam <= 3600 Then Vergi_İade2006 = Round(toplam * 0.08, 2)
If toplam > 3600 And toplam <= 7200 Then Vergi_İade2006 = Round((toplam - 3600) * 0.06, 2) + 288
If toplam > 7200 Then Vergi_İade2006 = Round((toplam - 7200) * 0.04, 2) + 504
End Function
 
Üst