Betul Mr Kid, pasti ada yang salah.....
Rasa penasaran telah terselesaikan dengan mengubah formula di UDF dari :PhKP = 
1000 * Round(PhKP / 1000, 0)menjadi PhKP = WorksheetFunction.RoundDown(PhKP, -3)
(sesuai pembulatan dalam formula)
Saya kutip juga penjelasan yang diberikan oleh mas NangAgus berikut ini :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
Dengan fungsi Round, jika tiga angka terakhir 500 atau lebih maka angka PhKP 
akan dibulatkan ke atas (seribu)......Pada baris ke 12 tarip batas atasnya sdh 
mencapai 30% sehingga perhitungan UDF lebih besar 300.Pada baris ke 13 tarip 
batas atasnya masih 25% sehingga perhitungan UDF lebih besar 250 saja.

Dengan Fungsi RoundDown maka angka PhP selalu dibulatkan kebawah dalam ribuan 
(PhKP ,-3), sesuai peraturan pajak.
Sekali lagi terima kasih kepada Mr. Kid dan mas NangAgus atas pencerahannya..
Salam,HK

   ----- Forwarded message ----- From: 'Mr. Kid' [email protected] 
[belajar-excel] <[email protected]>To: BeExcel 
<[email protected]>Sent: Sunday, 26 May 2019, 10:34:13 pm 
GMT+7Subject: Re: [belajar-excel] UDF PPh21
     

Berarti,Kalau hitungan formulanya yang benar, maka penggunaan round di udf-nya 
yang salah.Kalau hitungan udf-nya yang benar, maka penggunaan round di 
formula-nya yang salah.
Simpelkan...



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

     
Terima kasih atas jawabannya mas NangAgus.
Yang membuat saya masih penasaran adalah:Kan untuk perhitungan dengan UDF 
maupun formula...keduanya menggunakan dasar pehitungan yang sama, yaitu PhKP 
dibulatkan ke bawah dalam ribuan.
Salam,HK

Sent from Yahoo Mail on Android 
 
  On Sun, May 26, 2019 at 20:46, Agus [email protected] 
[belajar-excel]<[email protected]> wrote:       
 
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 
 
  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((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