Excel“ IF”公式:计算经纪费用

问题描述

我是Excel的初学者,我想做的是关于经纪费的简单计算。这是我需要支付的费用:

Stock value under MYR 1000 : Stamp duty MYR 1.
Stock value under MYR 2000 : Stamp duty MYR 2.
Stock value under MYR 3000 : Stamp duty MYR 3.

并一直持续到股票价值低于200,000令吉,印花税将停止在200令吉。只要股票价值超过200,000令吉,仍需支付200令吉的印花税。

因此,基本上,我已经制定了“ IF”公式,并且看起来这件事永远存在。这是我研究的公式;

=IF(L31>=37001,38,IF(L31>=36001,37,IF(L31>=35001,36,IF(L31>=34001,35,IF(L31>=33001,34,IF(L31>=32001,33,IF(L31>=31001,32,IF(L31>=30001,31,IF(L31>=29001,30,IF(L31>=28001,29,IF(L31>=27001,28,IF(L31>=26001,27,IF(L31>=25001,26,IF(L31>=24001,25,IF(L31>=23001,24,IF(L31>=22001,23,IF(L31>=21001,22,IF(L31>=20001,21,IF(L31>=19001,20,IF(L31>=18001,19,IF(L31>=17001,18,IF(L31>=16001,17,IF(L31>=15001,16,IF(L31>=14001,15,IF(L31>=13001,14,IF(L31>=12001,13,IF(L31>=11001,12,IF(L31>=100001,11,IF(L31>=9001,10,IF(L31>=8001,9,IF(L31>=7001,8,IF(L31>=6001,7,IF(L31>=5001,6,IF(L31>=4001,5,IF(L31>=3001,4,IF(L31>=2001,3,IF(L31>=1001,2,IF(L31>=1,1))))))))))))))))))))))))))))))))))))))

所以,我的问题是,第一段中是否有任何适合所写规则的简单公式?

非常感谢您。

解决方法

尽管VLOOKUP是消除所有IF的经典方法,但在这种特殊情况下,由于以下关系,公式解决方案也是可能的:

=MIN(INT((L31-1)/1000)+1,200)

似乎提供与公式预期相同的结果。

,

根据单元格格式的一致性,可以使用LEN()检查数字的长度,然后相应地进行格式化。

IF(LEN(L31)=5,LEFT(L31,2)+1-如果长度为5个字符,则取前2个字符并加1。

,IF(LEN(L31)=4,1)+1-如果长度为4个字符,则取第一个字符并加1。

,1))-如果没有其他匹配项,则值为1。

=IF(LEN(L31)=5,2)+1,1)+1,1))

另外,您的公式中有一个错字(100001应该是10001)。

,

您的嵌套IF公式可以替换为以下简单的格式:

=VLOOKUP($B$6,$A$2:$B$4,2)

这是VLOOKUP的经典用例,没有传递错误的参数。

您可以搜索VLOOKUP以了解其工作原理。

这比尝试嵌套IF语句要简单得多。

示例

假设您有以下2列表格,其中第1行为标题:

          COLUMN A         COLUMN B
          -----------      ----------------
Row 1:    Stock value      Stamp duty (MYR)
Row 2:              0                     1
Row 3:           1000                     2
Row 4:           2000                     3

假设您在B6单元格中有一个股票值。

您的查找公式(在其他单元格中,称为B7)将是:

=VLOOKUP($B$6,2)

然后您可以将该表向下扩展,直到最后一行A列中有200,000。(不要忘记确保该公式也引用了新行)。