Board logo

標題: 薪資所得稅扣繳問題 [打印本頁]

作者: shootingstar    時間: 2014-2-20 18:40     標題: 薪資所得稅扣繳問題

請問各位前輩

如何利用附檔中102年sheet中的資料對應出薪資表裡的H欄應扣所得稅,謝謝?
作者: sunnyso    時間: 2014-2-21 12:34

請說清楚規則
作者: shootingstar    時間: 2014-2-21 14:01

回復 2# sunnyso

您好

在附檔 102年 sheet是一個扣繳稅額表,當薪資達一定金額時,公司會先行替員工代扣所得稅,此時又牽涉到有無扶養親屬,撫養的親屬越多,扣繳金額越低。
舉例來說AAA的底薪是36700,在102年sheet裡可以看到並未達扣繳標準,所以此員工不扣所得稅。
又如員工BBB的底薪是84500,且扶養了兩個親屬,那麼在102年sheet裡就是對應D77欄,應扣2020   
或是CCC的底薪是95750,但沒有扶養任何親屬,那麼在102年sheet裡就是對應B100欄,應扣4910

以上,希望尋的解決方式,謝謝。
作者: yen956    時間: 2014-2-21 14:53

H2 的公式:結果#N/A (不可用)
=VLOOKUP($B2, INDIRECT("taxDB"),$K2+2,)

H3 的公式:結果為0 (正確公式)
=VLOOKUP($B3, INDIRECT("taxDB"),$K3+2,TRUE)

不是說 Vlookup 的最後一個參數為 Ture 時, 可以省略嗎?
為何H2和H3的結果會不一樣?


薪資所得扣繳稅額表.rar
http://www.mediafire.com/download/91p83vfs94f0u5y/%E8%96%AA%E8%B3%87%E6%89%80%E5%BE%97%E6%89%A3%E7%B9%B3%E7%A8%85%E9%A1%8D%E8%A1%A8.rar
作者: aer    時間: 2014-2-21 20:21

回復 3# shootingstar

請問一下,所得稅是否為取較低的級距?即您所舉例子,所得95750是介於95500 ~ 96000之間,且無扶養人,其稅額是否取用95500的級距?或是取較高的96000級距呢?
作者: aer    時間: 2014-2-21 22:09

回復 1# shootingstar

H欄所得稅公式
H2=IF(AND($B2>47000,$B2<=110000),INDEX('102年'!A:M,ROUNDUP($B2/500,0)-92,MATCH($K2,'102年'!$2:$2)),IF(AND($B2>110000,$B2<=120000),INDEX('102年'!A:M,ROUNDUP(($B2-111000)/1000,0)+129,MATCH($K2,'102年'!$2:$2)),IF(AND($B2>120000,$B2<=150000),INDEX('102年'!A:M,ROUNDUP(($B2-120000)/1500,0)+138,MATCH($K2,'102年'!$2:$2)),IF($B2>150000,INDEX('102年'!A:M,ROUNDUP(($B2-150000)/2000,0)+158,MATCH($K2,'102年'!$2:$2)),0))))
向下複製
作者: ML089    時間: 2014-2-21 23:53

本帖最後由 ML089 於 2014-2-21 23:55 編輯

H2 =IF(B2<47001,0,INDEX('102年'!B:M,INT((B2-47001)/500)+3,K2+1))

向下複製
作者: aer    時間: 2014-2-22 09:28

回復 7# ML089

版主的公式只適用底薪小於111000以下,超過111000則會取錯值。原因是薪資所得級距並非都是間隔500為一級,請幫忙看一下公式要如何修正?謝謝
作者: yen956    時間: 2014-2-22 13:27

試試看:
一、sheet("102年")修改如下圖:

二、
sheet("薪資表")B2輸入公式如下:
=VLOOKUP($B2, '102年'!$B$3N$334, $K2+2,TRUE)
測試結果如下圖:

作者: ML089    時間: 2014-2-22 16:27

本帖最後由 ML089 於 2014-2-22 16:29 編輯

回復 8# aer


    不是等距時,改用查表方式處理
H2 =IF(B2<47001,0,LOOKUP(B2,--LEFT('102年'!$A$3:$A$333,FIND("~",'102年'!$A$3:$A$333)-1),OFFSET('102年'!$B$3:$B$333,,K2)))


若像9樓插入查詢值可以提高查詢速度
作者: ML089    時間: 2014-2-22 16:52

本帖最後由 ML089 於 2014-2-23 00:54 編輯

回復 8# aer

非等距薪資可以修改如下
H2 =IF(B2<47001,0,INDEX('102年'!B:M,ROUNDUP(LOOKUP(B2,{4.7,11,12,15}*10^4+1,{3,129,139,159}-1+(B2-{4.7,11,12,15}*10^4)/{500,1000,1500,2000}),0),K2+1))



非等距薪資整理如下
470001~110000 +0500 ROW=3
110001~120000 +1000 ROW=129
120001~150000 +1500 ROW=139
150001~500000 +2000 ROW=159 ~ 333
作者: aer    時間: 2014-2-22 19:53

回復 11# ML089

謝謝版主的簡化公式,不過公式中的10,是否應為11呢?
H2 =IF(B2<47001,0,INDEX('102年'!B:M,ROUNDUP(LOOKUP(B2,{4.7,11,12,15}*10^4+1,{3,129,139,159}-1+(B2-{4.7,11,12,15}*10^4)/{500,1000,1500,2000}),0),K2+1))
作者: yen956    時間: 2014-2-22 19:59

回復 10# ML089
大大你好!!

為什麼 B2 的公式

=VLOOKUP($B2, '102年'!$B$3:$N$334, $K2+2,TRUE)

=VLOOKUP($B2, '102年'!$B$3:$N$334, $K2+2,)

的結果會不一樣?
(如果下面的結果為 0, 上面的結果為 #N/A)

不是說 模糊查詢 時, True 可以省略嗎?
還是我哪個地方弄錯了?
作者: ML089    時間: 2014-2-23 00:47

回復 12# aer


    應該是 11
作者: ML089    時間: 2014-2-23 00:53

回復 13# yen956


=VLOOKUP($B2, '102年'!$B$3:$N$334, $K2+2,)
同下列2式
=VLOOKUP($B2, '102年'!$B$3:$N$334, $K2+2,0)
=VLOOKUP($B2, '102年'!$B$3:$N$334, $K2+2,FALSE)
作者: yen956    時間: 2014-2-23 04:42

回復 10# ML089
謝謝大大的回覆!!
換句話說:Excel 的說明, 是有陷阱的, 最好不要省略. 是嗎?
原說明如下:
『•如果 range_lookup 為 TRUE 或被省略,則傳回完全符合或大約符合的值。
如果找不到完全符合的值,將會傳回僅次於 lookup_value 的值。』
了解了!!
作者: yen956    時間: 2014-2-23 09:28

回復 15# ML089
謝謝大大的指點!!
不過愈想愈不對,
0=False, 1=True,

如果
『=VLOOKUP($B2, '102年'!$B$3:$N$334, $K2+2,)
同下列2式
=VLOOKUP($B2, '102年'!$B$3:$N$334, $K2+2,0)
=VLOOKUP($B2, '102年'!$B$3:$N$334, $K2+2,FALSE)』
那豈不表示 FALSE 可以省略?

應該是別的問題吧!!
作者: ML089    時間: 2014-2-23 22:00

回復 17# yen956

VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
如果 range_lookup 為 TRUE 或被省略,則傳回完全符合或大約符合的值。

正確如下式
=VLOOKUP($B2, '102年'!$B$3:$N$334, $K2+2)

下式最後加上" ," 表示沒有省略 range_lookup只是沒有填值,慣例上EXCEL視為0,這是認知上的誤差。
=VLOOKUP($B2, '102年'!$B$3:$N$334, $K2+2,)
同下列2式
=VLOOKUP($B2, '102年'!$B$3:$N$334, $K2+2,0)
=VLOOKUP($B2, '102年'!$B$3:$N$334, $K2+2,FALSE)』
作者: yen956    時間: 2014-2-24 12:20

回復 10# ML089
真感謝大大的指點迷津,
原來差在一個逗號, 如果不是大大再三說明,
真不知問題出在哪裡,
=VLOOKUP($B3, '102年'!$B$3:$N$334,$K3+2)

=VLOOKUP($B3, '102年'!$B$3:$N$334,$K3+2, 1)
=VLOOKUP($B3, '102年'!$B$3:$N$334,$K3+2, TRUE)
相同, 而
=VLOOKUP($B3, '102年'!$B$3:$N$334,$K3+2,)

=VLOOKUP($B3, '102年'!$B$3:$N$334,$K3+2, 0)
=VLOOKUP($B3, '102年'!$B$3:$N$334,$K3+2, false)
相同,
沒有高人指點, 還不知自已錯在哪裡,
原來要省略, 還有那麼多眉角, 謝啦!!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)