- ベストアンサー
この関数の意味を教えてください
「AO8」のセルに下記の数式が入っています。 「K8」のセルに「1000」と入力、「AM8」のセルと「AR8」のセルに「50」と入力すると「AO8」の数式の結果は私が求めている値になるのですが、「K8」のセルに「482.9」と入力、「AM8」のセルに「50」と入力、「AR8」のセルに「238」と入力すると、私が求めている値になりません。 結果は「247.5」と表示されます。 私が求めている値は「194.9」です。 「K8」-「AM8」-「AR8」の値が300未満の時はそのままその数値を表示して欲しいのです。 どう直せばいいのでしょうか? =IF((SUM(AM8+AR8)=0)," ",(IF(400<=K8,(IF(((K8-AM8-AR8-(ROUNDUP(((K8-AM8-AR8)/300-1),0)*300))/2)<=150,((K8-AM8-AR8-(ROUNDUP(((K8-AM8-AR8)/300-1),0)*300))/2)+150,((K8-AM8-AR8-(ROUNDUP(((K8-AM8-AR8)/300-1),0)*300))/2))),K8-AM8-AR8)))
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ベタですが…。これじゃダメなんでしょうか。 =IF((SUM(AM8+AR8)=0)," ",IF((K8-AM8-AR8)<300,(K8-AM8-AR8),IF(400<=K8,(IF(((K8-AM8-AR8-(ROUNDUP(((K8-AM8-AR8)/300-1),0)*300))/2)<=150,((K8-AM8-AR8-(ROUNDUP(((K8-AM8-AR8)/300-1),0)*300))/2)+150,((K8-AM8-AR8-(ROUNDUP(((K8-AM8-AR8)/300-1),0)*300))/2))),K8-AM8-AR8)))
その他の回答 (4)
- dejiji-
- ベストアンサー率38% (327/858)
ネストが3回の割りに式が理解しにくいですね。 例えば、AP9に =K8-AM8-AR8 AP10に =ROUNDUP(((AP9)/300-1),0) AP11に =(AP9-AP10*300)/2 として、同じ計算をさせる。(作業セルの使用をする。) AO8に =IF(AM8+AR8=0," ",IF(AP9<300,AP9,(IF(400<=K8,(IF(AP11<=150,AP11+150,AP11)),AP9)))) 最初にIF条件をもうひとつ入れる。 あと最初のSUMも不要。(足してあるので必要なし。) 式は出来るだけ簡素化しないと、修正が困難(場合によっては不可能)になります。
お礼
ありがとうございます。 なるほど!確かに計算式がすっきりしてますね。 部署のみんなに打診してみます。
- phoenix343
- ベストアンサー率15% (296/1946)
#3です。かぶりました… しかも式間違ってるし。#2の方を採用してください。
- phoenix343
- ベストアンサー率15% (296/1946)
247.5じゃなくて247.45ですね。表示上小数第一位までしか表示していないんでしょ。 さて本題ですが、 if(400<=K8の後にまたifをかませばいいだけでしょう。 =IF((SUM(B8+C8)=0)," ",IF(K8-AM8-AR8<300,K8-AM8-AR8,(IF(400<=D8,(IF(((D8-B8-C8-(ROUNDUP(((D8-B8-C8)/300-1),0)*300))/2)<=150,((D8-B8-C8-(ROUNDUP(((D8-B8-C8)/300-1),0)*300))/2)+150,((D8-B8-C8-(ROUNDUP(((D8-B8-C8)/300-1),0)*300))/2))),D8-B8-C8))))
お礼
ありがとうございます。 その通りです、セルの書式で小数点第一位に設定しています。
- hinebot
- ベストアンサー率37% (1123/2963)
私の分析が間違ってなければですが、 求めている値「194.9」ではなく「247.5」となるのは 3つめのIF関数の条件 ((K8-AM8-AR8-(ROUNDUP(((K8-AM8-AR8)/300-1),0)*300))/2)<=150 が真【計算すると左辺は97.95で、 <=150になります】となり、 (K8-AM8-AR8-(ROUNDUP(((K8-AM8-AR8)/300-1),0)*300))/2)+150 が実行されているからです。 97.95+150 = 247.95 (「247.5」はタイプミス?) とここまでは分かりましたが、具体的にどういう値のときにどうしたいのかが、この式だけでは読み取れないため、どこを直したらよいかの指摘ができません。 もう少し、詳しく説明してもらえれば、と思うのですが。
お礼
ありがとうございます。 求めたいのは下記の通りです。 Xミリの長さの板があります。 左端からAミリ、右端からBミリに最初の穴をあけます。 ここでX-A-B=Yとします。 今度はYミリの長さの中で300ミリ間隔で穴をあけます。 その際にあまりが出る時、そのあまりを2等分します。 しかしその2等分された値は300以下であることが条件です。 その2等分された寸法をそれぞれAミリの次、Bミリの次に配置するのです。 そうすることで300ミリの間隔は中央に等分されます。 数値を入れて例題しますと。 1200ミリの板。 左から50ミリに穴。 右から50ミリに穴。 穴と穴の寸法は1200-50-50=1100(ミリ) 1100ミリから300を1回か引くと残りは800。 それを2等分すると400。 300より大きいので不可。 もう一度300引くと残りは500。 これを2等分すると250。 300より小さいので可。 この250という数値を求めたいのです。 質問した時の板の長さは482.9 左から50ミリ、右から238ミリ穴をそれぞれあけると、残りは194.9ミリなのに247.5と表示されたので間違いに気が付きました。
お礼
ありがとうございます。 そうです。この数値になれば良いのです。 助かりました。