2017-08-18 38 views
-3

即时通讯的一个新手到Excel中,我无法找到我的问题的确切答案。公式应该很简单

基本上我想让图片1(https://i.stack.imgur.com/8E5zv.png)做图片2(https://i.stack.imgur.com/LXJhq.png )显示。它可能是一个非常简单的问题。

因此,任何总价值超过10,000的价值将以25p的价格收取,低于10,000的价值将按40p的价格收取。

如此累积起来,一个人可能已经申请9999公里以来,他们提出了10英里的新费用索赔,我希望1英里去40p利率和其他9到25p利率。

我需要什么样的配方?

感谢您提前提供任何帮助!

+0

你可以添加一些代码来显示你已经尝试过吗? – EFrank

+0

我已经尝试了许多不同的简单公式,但似乎无法得到任何工作,我想如何。基本上我想要它做什么(以图片为例),当英里数(49的总和从不同的标签中拉出)时,我希望它到右侧的列,它将在我已经展示的例子中分割。所以我希望44进入顶栏,然后4进入第二栏,如果新的总数低于10,000,我只希望这一切都保持在正确的行中。 –

+0

你可以展示一些你尝试过的公式吗? – dwirony

回答

1

如果以前的累计里程由Old表示,则Miles的附加里程数和Thold应支付的较低费率的阈值则考虑以下内容。有3种情况:

  1. Old+Miles<=Thold:以更高速率
  2. Old<Thold<=Old+Miles支付的所有MilesMiles分裂,使Thold-Old在更高的速度和Miles-(Thold-Old)支付以较低的速度
  3. Thold<=Old:以较低的速度全部Miles支付。

Miles以较高速率支付每当Old小于Thold和以较高速率支付的里程数是Miles较小(情形1)和Thold-Old(情况2)。这可能会在类似于Excel的方式来表示

`=IF(Thold-Old>0,IF(Miles<Thold-Old,Miles, Thold-Old),0)` 

而是一个更简洁的表达是

`=MIN(Miles,MAX(Thold-Old,0))` 

这两个公式,在三种情况下都提供一个正确的结果(包括案例零值3.),因此每一个代表一个通用公式,适用于以更高费率支付的里程数。

同样,英里是在较低的速率每当Old+Miles超过Thold支付,并在该速率支付数是Miles(情况3)和Miles-(Thold-Old)(情况2)的较小者。在这种情况下,IF表达式为:

`=IF(Old+Miles>Thold,IF(Miles<Miles-(Thold-Old),Miles,Miles-(Thold-Old)),0) 

但是这可以等效写成

`=IF(Old+Miles-Thold>0,IF(Miles<Miles+Old-Thold,Miles, Miles+Old-Thold),0)` 

,我会离开它你作为一个练习,制定出简洁的版本。公式(e)为情况1提供了0的结果,因此通常适用于计算以较低费率支付的里程。