- ベストアンサー
エクセルのIF関数とAND関数を使い複数条件を設定する方法
- エクセルのIF関数とAND関数を使って、複数条件を設定する方法について教えてください。
- 「この関数に対して多すぎる引用が入力されています。」というエラーが出てしまう場合はどうすれば解決できますか?
- 質問者はD13のセルの値に応じて、特定の値を割り当てたいとしています。IF関数とAND関数を組み合わせて4つの条件を設定したいとのことです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
=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.4の別解です。 数値の区分をいると30未満を"1"と言う文字に置き換える、45以上なら"5"と言う文字に置き換える、その間の値は5増える毎に1を加算した数値を文字として返す処理になっています。 従って、次の数式で代替できます。 =MAX(MIN(INT(D13/5)-4,5),1)&""
- bunjii
- ベストアンサー率43% (3589/8249)
>そこで、次のように式を作ってみたのですが、「この関数に対して多すぎる引用が入力されています。」とエラーがでてしまいます。 数式の論理と返す値の指定が正しく施術されていません。 =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)
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")))) で同じ結果になりますけどね
お礼
適切なご指摘と、andを使うバージョンと使わないバージョンのご説明ありがとうございます。大変助かりました。
- 中京区 桑原町(@l4330)
- ベストアンサー率22% (4373/19606)
その条件に「and」は使いません =if(D13<=29,"1",if(D13<=34,"2",if(D13<=39,"3",if(D13<=44,"4",if(D13>45,"5"))))) and は「a」であり「b」でもあるの意味です
お礼
すばやい回答ありがとうございました。 andのご説明ありがとうございます。if関数だけでできること、納得しました。
お礼
別解まで、ご丁寧にありがとうございます。 そのような考え方もあるのだと、とても勉強になりました。