Gelir Vergisi Hesaplama

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,761
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Gelir vergisi hesaplaması (KTF)

Kod:
Function gelir(kümülatif_matrah, matrah)
sat = 6
ReDim a(sat)
ReDim b(sat)
ReDim c(sat)

ReDim vergi1(sat)
ReDim vergi2(sat)
deg1 = 0
deg2 = 0
i = 1
rakam1 = kümülatif_matrah + matrah
rakam2 = kümülatif_matrah
'______________________________
'vergi dilimleri
a(1) = 10700         '1. dilim
a(2) = 26000         '2. dilim
a(3) = 60000         '3. dilim
a(4) = 94000         '4. dilim
a(5) = 500000000     '5. dilim
a(6) = a(5) * (rakam1)
'______________________________
'yüzde oranları
b(1) = 0.15          '1. dilim
b(2) = 0.2           '2. dilim
b(3) = 0.27          '3. dilim
b(4) = 0.35          '4. dilim
b(5) = 0.35          '5. dilim
b(6) = 0.35          'diğerleri
'______________________________
c(1) = a(1)
c(2) = a(2) - a(1)
c(3) = a(3) - a(2)
c(4) = a(4) - a(3)
c(5) = a(5) - a(4)
c(6) = a(6) - a(5)
'______________________________


While rakam1 > 0
'---------------------------------
If rakam1 >= c(i) Then
vergi1(i) = ((c(i) * b(i)) / 1)
rakam1 = rakam1 - c(i)
ElseIf rakam1 < c(i) Then
c(i) = rakam1
rakam1 = rakam1 - c(i)
vergi1(i) = ((c(i) * b(i)) / 1)
Else
vergi1(6) = ((c(6) * b(6)) / 1)
End If
deg1 = deg1 + vergi1(i)
'---------------------------------
If rakam2 >= c(i) Then
vergi2(i) = ((c(i) * b(i)) / 1)
rakam2 = rakam2 - c(i)
ElseIf rakam2 < c(i) Then
c(i) = rakam2
rakam2 = rakam2 - c(i)
vergi2(i) = ((c(i) * b(i)) / 1)
Else
vergi2(6) = ((c(6) * b(6)) / 1)
End If
deg2 = deg2 + vergi2(i)
'---------------------------------
i = i + 1
Wend


gelir = Round(deg1 - deg2, 2)

End Function
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,761
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Function gelirvergisi(kümülatif_matrah, matrah)
gelirvergisi = GELIRBUL(kümülatif_matrah + matrah) - GELIRBUL(kümülatif_matrah)
End Function

A1=süregelen gelir vergisi matrahı
A2=matrah
=GELIRBUL(A1+A2)-GELIRBUL(A1)

Kod:
Function GELIRBUL(sayi)
sat = 6
ReDim a(sat)
ReDim b(sat)
ReDim c(sat)
ReDim vergi1(sat)
deg1 = 0
i = 1
'______________________________
'vergi dilimleri
a(1) = 10700         '1. dilim
a(2) = 26000         '2. dilim
a(3) = 60000         '3. dilim
a(4) = 94000         '4. dilim
a(5) = 500000000     '5. dilim
a(6) = a(5) * (sayi) 'diğerleri
'______________________________
'yüzde oranları
b(1) = 0.15          '1. dilim
b(2) = 0.2           '2. dilim
b(3) = 0.27          '3. dilim
b(4) = 0.35          '4. dilim
b(5) = 0.35          '5. dilim
b(6) = 0.35          'diğerleri
'______________________________

c(1) = a(1)
c(2) = a(2) - a(1)
c(3) = a(3) - a(2)
c(4) = a(4) - a(3)
c(5) = a(5) - a(4)
c(6) = a(6) - a(5)
'______________________________


While sayi > 0
If sayi >= c(i) Then
vergi1(i) = ((c(i) * b(i)) / 1)
sayi = sayi - c(i)
ElseIf sayi < c(i) Then
c(i) = sayi
sayi = sayi - c(i)
vergi1(i) = ((c(i) * b(i)) / 1)
Else
vergi1(6) = ((c(6) * b(6)) / 1)
End If

deg1 = deg1 + vergi1(i)
i = i + 1
Wend


GELIRBUL = Round(deg1, 2)

End Function
örnek dosyaya bakınız
 

Ekli dosyalar

Katılım
27 Mayıs 2010
Mesajlar
527
Excel Vers. ve Dili
Excel 2003 Turkçe
Selamlar;

Benim istediğim kümülatif vergiye göre bulunduğu aydaki gelir vergisinin hesaplanması.kümülatif vergi 8800 altında 22000 altında 50000 altında olduğun
da formüllemekte sorun olmuyor ama bu değerlerin üzerine geçtiği aylarda aşağıdaki örnekteki gibi kırılmalar olması gerekiyor bu kısmı fonksiyon veya formüle taşıyamıyorum.Bu konuda yardımınızı rica ediyorum

Örnek: 8.928,12 kümülatif vergili bir kişi aynı aydaki gelirvergisi tutarı 933,71 olsun.Bu kişinin elde hesaplama kalktığımızda gelir vergisi şöyle oluşur.

8.928,12-8.800,00=128,12

933,71-128,12=805,59

805,59*0,15 = 120,84
128,12*0,20 = 25,62
toplam 146,46 oluyor





Hocam önce ilginiz için çok teşekkür ederim ama sizden ricam bu yazdığınız kod nasıl çalıştıracağım konusunda yardımcı olmanız.Benim bu konuda bilgim az bir örenek excel dosyası yapıp nasıl kullanmam gerektiğini analtırsanız valla benim hayır duamı alacaksınız.Tekrar zaman ayırdığınız için çok teşekkür ederim.


Hocam, allah razı olsun,işleriniz herzaman rast gelsin,çok teşekkür ederim.
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,522
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Sayın halit3;

Emeğiniz ve paylaşımınız için çok teşekkür ederim hocam..

Yazdığınız kodda değişiklik varsa, yapılacak işlem sadece değişen matrah ve vergi oranlarını düzeltmektir..

Sevgi ve saygılar..
 
Katılım
7 Kasım 2005
Mesajlar
192
Excel Vers. ve Dili
excel2003
Zannedersem bu sitedeki arkadaşların oluşturduğu Levent beyinde yardımları hazırlanan bir KTF fonksiyonu 4 yıldır kullanıyorum. Dilimler arası geçişleri de doğru olarak hesaplıyor. Eklenti olarak yüklerseniz sürekli olarak kullanabilirsiniz. (Tabiki her yıl başında rakamları gücellemek kaydı ile)

Function VERGİ2007(KümlatifMatrah As Double, VergiMatrahi As Double)
If KümlatifMatrah + VergiMatrahi <= 8800# Then VERGİ2007 = 0.15 * VergiMatrahi: Exit Function
If KümlatifMatrah + VergiMatrahi >= 8801# And KümlatifMatrah + VergiMatrahi <= 22000# Then
ilkoran = 0.15: ikincioran = 0.2: sontutar = 8800#: GoTo hesapla
ElseIf KümlatifMatrah + VergiMatrahi >= 22001# And KümlatifMatrah + VergiMatrahi <= 50000# Then
ilkoran = 0.2: ikincioran = 0.27: sontutar = 22000#: GoTo hesapla
ElseIf KümlatifMatrah + VergiMatrahi >= 50001# Then
ilkoran = 0.27: ikincioran = 0.35: sontutar = 50000#: GoTo hesapla
End If
hesapla:
If KümlatifMatrah <= sontutar Then
VERGİ2007 = ilkoran * ((sontutar - KümlatifMatrah)) + ikincioran * (((KümlatifMatrah + VergiMatrahi) - sontutar))
Else
VERGİ2007 = ikincioran * VergiMatrahi
End If
End Function
 
Katılım
27 Mayıs 2010
Mesajlar
527
Excel Vers. ve Dili
Excel 2003 Turkçe
ootufan03 arkadaşım ilgin için teşekkür ederim.excelde nesıl kullanıcağımız konusun da bir örnek eklersen seviniriz.

Zannedersem bu sitedeki arkadaşların oluşturduğu Levent beyinde yardımları hazırlanan bir KTF fonksiyonu 4 yıldır kullanıyorum. Dilimler arası geçişleri de doğru olarak hesaplıyor. Eklenti olarak yüklerseniz sürekli olarak kullanabilirsiniz. (Tabiki her yıl başında rakamları gücellemek kaydı ile)

Function VERGİ2007(KümlatifMatrah As Double, VergiMatrahi As Double)
If KümlatifMatrah + VergiMatrahi <= 8800# Then VERGİ2007 = 0.15 * VergiMatrahi: Exit Function
If KümlatifMatrah + VergiMatrahi >= 8801# And KümlatifMatrah + VergiMatrahi <= 22000# Then
ilkoran = 0.15: ikincioran = 0.2: sontutar = 8800#: GoTo hesapla
ElseIf KümlatifMatrah + VergiMatrahi >= 22001# And KümlatifMatrah + VergiMatrahi <= 50000# Then
ilkoran = 0.2: ikincioran = 0.27: sontutar = 22000#: GoTo hesapla
ElseIf KümlatifMatrah + VergiMatrahi >= 50001# Then
ilkoran = 0.27: ikincioran = 0.35: sontutar = 50000#: GoTo hesapla
End If
hesapla:
If KümlatifMatrah <= sontutar Then
VERGİ2007 = ilkoran * ((sontutar - KümlatifMatrah)) + ikincioran * (((KümlatifMatrah + VergiMatrahi) - sontutar))
Else
VERGİ2007 = ikincioran * VergiMatrahi
End If
End Function
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,522
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Kodlardaki hesaplamada hata olabilir mi?

Sayın halit3;

Hocam iyi akşamlar..

Aşağıda ilk 2 satırdaki kod ve formülle hesaplanan gelir vergisi doğru, 3. satırdaki sonuç yanlış sonuç çıkmaktadır.

İlk matrah Son matrah Gelir Vergisi Kod sonucu Doğru GV
0 8.800 1.320 doğru 1.320
0 22.000 3.960 doğru 3.960
8.800 22.000 3.520 yanlış 2.640

Bilgi edinilmesini rica ederim...
 

Ekli dosyalar

Son düzenleme:

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,761
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
açıklama alternatif yazılmış kolarım vardı bunlara karşı


şimdi öncelikle gelir vergisi matrağı süre gelen gelir vergi matrağından büyük olamaz.

1-8800 tutarının süregelen gelir vergisi matrağı olduğu için bunun gelirvergisi daha önce alındığı çıkar
2-bu durumda 22000-8800=13200
3-13200 tutarının %20 si 2640 olur
4-kalan 8800 tutarının % 27 si 2376 olur
5-2640+2376=5016 olur

bu durumda alternatif dosya
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,761
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
bu konuda bir örnek daha vereyim. süre gelen gelir vergisi matrağı sıfır olsun gelirvergisi matrağıda 50000 olsun

bu durumda


1.dilim 8800 15% 1320
2.dilim 13200 20% 2640
3.dilim 28000 27% 7560

toplam 50000 11520

tamlamda 50000 gelir vergisi matrağının 11520 gelir vergisi olur
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,522
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Yanlış anlaşılma var..

Sayın halit3;

İyi akşamlar..

1-Hocam yazdığınız fonksiyonda:
A sütununa daima 0 (sıfır), B sütununa ise vergi matrahı tutarı yazıldığında, C sütunundaki değer her zaman doğru gelir vergisi sonucunu veriyor.

2- Ben ilk değerlendirmemde, A sütununa önceki ayın birikmeli vergi matrahı 8.800 TL. B sütununa 22.000 TL. yazdım ve 9. mesajın 3. satırında değindiğim gibi, gelir vergisi 3.520 TL. diğer bir anlatımla hatalı çıktı.

3-Bunun üzerine benim elle yaptığım hesapta ise:
8.800 TL. matraha karşılık gelen gelir vergisi oranı % 15 ve tutarı 1.320 TL.
13.200 TL. matrahın gelir vergi % 20'ye göre 2.640 TL.; sonuçta benim bulduğum değer 22.000 TL. toplam vergi matrahının gelir vergisi (1.320 TL + 2.640 TL =) 3.960 TL. oldu. Ekli vergi tablosunda belirtilen gelir vergisiyle mutabık çıktı.

9. mesajı bu karşılaştırma sonrası size yazdım..

Yoksa yukarıda 1. paragrafta değindiğim gibi A sütununda ilk değer 0 yazıldığında, B sütununa yazılan vergi matrahının karşılığı gelir vergisi C sütununda doğru çıkmaktadır.

Yanlış anlaşılmadan dolayı sizi gereksiz yorduğum için kusura bakmayın..

Sevgi ve saygılar..
 

Ekli dosyalar

Katılım
7 Kasım 2005
Mesajlar
192
Excel Vers. ve Dili
excel2003
KTF'u bir modüle kopyala
bir hücreye =Vergi2007(15000;1000) şeklinde yazarsan 15000 kümilatif 1000 ise matrah olarak düşün hesaplanan vergiyi görürsün, veya A1'de kümilatif B1'de ise matrah var ise C1'e
=Vergi2007(A1;B1) diye yazarsan aynı sonucu alırsın,
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,761
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Sayın halit3;

İyi akşamlar..

1-Hocam yazdığınız fonksiyonda:
A sütununa daima 0 (sıfır), B sütununa ise vergi matrahı tutarı yazıldığında, C sütunundaki değer her zaman doğru gelir vergisi sonucunu veriyor.

2- Ben ilk değerlendirmemde, A sütununa önceki ayın birikmeli vergi matrahı 8.800 TL. B sütununa 22.000 TL. yazdım ve 10. mesajın 3. satırında değindiğim gibi, gelir vergisi 3.520 TL. diğer bir anlatımla hatalı çıktı.

3-Bunun üzerine benim elle yaptığım hesapta ise:
8.800 TL. matraha karşılık gelen gelir vergisi oranı % 15 ve tutarı 1.320 TL.
13.200 TL. matrahın gelir vergi % 20'ye göre 2.640 TL.; sonuçta benim bulduğum değer 22.000 TL. toplam vergi matrahının gelir vergisi (1.320 TL + 2.640 TL =) 3.960 TL. oldu. Ekli vergi tablosunda belirtilen gelir vergisiyle mutabık çıktı.

10. mesajı bu karşılaştırma sonrası size yazdım..

Yoksa yukarıda 1. paragrafta değindiğim gibi A sütununda ilk değer 0 yazıldığında, B sütununa yazılan vergi matrahının karşılığı gelir vergisi C sütununda doğru çıkmaktadır.

Yanlış anlaşılmadan dolayı sizi gereksiz yorduğum için kusura bakmayın..

Sevgi ve saygılar..
iyi günler ben yanlış anlamadım söylediğiniz gibi kümülatif toplam gelir vergisi matrağından küçük olduğu zaman ve aynı anda 3 dilim ve bu dilimi geçtiği zaman kodlarda hatalı işlemler yapıyor
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,761
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
KTF'u bir modüle kopyala
bir hücreye =Vergi2007(15000;1000) şeklinde yazarsan 15000 kümilatif 1000 ise matrah olarak düşün hesaplanan vergiyi görürsün, veya A1'de kümilatif B1'de ise matrah var ise C1'e
=Vergi2007(A1;B1) diye yazarsan aynı sonucu alırsın,
Sayın otufan03;

sizin gönderdiğiniz kodda 9 nolu mesajdaki işlemi yaptığımız zaman bu da hatalı işlem yapıyor.
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,522
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Dosyanın son hali.

Dostlar merhabalar;

Sayın halit3 hoca'mızın 1. mesaja eklediği fonksiyondaki vergi dilimleri "Gerçek usulde gelir vergisi mükellefleri" içindir.

Bilineceği üzere, ücretli çalışanlar ile beyanname verenlere uygulanan vergi dilimleri farklıdır.

Hocamızın ekli örnek dosyasında:
Module1 …… Ücretle çalışanlara,
Module2 …. Gerçek usulde gelir vergisi mükelleflerine

Uygulanan vergi dilimi ve oranlarını göstermektedir.

Uygulama "vergi dilimleri ve vergiler" sayfasındaki gibidir..

Sayın halit3 verdiğiniz emek ve konuyla ilgili gösterdiği hassasiyet için en içten teşekkürlerimi sunarım. Her şey gönlünüzce olsun..

Sevgi ve saygılar.
 

Ekli dosyalar

Son düzenleme:

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,761
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
arkadaşlar bu konuda 1 nolu mesajdaki kodda sizce bir yanlışlık görülüyormu.

diğer yandan bu sitede daha önce bu konu bir sürü işlendi bunların hepsindede aynı sorun mevcut gibi görünüyor görüşlerinizi paylaşırmısınız.


bu konuda bir örnek vereyim. süre gelen gelir vergisi matrağı sıfır (0) olsun gelirvergisi matrağıda ellibin (50000) olsun

bu durumda


1.dilim 8800 15% 1320
2.dilim 13200 20% 2640
3.dilim 28000 27% 7560

toplam 50000 11520

tamlamda 50000 gelir vergisi matrağının 11520 gelir vergisi olur
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,761
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Dostlar merhabalar;

Sayın halit3 hoca'mızın 1. mesaja eklediği fonksiyondaki vergi dilimleri "Gerçek usulde gelir vergisi mükellefleri" içindir.

Bilineceği üzere, ücretli çalışanlar ile beyanname verenlere uygulanan vergi dilimleri farklıdır.

Hocamızın ekli örnek dosyasında:
Module1 …… Ücretle çalışanlara,
Module1 …. Gerçek usulde gelir vergisi mükelleflerine

Uygulanan vergi dilimi ve oranlarını göstermektedir.

Uygulama "vergi dilimleri ve vergiler" sayfasındaki gibidir..

Sayın halit3 verdiğiniz emek ve konuyla ilgili gösterdiği hassasiyet için en içten teşekkürlerimi sunarım. Her şey gönlünüzce olsun..

Sevgi ve saygılar.
bu kodların ikisinide ben yazdım zaten uygulama ücretli veya gerçek mükellef fark etmiyor

sitede daha önce konu ile ilgili açılan bir sürü görüş var ve bu kodların hepsinde bu sıkıntı mevcut.
 
Katılım
24 Eylül 2010
Mesajlar
36
Excel Vers. ve Dili
excel2003
Sayın Halit3 9 nolu mesajdaki örneğe uygulandığında hata verdiğini söylüyorsunuz. O dosyayı kodları yükleyerek tekrar ekliyorum hata nerede, ayrıca örnekte var içinde.
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,761
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
1 nolu mesajdaki kod bana göre doğru 9 nolu mesajın içindede var aynısı ama onun içinde
birde VERGİ2007 böyle kullanıcı tanımlı fonksiyon var küçük tutarlarda hesaplamalar doğru çıkıyor ama 3 dilimden sonraki büyük tutarlarda hata veri yor

örnek süregelen gelir vergisi matrahı 0 tl olsun gelir vergisi matrağı 50000 tl olsun
VERGİ2007 fonksiyonunda 11960 tl çıkıyor

1 nolu mesajdaki kodda 11520 tl çıkıyor.

değerlendirmesi size kalmış
 
Üst