エクセルのIF関数とAND関数を使い複数条件を設定する方法

このQ&Aのポイント
  • エクセルのIF関数とAND関数を使って、複数条件を設定する方法について教えてください。
  • 「この関数に対して多すぎる引用が入力されています。」というエラーが出てしまう場合はどうすれば解決できますか?
  • 質問者はD13のセルの値に応じて、特定の値を割り当てたいとしています。IF関数とAND関数を組み合わせて4つの条件を設定したいとのことです。
回答を見る
  • ベストアンサー

if関数とAND関数の使い方

エクセルのif関数とANDをつかって複数条件を設定したいのですが、上手く行かずに困っています。 D13のセルの値が以下の場合 29以下なら”1” 30以上34以下なら”2” 35以上39以下なら”3" 40以上44以下なら"4" 45以上なら"5" そこで、次のように式を作ってみたのですが、 「この関数に対して多すぎる引用が入力されています。」とエラーがでてしまいます。 どなたか、お詳しい方、教えていただけたら幸いです。 お願い致します。 =IF(IF(D13<=45,"5"),AND(D13>=40,D13<=44),"4",IF(AND(D13>=35,D13<39),"3",IF(AND(D13>=30,D13<34),"2",IF(D13>=29,"1")))))

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

=IF(D13<=29,1, IF(AND(30<=D13, D13<=34),2, IF(AND(35<=D13,D13<=39,3), IF(AND(40<=D13,D13<=44),4,5)))) のような順番で「ヤリタイ事の言葉に沿った表現」で数式を書いてみると、間違い探しもやりやすいと思います。 まぁ既に寄せられている通り =IF(D13<30,1, IF(D13<35,2, IF(D13<40,3, IF(D13<45,4, 5)))) =IF(D13>=45,5, IF(D13>=40,4, IF(D13>=35,3, IF(D13>=30,2, 1)))) のような「計算の考え方」に慣れておいた方が、よりエクセルを簡単に使えるので練習してみて下さい。 #一応参考までに、IF関数の羅列じゃなく例えば =MATCH(D13,{0,30,35,40,45},1) などのような方法もありますが、まぁ無理にいろんな関数を使う必要もありません。

その他の回答 (4)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.5

回答No.4の別解です。 数値の区分をいると30未満を"1"と言う文字に置き換える、45以上なら"5"と言う文字に置き換える、その間の値は5増える毎に1を加算した数値を文字として返す処理になっています。 従って、次の数式で代替できます。 =MAX(MIN(INT(D13/5)-4,5),1)&""

emon2015
質問者

お礼

別解まで、ご丁寧にありがとうございます。 そのような考え方もあるのだと、とても勉強になりました。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

>そこで、次のように式を作ってみたのですが、「この関数に対して多すぎる引用が入力されています。」とエラーがでてしまいます。 数式の論理と返す値の指定が正しく施術されていません。 =IF(IF(D13<=45,"5"),AND(D13>=40,D13<=44),"4",IF(AND(D13>=35,D13<39),"3",IF(AND(D13>=30,D13<34),"2",IF(D13>=29,"1")))))          ↓ =IF(D13>45,"5",IF(AND(D13>=40,D13<=44),"4",IF(AND(D13>=35,D13<=39),"3",IF(AND(D13>=30,D13<=34),"2",IF(D13>=29,"1",""))))) IF関数の多重化で混乱していると思われます。

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

2番目のIFの場所が間違ってます。あと不等号の向きも一部間違えてます。 =IF(D13>=45,"5",IF(AND(D13>=40,D13<=44),"4",IF(AND(D13>=35,D13<=39),"3",IF(AND(D13>=30,D13<=34),"2",IF(D13<=29,"1"))))) まあこの場合AND条件使わないでも =IF(D13>=45,"5",IF(D13>=40,"4",IF(D13>=35,"3",IF(D13>=30,"2","1")))) で同じ結果になりますけどね

emon2015
質問者

お礼

適切なご指摘と、andを使うバージョンと使わないバージョンのご説明ありがとうございます。大変助かりました。

回答No.1

  その条件に「and」は使いません =if(D13<=29,"1",if(D13<=34,"2",if(D13<=39,"3",if(D13<=44,"4",if(D13>45,"5"))))) and は「a」であり「b」でもあるの意味です  

emon2015
質問者

お礼

すばやい回答ありがとうございました。 andのご説明ありがとうございます。if関数だけでできること、納得しました。

関連するQ&A

  • excelのand関数、IF関数について

    エクセルのand関数、IF関数について質問です。 非常に簡単なことで申し訳ないのですが、仮にセルA2が5でかつセルB2が0の時にtrueとしたいときの関数は=and(A2=5,B2=0)であっているでしょうか。また、これをIFの関数で表す場合、=IF(A2=5,IF(B2=0,1,0),0)で同じ意味になるでしょうか?(IFの方は条件を満たす場合を1、満たしていない場合を0としたつもりです) ANDの方の関数は、多分合っていると思うのですが…。エクセルに入力しても、正しい結果が得られなかったので、質問させていただきました。初心者です。つまらない質問で申し訳ないのですが、よろしくお願いします。 

  • エクセル関数=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を使って、下記のような複数の条件の時に、それぞれの計算結果を算出する式を作りましたが、単純に条件を並べただけで(IFとAND使用)、式が長くなってしまいます。これを短く出来る式の方法はありますでしょうか?(他の関数を使用する方法など)また、エクセルの関数の数式を応用編まで詳しく調べられるサイトをご存知でしたら教えてください。 (条件の例)R1への式入力 (1)A1がに"A"か"B"かを入力 (2)A1がAで、B2の値がC3以下の時、R1には8、C3より大きい場合は、B2-C3の値を表示 (3)A1がBで、B2の値がC3以下の時、R1には5、C3より大きい場合は、(B2-C3)/2の値を表示 といった条件を満たすものが作成したいです。 ちなみに私が作成した式は、 =IF(AND(A1=A,B2<=C3),8),IF(AND(A1=A,B2>C3),B2-C3,・・・・)って感じです。こんな方法しか無いでしょうか?

  • IF関数とAND関数の組み合わせについて

    IF関数を使用し下記の条件にしたいのですが、 どうにも行き詰っています。。どうすればいいのか、またもっといい方法があればご教授ください。 (1)A1には品番プラスアルファベットを入力(末尾に数量が1~9個なら「a」10~49個なら「b」50個~99個を「c」100個以上を「d」と入力する) (2)A2には数量を入力 A1とA2が合っているかを確かめA3セルにGOODかNGかを表示できるようにしたい。 A3セルに =IF(AND(RIGHT(A1,1)="a",A2<10),"GOOD",IF(AND(RIGHT(A1,1)="b",A2<50),"GOOD",IF(AND(RIGHT(A1,1)="c",A2<100),"GOOD",IF(AND(RIGHT(A1,1)="d",A2<=100),"GOOD","NG")))) A1セルの右から1文字目がaでかつ10より下ならGOODというふうに式を作ってみましたが。。。うまくいきません。 よろしくお願いします。

  • IF関数について(複合条件)

    B1のセルに入力する内容なのですが、 A1のセルが (1)0以下ならばB1も0 (2)0<A1<243576ならばそのままA1の値を使用 (3)243576以上ならB1も243576 という条件の式を入れたいのです。 IF関数をいろいろいじってみたのですが、どうにもうまくいきません。 詳しい方いらっしゃいましたら、お願いします。

  • IF関数について

    IF関数についてです。 ある値が100以上とか0以下とかの場合は入力は分かります。 教えていただきたいのは ある値が、100以上なら◎、0以上99未満なら○、-1以上-49未満なら△、-100以下なら× という様な式はどうのうに入力すればいいのでしょうか。

  • エクセルのIF関数とVLOOKUP関数について教えてください。

      A B C 1 A1 B1 C1 2 A2 B2 C2 ・ ・ ・ 上記のような表があり、セルX、Yに入力した値が2つの条件に合致した場合、セルZにC列の値を返すような数式を作っています。 たとえば、セルXの値がA1より小さく、かつ、セルYの値がB1より小さい場合にはセルZにC1の値を表示する、という数式を作りたいのです。 (ちなみにAn、Bn、Cnにはそれぞれ数字が入ります) =IF(AND(X<=A1,Y<=B1),C1,IF(AND(X<=A2,Y<=B2),C2,・・・ AND関数を利用してこのように数式を入れると、途中まではうまくいくのですが、引数が多いため途中からエラーが出てしまいます。 (引数の数は10個以上あります) IF関数とVLOOKUPを組み合わせればいいというところまではわかるのですが、どのように条件設定をすればいいのかがわかりません。 エクセル初心者で恐縮ですが、どなたか詳しい方いらっしゃいましたらご回答よろしくお願いいたします。

  • if(and)関数の数が8番目になるとエラーが出ます。

    関数の初心者です。宜しくお願い致します。 Excel2000使用 セルB1に下記の様な関数を15個入れていようとしていますが、7個までは問題なくなく正しく計算されます。8個目を入れますとエラーが出てきた進む事が出来ません。エラーの原因はどこにあるのでしょうか? ご指導願います。 =IF(AND(A1>=0,A1<=650999),0,IF(AND(A1>=651000,A1<=1618999),A1-650000,IF(AND(A1>=1619000,A1<=1619999),969000,IF(AND(A1>=1620000,A1<=1621999),970000,IF(AND(A1>=1622000,A1<=1623999),972000,IF(AND(A1>=1624000,A1<=1627999),974000,IF(AND(A1>=1628000,A1<=1799999),ROUNDDOWN(A1/4,-3)*2.4,))))))) ※ここまで7個は問題なく計算されます。 その後に8個目↓を入れますとエラーが出ます。 IF(AND(A9>=1800000,A9<=1999999),ROUNDDOWN(A9/4,-3)*2.8-60000) エラーは“入力した数式はエラーがあります。ヘルプ・・・・、数式を入力していない場合は(=)(-)を使用しないか・・・・” 確認した事は、 1.閉じ括弧「)」や「,」の確認 - 漏れはありませんでした。 2.7番と8番(ROUNDDOWNのついているもの)のみ、別のセルに移して見たら、エラーが出ず正常に作動します。 一つのセルに入力できる関数の数または、一つのセルに対する字数に制限されているのでしょうか? もしそうであれば、別な方法はありますか? 宜しくお願い致します。

  • エクセルの関数について(IF,AND関数)

    エクセルでIF,ANDを用いた関数計算の数式を作っているのですが、うまく出来ません。 どなたか詳しい方、教えて下さい。 たとえばこんな感じです。 ※条件は2個 ●第1条件~東京、大阪、北海道(3パターン) ●第2条件~数値の大小(3パターン) この2個の条件を満たす値、全部で9種類の計算パターンを実行できる数式を作ろうと思っています。 あともう1条件(IF文)入れたいのですが、これ以上入れると計算しません。 =IF(AND(B22>5000,B5="東京"),111,IF(AND(B22>=2000,B5="東京"),ROUND(300*B22^2/1000,4),IF(AND(B22<2000,B5="東京"),222,IF(AND(B22>5000,B5="大阪"),333,IF(AND(B22>=2000,B5="大阪"),ROUND(300*B22^2/1000,4),IF(AND(B22<2000,B5="大阪"),444,IF(AND(B22>5000,B5="北海道"),555,666)))))))

  • IF関数でできますか?

    次のような条件でIF関数は使えますか? Aの値が50以上,Bの値は60以上,Cの値は150以上として3つとも条件をクリアしていれば○、A,B,C3つのうちどれか2つまでクリアしていれば△、1つもしくは3つともクリアしていなければ×をつけたいのですが、IF関数を使えばいいのでしょうか?○はANDを使えばいいと思うのですが、△、×はどうすればいいのでしょうか?

専門家に質問してみよう