2017-08-18 61 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的結果,因此通常適用於計算以較低費率支付的里程。