Pak Hendrik,
Yang salah hanya yang datanya memiliki tiga digit terakhir lebih dari 500;
..> baris ke 12 3 digit terakhir= 565
->baris ke 13: 3 digit terakhir = 987
Coba semua baris diberitiga digit terakhir lebih dari 500, akan menjadi berbeda semua
salam
NangAgus

On 5/26/2019 14:03, hendrik karnadi [email protected] [belajar-excel] 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] <mailto:[email protected]>
    [belajar-excel] <[email protected]
    <mailto:[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