Karena penggunaan round yang tidak sama antara formula dengan udf.




On Sun, May 26, 2019 at 2:03 PM hendrik karnadi [email protected]
[belajar-excel] <[email protected]> wrote:

>
>
> Kayaknya sih memang masalah pembulatan Mr.Kid.
> Yang membuat saya penasaran, mengapa hanya terjadi pada 2 baris itu saja.
>
> Salam,
> HK
>
>
> Sent from Yahoo Mail on Android
> <https://overview.mail.yahoo.com/mobile/?.src=Android>
>
> On Sun, May 26, 2019 at 4:34, 'Mr. Kid' [email protected] [belajar-excel]
> <[email protected]> wrote:
>
>
> 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((C*Dbl*(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