• ベストアンサー

エクセルの計算式をご教示ください

(1) X*1/2+12,500=Y で、Xが25,001以上で、Yに少数点以下の端数がついた時、端数を切り上げる場合のYの計算式。 (2) セルB6-セルB14=セルB15 の式で      セル15は、1,000以下の端数を切り捨てる      また、残総額が1,000以下またはマイナスとなった場合は 0 とする。      セル15のどのような式を挿入すればいいか、ご教示下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 まず、(1) の条件のままでは、「Xが25,001未満の場合は、Yに小数点以下の端数がついていても端数を切り上げずに表示する」という事になるというのは、例えば ●Xが25001の場合には、Y=25001*1/2+12500=25001.5 となり、Yに小数点以下の端数が付いていて、尚且つ、「Xが25,001以上」という条件にも該当しているため、小数点以下の端数の切り上げを行って25001 を表示する ●Xが24999の場合には、Y=24999*1/2+12500=24999.5 となり、Yに小数点以下の端数が付いてはいるものの、「Xが25,001以上」という条件には該当していませんから、端数の切り上げは行わずに、そのまま24999.5 を表示する という条件という事になり、質問者様の御説明にある通りの条件ですと、その様な事になってしまう訳ですが、その様にした方が良いのでしょうか? という意味です。  それに対して、「Xが25,001以上の場合においてのみ、Y=X*1/2+12,500で定義されるYの値を、小数点以下の端数を切り上げて表示し、そうではない場合(Xが25,001未満の場合)には何も表示しない」という条件に変更した場合には、例えば ●Xが25001の場合には、「Xが25,001以上」という条件に該当しているため、Y=25001*1/2+12500=25001.5 で、そのYの値から小数点以下の端数の切り上げを行って25001 を表示する ●Xが24999の場合には、「Xが25,001以上」という条件に該当していないため、何も表示しない(Yの値は計算しない) という条件という事になります。 尚、 >出来ましたら具体的な計算式でご教示ください。 との事ですが、そのためにはXの値が入力されているセルが何というセル番号(B6とか、B15などといった番号の事です)のセルであるのかという情報が必要になります。  質問者様の御説明の中には、具体的な計算式を示すために必要な情報が書かれていなかったが故に、具体的な式を示す事が出来ませんでしたので、「Xの値が入力されているセルのセル番号」という表現を使わざるを得なかったのです。  ですから、具体的な式を御所望なのでしたら、まず、Xが入力されているセルの具体的なセル番号を御教え願います。  その上で、先述の2つの条件の内、どちらの条件にした方が良いのかという事も御教え願います。 (2)の =IF(AND(ISNUMBER(B6-B14),COUNT(B6,B14)),IF(B6-B14>1000,ROUNDDOWN(B6-B14,-3),0),"") という式に関しては、この式をB15セルに入力しておくと、 ●B6セルに1,000,000が、B14セルに426,950が、それぞれ入力されている場合には、B15セルに573000が表示される ●B6セルに1,000,000が、B14セルに999,100が、それぞれ入力されている場合には、B15セルに0が表示される ●B6セルに1,000,000が、B14セルに1,150,000が、それぞれ入力されている場合には、B15セルに0が表示される ●B6セルとB14セルのどちらにも数値が入力されていない場合には、B15セルには何も表示されない という事です。  それから、 =IF(AND(ISNUMBER(B6-B14),COUNT(B6,B14)),ROUNDDOWN(B6-B14,-3),0)*(B6-B14>1000),"") という式は、私の間違いでした。申し訳御座いません。(この式を入力しても、Excelは受け付けません)  正しくは次の様な式となります。 =IF(AND(ISNUMBER(B6-B14),COUNT(B6,B14)),ROUNDDOWN(B6-B14,-3)*(B6-B14>1000),"")  この式でも、得られる結果は =IF(AND(ISNUMBER(B6-B14),COUNT(B6,B14)),IF(B6-B14>1000,ROUNDDOWN(B6-B14,-3),0),"") を入力した場合と同じものとなります。

taiya6666koyama
質問者

お礼

たびたびご回答頂き有難うございます、まだ実際の表の計算をしてないので後日結果をご報告いたします。取り急ぎお礼まで。

taiya6666koyama
質問者

補足

たびたび有難うございます、質問(1)のXのセル番号はC3で金額の範囲は25,001から50,000です、Yのセル番号はF3となっています。  例・25,119(セルC3)*1/2+12,500=25,059.50(セルF3)・・ もとめたい答え 25,060です

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

>質問(1)のXのセル番号はC3で金額の範囲は25,001から50,000です、Yのセル番号はF3となっています。  「金額の範囲は25,001から50,000です」という事は、もしも、C3セルに25001未満の金額が入力された場合には、金額が入力された事を無視して何も表示しない様にすれば良いという事なのでしょうか?  もし、それで宜しければ、F3セルに次の様な関数を入力して下さい。 =IF(AND(ISNUMBER($C3),$C3>=25001),ROUNDUP($C3/2+12500,0),"")

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

>(1) X*1/2+12,500=Y で、Xが25,001以上で、Yに少数点以下の端数がついた時、端数を切り上げる場合のYの計算式。  その御説明のままの条件ですと、「Xが25,001未満の場合は、Yに少数点以下の端数がついていても端数を切り上げずに表示する」という事になるのではないでしょうか?  もしそれで宜しければ、次の様な関数となります。 =IF(ISNUMBER(「Xの値が入力されているセルのセル番号」),IF(「Xの値が入力されているセルのセル番号」<25001,「Xの値が入力されているセルのセル番号」/2+12500,ROUNDUP(「Xの値が入力されているセルのセル番号」/2+12500,0),"")  それとも質問者様が仰りたかった事は、「Xが25,001以上の場合においてのみ、Y=X*1/2+12,500で定義されるYの値を、小数点(「少数点」では誤字になります)以下の端数を切り上げて表示し、そうではない場合(Xが25,001未満の場合)には何も表示しない」という事なのでしょうか?  それでしたら、次の様な関数となります。 =IF(AND(ISNUMBER(「Xの値が入力されているセルのセル番号」),「Xの値が入力されているセルのセル番号」>=25001),ROUNDUP(「Xの値が入力されているセルのセル番号」/2+12500,0),"") >(2) セルB6-セルB14=セルB15 の式で >     セル15は、1,000以下の端数を切り捨てる >     また、残総額が1,000以下またはマイナスとなった場合は 0 とする。 =IF(AND(ISNUMBER(B6-B14),COUNT(B6,B14)),IF(B6-B14>1000,ROUNDDOWN(B6-B14,-3),0),"") 或いは =IF(AND(ISNUMBER(B6-B14),COUNT(B6,B14)),ROUNDDOWN(B6-B14,-3),0)*(B6-B14>1000),"")

taiya6666koyama
質問者

補足

(1)の例 25,119*1/2+12,500=25,59.5 求めたい答え   25,060 (2)の例(a)1,000,000-426,950=573,050 求めたい答え   573,000 (b)1,000,000-999,100=900 求めたい答え     0 (c)1,000,000-1,150,000=△150,000 求めたい答      え   0 前回、回答を頂きましたが、自分の能力不足で理解出来ませんでした、申し訳ありません、今回、具体的な数字で補足説明させて頂きます、もう一度だけ質問にお答え頂ければ大変ありがたいと思います。 出来ましたら具体的な計算式でご教示ください。

関連するQ&A