2017-08-18 7 views
-3

私はExcelのルーキーのビットと私は私の質問に正確な答えを見つけることができません。数式はシンプルにする必要があります

基本的には、画像2(https://i.stack.imgur.com/LXJhq.png )が表示されている画像1(https://i.stack.imgur.com/8E5zv.png)を取得したいと考えています。おそらく本当に簡単な質問です。

したがって、10,000を超える合計金額は25pレートで課金され、10,000未満の値は40pレートで課金されます。

開始から9999マイルが請求されている可能性があり、10マイルの新しい経費請求を行った場合、1マイルを40pレートに、もう1つを25pレートにしたいと考えています。

どのような種類の式が必要ですか?

事前にお問い合わせいただきありがとうございます。

+0

既に試したことを示すコードを追加してください。 – EFrank

+0

私は数多くの異なる単純な公式を試しましたが、私はそれをしたいと思うように働かせることはできません。基本的には、マイル(49の合計を別のタブから引っ張ったもの)を右の列に移動したい場合は、これを分割します。 44桁目を2桁目に、4桁目を2桁目にして、合計が10,000未満の場合は、すべてが正しい行に入るようにします。 –

+0

試した数式を表示できますか? – dwirony

答えて

1

前の累積走行距離は、追加のマイレージはMilesにより、Oldによって示され、より低いレートがTholdによって支払わされる閾値は、次の点を検討している場合。 3例があります。

  1. Old+Miles<=Thold:高いレート
  2. Old<Thold<=Old+Milesで支払ったすべてのMilesMiles分割
  3. Thold<=Old低いレートでより高い割合とMiles-(Thold-Old)で支払わThold-Oldように:すべてのMiles低いレートで支払われます。 Old未満Tholdで、より高いレートで支払われるマイル数がMiles(ケース1)とThold-Old(ケース2)の小さい方であるときはいつでも

Milesは、より高いレートで支払われます。これは

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

としてExcelの様な方法で表現することができたが、はるかに簡潔な表現は

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

両方式であり、ケースのためのゼロの値を含むすべての3つの例(正しい結果を提供します3)と表記されているので、より高い料金で支払うマイル数の一般的に適用可能な公式を表す。

同様に、マイルはOld+MilesTholdを超えるたびに、より低いレートで支払われると、このレートで支払わ数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であるため、より低いレートで支払うマイルの計算には一般的に適用されます。

関連する問題