Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Excel] Korisničke funkcije - Neto

[es] :: Office :: Excel :: [Excel] Korisničke funkcije - Neto

[ Pregleda: 2490 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Sudarica

Član broj: 119175
Poruke: 209
*.dialin.iskon.hr.



Profil

icon [Excel] Korisničke funkcije - Neto27.01.2008. u 15:23 - pre 197 meseci
Molim Vas pomoć

Napravila sam jednostavne funkcije i pridružila u «User Defined» i koristim ih jer su brze i mala je vjerojatnost da pogrešim.
Međutim sada mi treba malo više

Code:
Function Dohodak (MinPlaća, Koef, Staž, Sati, Faktor)
Dohodak = (MinPlaća * Koef * Sati / 174) * (Faktor + Staž / 100) - ((MinPlaća * Koef * Sati / 174) * (Faktor + Staž / 100) * 10 / 100)
End Function

Code:
Function Neto (MinPlaća, Koef, Staž, Sati, Faktor, Olakšica, Prirez)
Neto = (MinPlaća * Koef * Sati / 174) * (Faktor + Staž / 100) - ((MinPlaća * Koef * Sati / 174) * (Faktor + Staž / 100) * 20 / 100) – Olakšica

To što sam trenutno dobila je PorezniDio iz čega se računa porez a to je ono što ne znam pa tražim pomoć kako ovo dolje pretvoriti u code dali postoji mogućnost da to bude što jednostavnije kako bi ja to mogla shvatiti.

Porez40%= IF((PorezniDio-20000<0);0;40%*(PorezniDio-20000))
Porez30%= IF(PorezniDio>8000;(PorezniDio-Porez40%/0,40-8000)*0,30;0)*IF(Olakšica;1;0)
Porez20%= IF(PorezniDio>3000;(PorezniDio-Porez40%/0,40-Porez30%/0,30-3000)*0,20;0) *IF(Olakšica;1;0)
Porez10% =IF((PorezniDio<=3000);10%*PorezniDio;10%*3000)

Prirez = Ukupni porez * Prirez%

Neto = Dohodak – Porez i Prirez
End Function

Zajvaljujem na pomoći



 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
212.200.27.*

Sajt: www.gowi.rs


+109 Profil

icon Re: [Excel] Korisničke funkcije - Neto29.01.2008. u 07:29 - pre 197 meseci
U najjednostavnijem obliku umesto svaku IF funkciju pretvoriš u IF strukturu (za decimalne brojeve koristiš .)

Code:

Function Neto(MinPlaca, Koef, Staz, Sati, Faktor, Olaksica, Prirez%)

PorezniDio = Dohodak(MinPlaca, Koef, Staz, Sati, Faktor) - Olaksica
'To je PorezniDio iz cega se racuna porez

'Porez40%
If PorezniDio - 20000 < 0 Then
  Porez40% = 0
Else
  Porez40% = 0.4 * (PorezniDio - 20000)
End If

'Porez30%
If PorezniDio > 8000 Then
  Porez30% = (PorezniDio - Porez40% / 0.4 - 8000) * 0.3
Else
  Porez30% = 0
End If

'Porez20%
If PorezniDio > 8000 Then
  Porez20% = (PorezniDio - Porez40% / 0.4 - Porez30% / 0.3 - 3000) * 0.2
Else
  Porez20% = 0
End If


UkupniPorez = Porez40% + Porez30% + Porez20%
Prirez = UkupniPorez * Prirez%
Neto = PorezniDio - UkupniPorez - Prirez

End Function


Kod VBA nije obavezno da se deklarišu promenljive, zato ovaj kod radi, ali bi bilo korisno, radi lakšeg pronalaženja grešaka da se deklarišu sve promenljive koje se koriste.
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

Sudarica

Član broj: 119175
Poruke: 209
*.dialin.iskon.hr.



Profil

icon Re: [Excel] Korisničke funkcije - Neto03.02.2008. u 18:12 - pre 197 meseci
Upravu ste, deklarisala sam promjenjive (bruto,dohodak,ukupni porez..) i dobila rezultat. Imam sitne razlike od npr.0.03 ili 0.05 od računanja na klasičan način, znam da to nije nekakva razlika ali me zanima zbog čega. Samo sam znatiželjna što je točnije. Vidjela sam kod izračuna pomoću coda da računa na šest decimala pa pretpostavljam da je to točnije, dali sam upravu. Zahvaljujem na pomoći

Pozdrav
 
Odgovor na temu

Sudarica

Član broj: 119175
Poruke: 209
*.dialin.iskon.hr.



Profil

icon Re: [Excel] Korisničke funkcije - Neto04.02.2008. u 17:28 - pre 197 meseci
Ipak imam problem, odnosno još jedan uvjet
Imam slučaj kada mi je Olakšica veća nego PorezniDio
kako god sam ga postavila nemam dobar rezultat

Ako je PorezniDio manji od 0 UkupniPorez je 0 (u suprotnom računaj porez)

Hvala

Pozdrav
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
*.bisinter.net.

Sajt: www.gowi.rs


+109 Profil

icon Re: [Excel] Korisničke funkcije - Neto04.02.2008. u 19:48 - pre 197 meseci
Jedna mogućnost je da iskoristiš go to ... i labelu i preskočiš najveći deo obračuna u tom slučaju. U struktuiranom programiranju ima razloga zašto se go to izbegava, ali ja nisam toliko isključiv - koristim u retkim situacijama (kao što može da bude ova) ukoliko kod ostaje razumljiv i čitljiv.
Code:

Function Neto(MinPlaca, Koef, Staz, Sati, Faktor, Olaksica, Prirez%)

PorezniDio = Dohodak(MinPlaca, Koef, Staz, Sati, Faktor) - Olaksica
'To je PorezniDio iz cega se racuna porez

If PorezniDio < 0 Then   ' Ovde je dodat uslov
   UkupniPorez = 0 
   Go to Izlaz               ' Preskače se sve do labele Izlaz
End if 

'Porez40%
If PorezniDio - 20000 < 0 Then
  Porez40% = 0
Else
  Porez40% = 0.4 * (PorezniDio - 20000)
End If

'Porez30%
If PorezniDio > 8000 Then
  Porez30% = (PorezniDio - Porez40% / 0.4 - 8000) * 0.3
Else
  Porez30% = 0
End If

'Porez20%
If PorezniDio > 8000 Then
  Porez20% = (PorezniDio - Porez40% / 0.4 - Porez30% / 0.3 - 3000) * 0.2
Else
  Porez20% = 0
End If


UkupniPorez = Porez40% + Porez30% + Porez20%

Izlaz: 
Prirez = UkupniPorez * Prirez%
Neto = Dohodak(MinPlaca, Koef, Staz, Sati, Faktor) - UkupniPorez - Prirez

End Function



Usput sam primetio i grešku u krajnjem izrazu za Neto pa sam to ispavio.
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

[es] :: Office :: Excel :: [Excel] Korisničke funkcije - Neto

[ Pregleda: 2490 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.