Mungkin karena round

Sent from my smart enough phone

> On May 25, 2019, at 20:48, hendrik karnadi [email protected] 
> [belajar-excel] <[email protected]> wrote:
> 
> Dear Be-Excel,
> 
> Untuk mengisi waktu luang di malam minggu, saya mencoba me-lihat2 kembali 
> warisan Alm. Mbak Siti (Senior kita).
> Di situ saya menemukan UDF untuk menghitung Penghasilan Kena Pajak, yang 
> secara aturan dibulatkan kebawah (dalam ribuan).
> 
> Dalam Worksheet terlampir (saya revisi hanya untuk th 2009), beliau 
> memperbandingkan hasil perhitungan UDF dengan Formula.
> 
> UDF nya adalah sebagai berikut:
> Option Explicit
> 
> Function fPPh21_2009(PhKP As Currency) As Currency
>    Dim LapisPh() As Currency
>    Dim Tarif() As Double 'mbak Siti pakai Single, saya ganti Double
>    Dim n As Integer, Lps, Trf
>    Dim pajak As Currency
>    
>    Lps = Split("|50|250|500", "|")
>    ReDim LapisPh(1 To UBound(Lps))
>    For n = 1 To UBound(Lps): LapisPh(n) = Round((CLng(Lps(n)) * 10 ^ 6), 0): 
> Next n
>    
>    Trf = Split("/5/15/25/30", "/")
>    ReDim Tarif(1 To UBound(Trf))
>    For n = 1 To UBound(Trf): Tarif(n) = Round((CDbl(Trf(n)) / 100), 2): Next 
> n 'Sng saya ganti Dbl
>    PhKP = 1000 * Round(PhKP / 1000, 0)
>    
>    Select Case PhKP
>       Case Is <= LapisPh(1)
>          pajak = PhKP * Tarif(1)
>       Case Is <= LapisPh(2)
>          pajak = LapisPh(1) * Tarif(1) _
>          + (PhKP - LapisPh(1)) * Tarif(2)
>       Case Is <= LapisPh(3)
>          pajak = LapisPh(1) * Tarif(1) _
>          + (LapisPh(2) - LapisPh(1)) * Tarif(2) _
>          + (PhKP - LapisPh(2)) * Tarif(3)
>       Case Is > LapisPh(3)
>          pajak = (LapisPh(1)) * Tarif(1) _
>          + (LapisPh(2) - LapisPh(1)) * Tarif(2) _
>          + (LapisPh(3) - LapisPh(2)) * Tarif(3) _
>          + (PhKP - LapisPh(3)) * Tarif(4)
>    End Select
>    fPPh21_2009 = Round(pajak)
> End Function
> 
> Formula pada baris 12 dan 13 adalah sbb:
> =IF(C12<=0,0,IF(C12<=50000000,5%*C12,IF(C12<=250000000,50000000*5%+(C12-50000000)*15%,IF(C12<=500000000,50000000*5%+200000000*15%+(C12-250000000)*25%,50000000*5%+200000000*15%+250000000*25%+(C12-500000000)*30%))))
> 
> =IF(C13<=0,0,IF(C13<=50000000,5%*C13,IF(C13<=250000000,50000000*5%+(C13-50000000)*15%,IF(C13<=500000000,50000000*5%+200000000*15%+(C13-250000000)*25%,50000000*5%+200000000*15%+250000000*25%+(C13-500000000)*30%))))
> 
> Hasilnya seharusnya sama tapi berbeda beberapa ratus rupiah hanya pada kedua 
> baris ini.
> 
> Pertanyaan saya (bukan ngetes):
> Apa yang menyebabkan terjadinya perbedaan tsb ?
> 
> Untuk lebih jelasnya saya lampirkan workbooknya.
> 
> Terima kasih.
> 
> Salam,
> HK
> 
> 
> 
> 
> 
> 
> 
> <UDF_fPPh21 (Rev by HK - Single to Double).xls>

Kirim email ke