- ベストアンサー
excelでのIF関数
excelで表を作っています。 0~29なら「2」、30~59なら「3」、60~79なら「4」、80~100なら「5」という関数を作りたいのですがうまくいきません。 『=IF(A1="","",IF(A1>=85,"A",IF(A1>70,"B",IF(A1>=50,"C",IF(A1>=30,"D","E")))))』というほかの方の質問されているIF関数を参考に作ったのですが…だめでした。 わかる方がいれば教えてください。 vlook関数は使わずに、if関数で作りたいです。 よろしくお願い致します。
- haru1133
- お礼率62% (108/174)
- オフィス系ソフト
- 回答数8
- ありがとう数8
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
80以上は5,0以下は空白にするのでしたら次の式で良いでしょう。大きい数値からIF関数を使って決めていきます。 =IF(A1="","",IF(A1>=80,5,IF(A1>=60,4,IF(A1>=30,3,IF(A1>=0,2,""))))) しかし、ご質問の数値の範囲を空白にするのでしたら次のようなANDを使った式にすることが必要です。この場合には範囲を一つ一つ決めていくことになりますので大きい数値から決めていく必要もありません。 =IF(A1="","",IF(AND(A1>=0,A1<30),2,IF(AND(A1>=30,A1<60),3,IF(AND(A1>=60,A1<80),4,IF(AND(A1>=80,A1<=100),5,""))))) 式の意味はもしもA1セルが空白の時は空白に、もしもA1の値が0以上で30未満の場合には2を、もしも30以上で60未満の場合には3を・・・・・・もしも80以上で100以下の場合には5にしなさいということになります。
その他の回答 (7)
=IF(A1<0,"tbd",IF(A1<30,2,IF(A1<60,3,IF(A1<80,4,IF(A1<101,5,"tbd")))))
お礼
ご回答ありがとうございました。
- MackyNo1
- ベストアンサー率53% (1521/2850)
参考までに。 >ただ、VLOOKUPは別表がいるのが面倒で使用したくないであれば次の様な関数は駄目でしょうか。 VLOOKUP関数でもLOOKUP関数と同様に配列定数を使用した数式にすれば別表の必要がありません。 すなわち、行方向のデータセットはカンマで、列方向のデータセットはセミコロンで区切った以下のような数式にします。 =VLOOKUP(A1,{0,2;30,3;60,4;80,5},2)
お礼
ご回答ありがとうございます。 別表を作りたくないということ、当たっています。 今後、質問を詳しく書くようにいたします。 セミコロンで区切る方法、初めて知りました。 こんな良い方法があるとは、勉強になりました!! ありがとうございました。
- MackyNo1
- ベストアンサー率53% (1521/2850)
>『=IF(A1="","",IF(A1>=85,"A",IF(A1>70,"B",IF(A1>=50,"C",IF(A1>=30,"D","E")))))』というほかの方の質問されているIF関数を参考に作ったのですが…だめでした。 「だめでした」では問題点がわかりません。 基本的には、例示された数式を、そのまま区切りの数値を代入すれば(必要に応じて条件を1つ削除)、うまくいくと思うのですが、具体的にどのような式を入力したら、どのような部分で問題が出たのか例示されたほうが良いと思います。 >vlook関数は使わずに、if関数で作りたいです。 条件が多くなる複雑な条件では、他の関数を併用するほうがわかりやすいと思います(別表を作成する必要はありません)。 今回のケースなら、例えば配列定数を引数にしたLOOKUP関数を利用して以下のような数式で求めるのが簡単です。 =IF(A1="","",LOOKUP(A1,{0,30,60,80},{2,3,4,5}))
お礼
ご指摘とご回答ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
このような場合、IF関数はネスト構造になり、数式が面倒や変更が難しくなるのでVLOOKUP関数が一般的です。 ただ、VLOOKUPは別表がいるのが面倒で使用したくないであれば次の様な関数は駄目でしょうか。 =LOOKUP(A1,{0,30,60,80},{2,3,4,5}) 因みにこの数式は未入力や100以上は別途考慮して下さい。
お礼
ご回答ありがとうございます。 教えていただいたとおり、VLOOKUP関数が一般的なのでしょうが、別表を使用したくなかったので、VLOOKUP関数を使わずにIF関数での方法を望みました。 質問の時に詳しく書けばよかったと…反省です。 しかし、今後VLOOKUP関数を使用する際に参考にさせていただきます。
- mzon
- ベストアンサー率48% (26/54)
最後の80が30の倍数とずれているのでちょっと工夫はいりますが、 『=IF(A1="","",IF(A1>=80,5,INT(A1/30)+2))』 としてやれば計算できますよ、 『INT(A1/30)+2)』で 0~29は「2」、30~59は「3」、60~79は「4」 となるのですが、 80~89が「4」になってしまうので、 『IF(A1>=80,5』で、80以上は5としてます。 また、IF文ですべてを書く場合は 『=IF( AND(0<=A1,A1<=29),2,IF( AND(30<=A1,A1<=59),3,IF( AND(60<=A1,A1<=79),4,IF( AND(80<=A1,A1<=100),5,""))))』 とすればできます。
お礼
考えてくださりありがとうございます。 いろんなやり方があるのですね。 参考になりました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No2です。説明文が間違っていましたね。訂正させていただきます。 しかし、ご質問の数値の範囲を空白にするのでしたら次のようなANDを使った式にすることが必要です。⇒ しかし、ご質問の数値の範囲以外を空白にするのでしたら次のようなANDを使った式にすることが必要です。
お礼
わざわざ訂正してくださり、ご親切にありがとうございます。 大変助かりました。
- lulula
- ベストアンサー率48% (23/47)
=IF(A1="","",IF(A1>=80,"5",IF(A1>=60,"4",IF(A1>=30,"3",IF(A1>=29,"2","2"))))) 間違っていたらすみません<(_ _)>
お礼
考えてくださりありがとうございます。 参考に致します。
関連するQ&A
- エクセル関数=IF(AND())で質問します。
初めまして、よろしくお願いします。 エクセルで A B C D E F 1 1 10 5 3 4 2 ・ 3 ・ このような表にB1、C1、D1三つの値の内一つでもE1より2倍以上の値がある場合にA1の値を抜き出す関数をF1に入力したいのですが、関数式 =IF(AND((B1)>=E1*2),A1,"") までは解るのですが、B1のみではなく、B1からD1までの範囲をどのようにすればいいのか解りません。 解る方、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルでif関数を組んだのですが。。。
エクセルでif関数を使って式を造ったのですが、上手く条件を選択 しません。何がおかしいのか分からない状態でこまっています。 どなたかお詳しい方、教えて下さい。 詳細は添付資料にあります。 a1 20 b1 1 c1 -1 d1 合 e1 19.5 =if((a1-abs(c1))<=e1<=(a1+b1),"合","不合") この式を入れると d1は不合になってしまいます。
- ベストアンサー
- その他MS Office製品
- Excelのif関数を使ったのですがうまくいきません。
Excelのif関数を使ったのですがうまくいきません。 | A | B | C | D | E ----------------------- 1 | A | A | A | A | 5 2 | B | A | A | B | 4 3 | C | C | A | C | 2 のようにA1~D4のセルに入力されたA,B,C の組み合わせによって E5のセルに1~5の数字を入れていきたいのですがAAAA~CCCCの組み合わせが 15通りあってif関数では入れ子ができません。 AAABもAABAも同じと判断させて1~5の数字を自動的に入力させたいのですが 何かいい方法はないでしょうか。 教えてください。
- ベストアンサー
- オフィス系ソフト
- エクセル IF関数 初心者です。。
A B C D Aさん 9:00 1 9:00 Bさん 10:00 2 9:30 Cさん 11:00 3 10:00 Dさん 12:00 4 10:30 Eさん 9:00 1 9:00 A列氏名 B列時間 C列 B列IF関数 9:00からは1、10時からは2、 11からは3・・・ D列はC列のVLOOKUP関数 1=9:00、2=9:30、3=10:00・・・ そこでお聞きしたいのですが・・ A B C D Aさん 9:00 1 9:00 Bさん 10:00 3 10:00 Cさん 11:00 4 10:30 Dさん 12:00 5 11:00 Eさん 9:00 2 9:30 IF関数を用いて IF(B1>=0.375),1,if(B1>=0.416666666666667),2,IF(B1>=0.458333333333333),3・・・ Eさんが2になるような数式がわかりません。 よろしくお願いします。。
- 締切済み
- オフィス系ソフト
- エクセルIF関数について
エクセルIF関数について エクセルのIF関数を利用して、重複するデータを抽出したいと思っています。 エクセルのIF関数を利用したことがないため、別の対応策があれば そちらも教えていただけませんでしょうか・・ 宜しくお願いいたします。 下記のようにA列に入っている1,2,3,4,5があり重複しているものをD列に一つにまとめ重複している1、5の合計分と重複していないものをEに表示させたいと思っています。 A B D E 1 1 123 1 249 2 1 3 2 3 3 1 123 3 345 4 2 3 4 234 5 3 345 5 1665 6 4 234 7 5 555 8 5 555 9 5 555 D1、E1にはどのような関数で対応するのが適しているのでしょうか?
- ベストアンサー
- その他(ビジネス・キャリア)
- Excel IF関数について質問です。
ExcelのIF関数について質問があります。 B2,C2,D2に入力されている文字を一つずつスペースを設けて、A1に自動的に入力されるような関数を作りたいのですが、どうしてもできません。 B2,C2,D2に文字が入力されていれば、=B2&" "&C2&" "&D2 という関数でこの問題は解決できます。 しかし、もしC2が空白なら、上記関数ですと、スペースが2つできてしまいます。 ●もし空白なら、スペースを作らないというIF関数を作りたく試行錯誤しましたが、できませんでした。 どなたかおわかりの方教えて頂けないでしょうか? よろしくお願い致します。
- ベストアンサー
- Excel(エクセル)
- エクセルの関数で2つの条件に合うものを探す。
エクセルの関数で下記のことをしたいのです。 表(1) T>=0.6 0.6>T>=0.3 0.3>T>=0.15 U<2 A B C 2<=U<3 B B-C D 3<=U<4 C C D 4<=U<6 D C-D D 6<=U E D D 別の表(2)に U T 1.5 0.3 0.9 0.8 5.9 0.13 ・ ・ ・ ・ とあります。 そのためUの値とTの値で表(1)のAからE値を抽出し別の表にAからEを表示したいのです。エクセルの関数(IF,AND,LOOKUP等)を試してみたのですがうまくいきません。できるだけエクセルの関数のみで、よい方法があれば教えてください。よろしくおねがいします。
- ベストアンサー
- その他MS Office製品
- EXCEL ワイルドカード IF関数
お世話になっております。 早速ですが質問です。 A1 発注先 B1 単価 C1 1 D1 2 E1 3 とあります。 A1の発注先が山田(C1)、鈴木(D1)、サトウ(E1)だったとき、B1に1か2か3の数字が現れるようにしたいのです。 式は B1に =IF(A1="","",IF(A1="山*",C1,IF(A1="鈴*",D1,IF(A1="サ*",E1,"")))) と作っているのですが、ワイルドカードが認識されません。 質問をする前に色々な質問をざっと読んでみたのですが、 やはりIF関数だとワイルドカードは認識されないのでしょうか? もし認識されないとしたら、他にどんな関数を用いたらよいでしょうか? 回答 宜しくお願いいたしますm(__)m
- ベストアンサー
- オフィス系ソフト
- エクセルのif関数のエラー
エクセルでif関数を使ってデータ処理をしたのですが、上手くいき ません。何がおかしいのかが分からない状態で困っています。 状況 A B C D E 1 : + = ? 関数式 とセルに入力してあるとします。(A1=:,B1=+,C1==,D1=?) 関数式のセルに以下の様に入力しました。 =IF(ISBRANK(D1)=TRUE,E1="",VLOOKUP(D1,$A$1$B$15,2,FALSE)) 目的はVLOOKUPだけではD1が空白の時にE1にNAMEと表示されるのを 避ける事でした。 そうすうとD1にA列の数字を入力すると、それに対するB列をE1に 表示するようになるのですが、D1が空白の時はB1が表示されて しまってます。 また一旦D1に入力した後、D1をデリートして空白にしてもE1には もとの数値がそのまま表示されたままになってしまいます。 文章で表現している分、かなり分かりにくい説明になってしまって いますが、お詳しい方いましたらアドバイスお願い致します。
- ベストアンサー
- その他MS Office製品
お礼
ありがとうございました。 IF関数を使いたかったので助かりました。