• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:IF関数の応用?自動表示される数式を教えてください。)

IF関数の応用?自動表示される数式を教えてください。

このQ&Aのポイント
  • 質問内容は、IF関数を使用して自動的に表示される数式を求める方法についてです。
  • 条件に応じて、黄色のセルにレベルが自動的に表示される方法を知りたいです。
  • IF関数とAND関数を組み合わせて試みましたが、うまくいきませんでした。

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

  • ベストアンサー
回答No.9

=MIN(4,IF(B2=0,0,IF(B2=1,99,1)),IF(B3<0.7,1,IF(B3=1,99,2)),IF(B4<0.7,2,IF(B4=1,99,3)),IF(B5<0.7,3,IF(B5=1,99,4))) これだと、5レベルが追加されても式の一部を変更するだけですみます。 ・最高でも4レベル =MIN(4, ・レベル1の%が入力されていない場合はレベル0、レベル1が100%なら上位レベル、でなければレベル1。IF(B2=0,0,IF(B2=1,99,1)), ・レベル2の%が70%未満の場合はレベル1、レベル2が100%なら上位レベル、でなければレベル2。IF(B3<0.7,1,IF(B3=1,99,2)), (以下同様)

17504113
質問者

お礼

回答いただき、ありがとうございます。 ほんとだ!! できました!! MINでもできるんですね! 思いつかなかったです。 説明も簡潔でわかりやすかったです。 助かりました。 ありがとうございます!!

その他の回答 (8)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.8

複雑な入れ子のIF関数が作成しにくい場合は、すべてのレベルに対して、それぞれの結果を表示する式を直列でつなげるのが簡単かもしれません。 レベル1(B2が空白でなく、B2が1未満またはB3が0.7未満) =IF(AND(B2<>"",OR(B2<1,B3<0.7)),1,"") レベル2 =IF(AND(B2=1,B3>=0.7,B3<1),2,"") レベル3 =IF(AND(B2=1,B3=1,B4>=0.7,B4<1),3,"") レベル4 =IF(AND(B2=1,B3=1,B4=1,B5>=0.7),4,"") まとめると =IF(IF(AND(B2<>"",OR(B2<1,B3<0.7)),1,"")&IF(AND(B2=1,B3>=0.7,B3<1),2,"")&IF(AND(B2=1,B3=1,B4>=0.7,B4<1),3,"")&IF(AND(B2=1,B3=1,B4=1,B5>=0.7),4,"")

17504113
質問者

お礼

回答ありがとうございました。 しかし数式をコピペすると「数式中に対応するかっこがありません」 と表示されてしまいました(T△T) 自分でも試行錯誤で下記の数式に落ち着きました。 =IF(AND(B2=100%,B3=100%,B4=100%,B5>=70%),"レベル4",IF(AND(B2=100%,B3=100%,B4>=70%),"レベル3",IF(AND(B2=100%,B3>=70%),"レベル2","レベル1"))) 考え方、勉強になりました!どうもありがとうございます! また困ったときは助けてくださいm( _ _ )m

回答No.7

#6です。訂正です。人の訂正してないで、自分のをよく見ろって言われそう(>o<") C3セルの =IF(AND(B2=1,B3>=0.7,C2<>""),"合格","不合格") は良いのですが C4セルは =IF(AND(B3=1,B4>=0.7,C3<>"不合格"),"合格","不合格") 下へオートフィルでした あと=IF(C2="","","レベル"&COUNTIF(C2:C5,"合格")) はC8セルへの入力ですね

17504113
質問者

お礼

私の質問の説明がわかりづらかったと思います。 ごめんなさい。 試行錯誤で下記の数式に落ち着きました。 =IF(AND(B2=100%,B3=100%,B4=100%,B5>=70%),"レベル4",IF(AND(B2=100%,B3=100%,B4>=70%),"レベル3",IF(AND(B2=100%,B3>=70%),"レベル2","レベル1"))) どうもありがとうございました。 また何かあったら是非よろしくお願いしますm( _ _ )m

回答No.6

#2のmshr1962さんの方法で少々訂正と独自解釈をいれて =IF(AND(SUM(B2:B4)=300%,B5>=70%),4, IF(AND(SUM(B2:B3)=200%,B4>=70%),3, IF(AND(B2=100%,B3>=70%),2,IF(B2>0,1,"")))) 早い話、ANDの終わりのカッコを忘れてるということです。 良い案だと思うので参考にさせていただきました で当方は作業列案 C2セル =IF(B2>0,"合格","") C3セル =IF(AND(B2=1,B3>=0.7,C2<>""),"合格","不合格") 下へオートフィル B8セル =IF(C2="","","レベル"&COUNTIF(C2:C5,"合格")) ちなみに 標準の表示形式で計算可能(数値と判断される)な値は右揃えになります。 日付や「$80」、「100%」など

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

質問の内容が複雑で判りにくい。 下記横列(下記で第1行)もレベル1,2,3,4判定後(下記でA列)も質問ではレベル1,2,3,4となっているが、紛らわしいと思い、判定後はランク1,2,3,4としてみた。 ーー 質問をそのまま表にすると ー レベル1 レベル2 レベル3 レベル4 ランク1 あり * * * ランク2 100 70以上 * * ランク1 80 70以上 * * ランク3 100 100 70以上 * ランク4 100 100 100 70以上 ーー 補足要求。 質問の言わんとする意味の疑問点。 (1)*の部分は入力されることはないのか。入力されても無いものとする? (2)100の個所は100%に限ると言うことですね。 100%未満ではどのランクに行くのか? (上例でランク3、4などの場合は?) (3)80は80%以上の意味か(質問では以上が抜けたのか?) レベル1の数値は100%か80%のどちらかしか入れないのか? (4)「あり」のところは100%以外もありえるのですね? (5)>ランク2 100 70以上 * * の例の場合70%未満ではランクはどうなるのですか? (6)各レベルでの100%は、該当が良くあるケースなのか。他の場合では、100%は普通のイメージでは、パーフェクトで、そんなに該当がないケースを想像するが。 >数字を手入力します。(0%~100%) ならレベル1も100%以外も入力される、80%未満もある、70%もそれ未満も在るようだな。 具体的なイメージがわかない。 レベル1-4 ーーー 一見したところ、VBAでも使わないと(場合分けが自由に出来ないと。ユーザー定義関数)関数では複雑になりすぎるように思うが。

17504113
質問者

補足

=IF(AND(B2=100%,B3=100%,B4=100%,B5>=70%),"レベル4",IF(AND(B2=100%,B3=100%,B4>=70%),"レベル3",IF(AND(B2=100%,B3>=70%),"レベル2","レベル1"))) が私のやりたい事の答えでした。 どうもありがとうございました。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.4

おっと…添付された図を見るのを忘れてた 手で入力するのは数値ですよね。 文字列として入力した場合 単位の%はそのまま文字になるので 演算子(=,>=など)は使えません。 %を表示させたいのでしたら、セルの書式設定で「パーセテージ」を選択しましょう。 100%を1とする小数を入力するだけで%記号が表示されます。 あるいはセルの書式設定の「ユーザー定義」で%を付加する書式を書くかですね。  例:0"%"

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.3

上手くできなかったと言う関数を示してもらえると、どう直せば良いのか、どう考えれば良いのかを示す事ができるんですけど…まあいいか。 まず成立する条件を書き出す  条件1:下記以外すべて  条件2:すべて AND 、Level1=100、Level2>=70  条件3:すべて AND 、Level1=100、Level2=100、Level3>=70  条件4:すべて AND 、Level1=100、Level2=100、Level3=100、Level4>=70 それぞれを数式にしてみる  条件2:AND(Level1=100,Level2>=70)  条件3:AND(Level1=100,Level2=100,Level3>=70)  条件4:AND(Level1=100,Level2=100,Level3=100,Level4>=70) Level○は該当するセルに書き直すこと (この AND関数を複数使ったときの組み合わせができなか 演算子 >= が分からないのだろうと推測する) あとは IF関数で組み合わせればOK 試行錯誤してがんばれ  「IF関数を使った組み合わせが分からない(´;ω;`)」 なんて泣きごと言うんじゃないよ  =IF(条件3,結果3,IF(条件2,結果2,結果1)) などとするだけだ これはあくまでも一例です。 他にもやり方は多数ありますが、やはりどのようなアプローチをするかを示してくれないと方法を絞り込むことができません。

17504113
質問者

お礼

=IF(AND(B2=100%,B3=100%,B4=100%,B5>=70%),"レベル4",IF(AND(B2=100%,B3=100%,B4>=70%),"レベル3",IF(AND(B2=100%,B3>=70%),"レベル2","レベル1"))) として、やりたい事ができました。 Cupperさんのおっしゃってる事で、私が質問している内容は間違いありません。 すごく参考になりました。 が、数式もこれに限っているわけではないですし、 この数式を見て、これよりもっと簡単にできるのに、 と思われる方もいらっしゃると思うので、 色々なやり方を知りたかった、というところもあります。 どうもありがとうございます。 また何かあればよろしくお願いします(泣き言も聞いてください。笑)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

説明の通りなら =IF(AND(SUM(B2:B4)=300%,B5>=70%,4,IF(AND(SUM(B2:B3)=200%,B4>=70%,3,IF(AND(B2=100%,B3>=70%,2,IF(B2>=70%,1,"")))) または =(B2>=70%)+(B2=100%)*(B3>=70%)+(SUM(B2:B3)=200%)*(B4>=70%)+(SUM(B2:B4)=300%)*(B5>=70%)

17504113
質問者

お礼

ありがとうございます!! 質問の意味をちゃんと捉えていただき、ありがたいです!! (わかりづらい説明なのに感動です) 教えていただいた1つ目の式はエラーが出てしまいましたが、 2つ目はバッチリです!! 回答も簡潔でわかりやすいです!ありがとうございます!!

  • lesskey
  • ベストアンサー率33% (66/200)
回答No.1

>IF関数とAND関数を混ぜて色々やってみましたが、 その色々やった途中の数式はありませんか? それを元に考えた方が分かりやすいと思うので、あれば提示してください。

17504113
質問者

お礼

試行錯誤で =IF(AND(B2=100%,B3=100%,B4=100%,B5>=70%),"レベル4",IF(AND(B2=100%,B3=100%,B4>=70%),"レベル3",IF(AND(B2=100%,B3>=70%),"レベル2","レベル1"))) に落ち着きました。 お騒がせしました、ありがとうございました。 また困った時は助けてくださいm( _ _ )m

関連するQ&A