[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『IF関数』(もーもー)
B1が150以上の場合、素点(207)に応じて80点以上100点以下になるようにする。素点は207点となっているので、素点が207の場合は100点にする。
とあるのですが、
=IF(B1>=180,B1-100,B1/80*100)
を入れると
B1/80*100
の部分が消えてしまいます。
なぜでしょうか?
Excel2003
WindowsXP
消えてどのようになるのでしょう? (seiya)
消えてどの様になるのかも疑問ですが 条件として少なくとも「150」「207」と言う数値があるはずなのに 式の中にどちらの数字も無い と言うのも気になります・・・。
B1が150以上の場合 と言う条件のはずなのにIF関数の論理式が B1が180以上の場合 になっているのも・・・? そして、B1が150より下の場合は どうするのですかね?
>素点(207)に応じて80点以上100点以下になるようにする。 >素点は207点となっているので、素点が207の場合は100点にする。 これは例えば B1が150(条件内最低)だったら80点、 B1が207だったら100点とする と言う事??
何かの課題なのですかね? まぁ「式は正しい」ってのならその部分には触れませんが・・・。
(HANA)
=IF(B1>=180, ここまでの部分はわかっているのですが、
次は、 B1-100,B1/207*100) になりますか?
Excel2003 WindowsXP
それはその文章がそのままどこかに書いてありますか?
>素点に応じて80点以上100点以下になるようにする。 ここの意味がよく分かりません。
B1が180だったら80点、 B1が207だったら100点とする B1が180〜207の間は、同じ傾きで増加する ってことですかね?
B1が180未満の場合は、100を引く と言うのなら いま「B1/207*100」が入っている所に「B1-100」でしょうね。 でも、B1が100点未満の場合 点数がマイナスになりますが それでよいのですか?
もしも もーもーさんが 「素点に応じて80点以上100点以下になるようにする。」 ここの一文の意味が分かって居られないのであれば 私も分かりませんので、その様に仰ってください。 (素点に応じて傾きを決めて・・・って感じはしますが それにしても中途半端な点になりそうです。) また、他に情報をお持ちであれば その情報を載せてください。 もーもーさんが「関係ないと思っている」あるいは「分かっているから」 省略している部分があれば、公開できる範囲で公開してください。
(HANA)
もしかして 「B1が180以上の場合、B1が207の時100点となるようにする」 と言う話しなら、計算式の部分はB1/207*100 と言う式になって これが80点未満となるのはB1が 165.6未満の時で B1は180未満にならないから「80点以上」を満たす ・・・って事ですかね。
それなら、IF関数の問題だけですね。 IF関数は IF(論理式,真の場合,偽の場合) と書きます。 論理式が満たされたときに「真の場合」 満たされないときに「偽の場合」に それぞれ書いてある事が実行されます。
今回は 論理式「B1>=180」B1が180以上が 満たされたとき →真の時 「B1/207*100」 満たされないとき →偽の時 「B1-100」 としたいのですから、 =IF(B1>=180,B1-100,B1/207*100) この式では、やりたいことが逆に書いてあることになります。
この式は 論理式「B1>=180」B1が180以上が 満たされたとき →真の時 「B1-100」 満たされないとき →偽の時 「B1/207*100」 と言う式になっていますよ。
(HANA)
A B C 1 NO 素点 修正点 2 01 207 3 02 189 4 03 102 5 04 80
な感じなのですが、それで上の文章で修正点に入れるための式を考えていました。
それで、この場合修正点(C列)には それぞれ何点が入れば良いのですか?
例えば、C2は「100」が入れば良いのですよね? これは、B2が207で 条件に 「素点は207点満点となっているので、素点が207点の場合は100点にする。」 とありますから。
例えば、C3は何点になれば良いのですか? また、その時にどうやってその点数を導き出したのですか? C4,C5に関しても同様です。
それとも、各セルに何点が入れば良いか、 もーもーさんはお分かりになって居られないのですかね?
(HANA)
A B C 1 NO 素点 修正点 2 01 207 100 3 02 189 86 4 03 102 51 5 04 80 40
が入ります。これはもう例題として設定されていました。
それで、これは何かの課題なのですか? もーもーさんのご説明では、素点が180未満の場合 どの様にするのかご説明がありませんが 実際はあると思います。 でないと、C4,C5は何が入るか分からないですよね?
とりあえずNo1とNo2(素点が180以上)を考えると >B1が180〜207の間は、同じ傾きで増加する の方の様ですがそれにしても、 満点が207と言う中途半端なのが非常に気になります。
差し障りがなければ教えて下さい。 何の表(問題)なのですか?
また、180以上の場合の修正点は (これが正しいかどうかは分かりませんが) (X,Y)=(180,80)と(207,100)の2点を通る直線を求め Xの値にNo2の素点「189」を入力するとYが求まりますが これを小数点以下切り捨てにすると、No2の修正点「86」 が現れるようです。(ただし、たまたま かもしれません。) ですから、求めた直線Y=aX+bのXの部分をセル参照に変えた物を IF関数の中に入れれば良いと思います。
180未満の場合は、ご説明がないので分かりません。 それとも、これだけの情報から、C4,C5が求まりますか?
例えば何かの課題で有った場合 何の課題か分かることは 答えを求める為にどの手段をとれば良いかのヒントになります。 また、問題が変わったときに 変わる値があるのか (満点207 とか、条件である180と言う数字とか)等でも 式は少し変わってきたりします。 (定数なら計算出来ますが、変数なら計算出来ません) ただ、現在それらのヒントはもーもーさんしかもって居られません。
上でも述べましたが >また、他に情報をお持ちであれば その情報を載せてください。 >もーもーさんが「関係ないと思っている」あるいは「分かっているから」 >省略している部分があれば、公開できる範囲で公開してください。 宜しく御願いします。
(HANA)
B1が160点以上180未満の場合、素点に応じて70点以上80点未満にする。
B1が120点以上160未満の場合、素点に応じて60点以上70点未満にする。
B1が120点未満の場合、素点に応じて0点以上60点未満にする。
課題の問題はこれだけありました。素点の部分を上の問題に加工したものを修正点にC列に表示させるという問題でした。満点が207点です。成績を出すために100点満点に直すというものでした。
実際のところは修正点は消えていて、その式を修正点の部分にいれて求める感じです。
A B C 1 NO 素点 修正点 2 01 207 100 3 02 189 86 4 03 102 51 5 04 80 40 6 05 150 75
まだN0と素点の列は続くのですが、手元に資料がないのでここまでしか載せることができません。
=CHOOSE(SUM(COUNTIF(B1,{"<=207","<180","<160","<120","<0"}))+1,"", TRUNC(80+(B1-180)/27*20),TRUNC(B1/2-10),TRUNC(30+B1/4),TRUNC(B1/2),"") (ROUGE)
すっきり出来ませんでしたが、 =IF(B1>=180,(B1-180)*20/27+80,IF(B1>=160,(B1-160)*9/19+70,IF(B1>=120,(B1-120)*9/39+60,B1*59/119))) NO.05の修正点はおかしいのでは? >120点以上160未満の場合、素点に応じて60点以上70点未満 とあるのに75点とは? (素)
180〜207 → 80〜100 =IF(B2>=180,(B2-180)/1.35+80,IF(B2>=160,(B2-160)/2+70,IF(B2>=120,(B2-120)/4+60,B2/2))) もしくは =LOOKUP(B2,{0,120,160,180},(B2-{0,120,160,180})/{2,4,2,1.35}+{0,60,70,80}) 少数切捨てなら int TRUNC 等で囲えば (ffff)
IF関数を使って・・・ と思ってたら、 素さんとほぼ同じだったのでパスです。 >>>素さんへ IF関数で高得点から条件分岐させてるので、 9/19 などは 10/20 にしていいのではないでしょうか。
ちょっと長いけど、これでも計算は出来ますが、対比表があれば(作れば)随分楽になりますね。 =LOOKUP(B2,{0,120,160,180},{0,60,70,80})+ (B2-LOOKUP(B2,{0,120,160,180}))/LOOKUP(B2,{0,120,160,180},{120,40,20,27})*LOOKUP(B2,{0,120,160,180},{60,10,10,20}) ※改行してます。 (sin)
sinさんへ ご指摘ありがとうございます。
>9/19 などは 10/20 にしていいのではないでしょうか。 でも良いと思いますね。
式をそのままで書いたもんで。 y=(59/119)*x y={(69-60)/(159-120)}*(x-120)+60 y={(79-70)/(179-160)}*(x-160)+70 ・・・ てな具合です。 (素)
=LOOKUP 1回で対応範囲の中で計算すれば短くなりますね。 (ffff)さんの数式 (ROBINちゃん)
数式の方は腕自慢の方々がたくさん載せてくださっているので 私は辞退しますが、最初の御質問である >=IF(B1>=180,B1-100,B1/80*100) を入れると B1/80*100 の部分が消えてしまいます。 に関して、 「消えてしまう」と言うのは、具体的にどういった事なのですかね?
例えば、思った計算結果にならない。 どうやら「B1/80*100」を計算して居ないようだ。 と言う思考から「消えてしまう」と言う表現をお使いでしたか?
それとも セルに入力出来る文字数には限界があります。 その限界を超えてしまうため、「B1/80*100」の部分が入力できていない と言う事を「消えてしまう」と言う表現で表して居られましたか? その場合その時に作った式は、どの様な物だったのでしょうか?
もしくは、 入力しようとしたら「式が正しくない」と言われて入力が出来ない。 と言う事に「消えてしまう」と言う表現をお使いでしたか?
seiyaさんもお尋ねですが 消えるとどうなるのですかね? まだ同じ現象が起きるのであれば、現状をお知らせ下さい。
(HANA)
消えるというより#VALUEという文字が出てしまうことです。
消えると表現してしまいました。
たしかに、#VALUE!と言う文字が表示されたら 「消えた」感じがするかもしれませんね。
エラー値に関しては、こちらをご覧下さい。 https://www.excel.studio-kazu.jp/mag2/backnumber/mm20040713.html 「エクセルマイスター」より【エラー#num!など】
#VALUE!と言うエラー値は、今回の場合おそらく 「計算しようと思ったけど、値じゃないから計算出来ないよ」 っていうエクセル君の訴えだと思います。
もしも「B1/80*100」だけをセルに入力して それでも#VALUE!が出るなら、B1セルに数字以外の何かが入っていないか 確認してみてください。 例えば数式が入ってる場合で、IF関数を使っており「""」が返されていたり した場合、何も入っていない様に見えますが やはり、#VALUE!のエラー値が出ると思います。
単独では上手く行って、IF関数にすると上手く行かないのですかね?
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.