• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:if関数とAND関数の使い方)

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

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答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/8249)
回答No.5

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

emon2015
質問者

お礼

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

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答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% (7417/18945)
回答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