我正在尝试使用适用于多税率税制的单一公式在 Excel 中计算所得税。目前,该公式引用上一行中的单元格来获取要计算税率的收入。
我只对公式中最高等级的部分有疑问:
IF(ADDRESS(ROW()-1,COLUMN())>180000,(ADDRESS(ROW()-1,COLUMN())-180000)*0.45, 0)
#VALUE
当上方的单元格包含所得税号(以 100,000 为例)时,此公式将返回。
因此,对于这个等级,任何超过 180,000 的价值都按收入 - 180,000 * 0.45 征税
我如何修复此公式以返回0
100,000?
提前致谢。
答案1
我不确定你是否需要把这个弄得这么复杂。如果你的公式是,A2
那么你能不能直接在公式中引用上面的单元格,例如
=MAX(0,A1-180000)*0.45
如果您将其复制到另一个单元格,它仍将引用上面的单元格。如果您担心行/列被删除,并且想要确保它仍引用上面的单元格,那么请像OFFSET
这样再次在 A2 中使用
=MAX(0,OFFSET(A2,-1,0)-180000)*0.45
答案2
我搞明白了。这个配方并没有达到它所声称的效果。
为了使这个公式起作用,我需要将各ADDRESS()
部分括在内INDIRECT()
。
它看起来应该像这样:
IF(INDIRECT(ADDRESS(ROW()-1,COLUMN()))>180000,(INDIRECT(ADDRESS(ROW()-1,COLUMN()))-180000)*0.45, 0)