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>