在Excel中自动计算我的税

时间:2016-02-11 14:22:38

标签: excel if-statement tax

这是我在这里的第一篇文章,所以大家好 我事先做了很多研究,但找不到我想要的答案。

我想在Google表格中电子表格自动计算我的税。​​

<0>€0 - €11000 w / 0%
€11000 - €18000 w / 25%
€18000 - €31000 w / 35%
€31000 - €60000 w / 42%
€60000 - €90000 w / 48%
€90000 - €1000000 w / 50%
€1000000 + w / 55%

因此,前11k的税率为0%,接下来的7k税率为25%等。

我有以下想法 - 给我F9是我之前的税收收入:

   =IF(0<=F9<=11000,SUM(F9*0%),(IF(11000<F9<=18000,SUM((F9-11000)*25%),(IF(18000<F9<=31000,SUM((7000*25%)+((F9-18000)*35%),SUM(F9))))))

不幸的是它只是赢了工作。

我使用的是正确的功能吗? 那里有什么能让它变得更容易吗?

感谢您的帮助。

4 个答案:

答案 0 :(得分:0)

Excel不会以X<y<z的方式工作。此外,它按顺序解决,因此没有必要:

=IF(F9<=11000,SUM(F9*0%),(IF(F9<=18000,SUM((F9-11000)*25%),(IF(F9<=31000,SUM((7000*25%)+((F9-18000)*35%),SUM(F9))))))

如果它小于11000那么第一个将开火而没有其他人。然后,如果大于11000但小于18000,那么第二个将开火,依此类推。

答案 1 :(得分:0)

以下是您的问题的示例(Excel):

在单元格A1中是您的Money,将代码粘贴到A2中,例如:

=WENN(A1>10000;"10%";WENN(A1>7000;"7%";WENN(A1>5000;"5%";WENN(A1>3000;"3%";"0%")))) 

FK

答案 2 :(得分:0)

列出每个括号范围的值,如果它高于该数量,则应用百分比,例如:

=MATCH(F9;A1:A6;1)

如果您愿意,可以将百分比值格式化为百分比。重要的是该值是小数而不是字符串。

然后您可以使用MATCH函数来确定第一个值大于您收入的行。因此,如果持有您收入的单元格是F9,那么您将拥有:

=INDEX(B1:B6; MATCH(F9; A1:A6; 1); 1)

但这只返回行号。如果我们想要检索所应用的税,我们需要使用它来查明B列中与之相关的值。要动态获取某个特定点的值,我们使用INDEX。

所以把它放在一起,你就有了:

=F9*(1 - INDEX(B1:B6; MATCH(F9; A1:A6; 1); 1))

一次减去F9中的值以获得税后金额:

    Dim objMyConn As ADODB.Connection
    Dim objMyCmd As ADODB.Command
    Dim objMyCmd1 As ADODB.Command
    Dim objMyRecordset As ADODB.Recordset
    Dim rngUsedRange

    Set objMyConn = New ADODB.Connection
    Set objMyCmd = New ADODB.Command

    Set objMyRecordset = New ADODB.Recordset
    Set rngUsedRange = ActiveSheet.UsedRange

'Open Connection'

    objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=10.5.3.16;Initial Catalog=PROTELECOM_AMERICAN_TOWERS;Trusted_connection=yes;"
    objMyConn.Open

'Set and Excecute SQL Command'
    Set objMyCmd.ActiveConnection = objMyConn
objMyCmd.CommandText = ";WITH CTE AS(SELECT BAN.BAN_IDFR, BAN.BAN_NBR, BAN.BAN_STATUS FROM PROTELE_BAN BAN INNER JOIN PROTELE_BILL BILL ON BAN.BAN_IDFR = BILL.BAN_IDFR" & _
"GROUP BY BAN.BAN_IDFR,BAN.BAN_NBR,BAN.BAN_STATUS)SELECT DISTINCT V.ORG_NAME [VENDOR NAME], CTE.BAN_NBR [BAN#], SVR.SER_ACCT_NBR [WTN#],W.COST_CENTER[COST CENTER],W.COST_CODE[COST CODE], BA.ECOM_ID [VENDOR ID],BC.SERVICE_TYPE [SERVICE TYPE], CONVERT(VARCHAR(10),MAX(B.BILL_DATE),101) AS [BILL DATE],SUM(BC.AMOUNT) AMOUNT, B.EXTRACT_STATUS [EXTRACT STATUS],CONVERT(VARCHAR(10),B.EXTRACT_DATE,101) AS [EXTRACTED DATE]" & _
"FROM CTE INNER JOIN PROTELE_BILL B ON CTE.BAN_IDFR = B.BAN_IDFR" & _
"INNER JOIN PROTELE_BILL_CHARGE BC ON B.BILL_IDFR = BC.BILL_IDFR" & _
"INNER JOIN PROTELE_BAN_WTN_MAPPING MAPP ON B.BAN_IDFR = MAPP.BAN_IDFR" & _
"INNER JOIN PROTELE_SVR_WTN SVR ON SVR.SVR_ACCT_IDFR=BC.SVR_ACCT_IDFR" & _
"INNER JOIN PROTELE_SVR_WTN_DETAILS W ON CTE.BAN_IDFR = W.BAN_IDFR AND SVR.SVR_ACCT_IDFR = W.SVR_ACCT_IDFR AND B.BAN_IDFR=W.BAN_IDFR" & _
"INNER JOIN PROTELE_BAN_VENDOR BV ON CTE.BAN_IDFR = BV.BAN_IDFR" & _
"INNER JOIN PROTELE_BAN BA ON CTE.BAN_IDFR = BA.BAN_IDFR" & _
"INNER JOIN PROTELE_LOCATION C ON C.LOCA_IDFR = BV.VNDR_LOCA_IDFR" & _
"INNER JOIN PROTELE_VENDOR V ON C.ORG_IDFR = V.ORG_IDFR WHERE BC.SVR_ACCT_IDFR=W.SVR_ACCT_IDFR AND (B.EXTRACT_DATE BETWEEN '02/05/2016' AND '02/06/2016')" & _
"GROUP BY CTE.BAN_NBR, B.EXTRACT_DATE, BA.ECOM_ID,B.BILL_DATE,B.EXTRACT_STATUS,BC.SERVICE_TYPE,W.COST_CENTER,W.COST_CODE, SVR.SER_ACCT_NBR,V.ORG_NAME" & _
"ORDER BY CTE.BAN_NBR, V.ORG_NAME;"
objMyCmd.CommandType = adCmdText
'Open Recordset'
    Set objMyRecordset.Source = objMyCmd
    objMyRecordset.Open
    For intColIndex = 0 To objMyRecordset.Fields.Count - 1
    Selection.Offset(0, intColIndex).Value = objMyRecordset.Fields(intColIndex).Name
    Next

'Copy Data to Excel'
    ActiveSheet.Range("A2").CopyFromRecordset objMyRecordset

你为什么这样做?它允许您以直观的方式更改值,而无需解析冗长而艰巨的公式。您还可以相对轻松地添加新值。请记住调整A1:A6和B1:B6范围。

祝你好运!让我知道结果如何!

答案 3 :(得分:0)

您可能想尝试一下:

=if(F9<=0,"Error",IF(F9<=11000,0,(IF(F9<=18000,(F9-11000)*25%,(IF(F9<=31000,1750+(F9-18000)*35%,IF(F9<=60000,6300+(F9-31000)*0.42,if(F9<=90000,18480+(F9-60000)*0.48,IF(F9<=1000000,32880+(F9-90000)*0.5,487880+(F9-1000000)*0.55)))))))))