• ベストアンサー

関数について教えて下さい。

数字を入力した時、条件は基本75まで1個、但し85までは1個とし、86からは2個として計算された答えを求めたいのですが・・・例えば310と入力した場合、計算上75×3、85×1の答えが4個。311の場合、75×4、11×1の答えが5個というふうに。条件が無ければセル/75やROUND関数で解決すると思うのですが、私の頭では限界です((+_+))よろしくお願いします。

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

  • ベストアンサー
  • mzon
  • ベストアンサー率48% (26/54)
回答No.2

A1に値を入れた場合とします。 『=IF(MOD(A1,75)=0,TRUNC(A1/75),IF(AND(MOD(A1,75)>=1,MOD(A1,75)<=10),(TRUNC(A1/75)-1)+1,TRUNC(A1/75)+1))』 を適当なセル(B列など)にセット A1に値を知れれば、個数が出ます。 式:まず余りを求め、0ならば75での商を答えとする。   余りが1~10まで(76~85)までは、75での商-1+1(結局は商のかずですけどね)   余りが11以上(86以上)は75での商+1とする。 以上です。 で上記を簡素化すると 『=IF(AND(MOD(A1,75)>=0,MOD(A1,75)<=10),TRUNC(A1/75),TRUNC(A1/75)+1)』 となります。 式:余りが0~10は75での商を答えとする。   余りが11以上(86以上)は75での商+1とする。 ついでに 『=IF(MOD(A1,75)=0,"75×" & TRUNC(A1/75),IF(AND(MOD(A1,75)>=1,MOD(A1,75)<=10),"75×" & (TRUNC(A1/75)-1) & " " & 75+MOD(A1,75) & "×1","75×" & (TRUNC(A1/75)) & " " & MOD(A1,75) & "×1" ))』 とすると、式が見えますよ。

rate-rate
質問者

お礼

早い回答、有り難うございます。凄いです!って、私が知らないだけですかね~回答を拝見すると「なるほど」と 納得できますが、自分ではムリです(?_?)でも頑張って勉強したいと思います。助かりましたm(__)m

その他の回答 (2)

  • don9don9
  • ベストアンサー率47% (299/624)
回答No.3

No.2さんの回答の式だと、入力値が10以下の場合に 結果が0になりますが、それで問題はありませんか? 質問文からは、入力値の範囲がわかりませんが 「○個」という表現から、自然数であると仮定して 例えば1から85までは1、それ以降は75増えるごとに 1ずつ増えるような結果を返したい場合は =IF(A1<=85,1,ROUNDUP((A1-85)/75,0)+1) こんな感じの式でもいいのではないかと思います。

rate-rate
質問者

お礼

返事が遅くなりました。m(__)m回答有り難う御座います。don9don9さんのおっしゃる通りで、10以下の事 すっかり忘れて確認しませんでした。これでOKです!

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

MOD関数を使ってはいかがでしょう。

rate-rate
質問者

お礼

回答、有り難う御座います!もう少し勉強しないとダメですね。でもMOD関数の頭も無かったので勉強になりました。(^_^)

rate-rate
質問者

補足

早速の回答、有り難う御座います。MOD関数は余りを求めるものですよね。これと他の関数組み合わせるのですか?=MOD(A1、75)だと75を入力したとき0になってしまうし(正解は1)質問の仕方がマズかったですかね m(__)m