• ベストアンサー

勤務表で

IF関数を使い =IF(D24="a","0",IF(D24="b","0",IF(D24="c","0",IF(D24="d","8",IF(D24="e","11",IF(D24="f","7",IF(D24="g","6",IF(D24="h","8",IF(D24="i","8","10"))))))))) と入力したいのですが、 『入力した数式は正しくありません』と出ます。 正しく出す方法を教えて下さい。

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

  • ベストアンサー
  • hi6hi6
  • ベストアンサー率43% (13/30)
回答No.2

エラーになる理由はifの繰り返しの階層が深すぎるようです。 式から以下のようにしたいのだと思います。 (a,11のみ全角でしたが間違いかとおもい半角にしています) D24の値 → 結果 a,b,c → 0 d,h,i → i e → 11 f → 7 g → 6 その他 → 10 or関数を使って階層を深くしないようにすることができます。 これでどうでしょうか? =IF(OR(D24="a",D24="b",D24="c"),"0",IF(OR(D24="d",D24="h",D24="i"),"8",IF(D24="e","11",IF(D24="f","7",IF(D24="g","6","10")))))

その他の回答 (3)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

関数のネスト数は8層までなので「IF(D24="H"」でエラーになります。 別の関数は如何でしょうか。 =IF(ISTEXT(D24),LOOKUP(D24,{"a","b","c","d","e","f","g","h","i","j"},{"0","0","0","8","11","7","6","8","8","10"}),"")

  • noah7150
  • ベストアンサー率46% (116/251)
回答No.3

excelのバージョンは? 古いバージョンなら入れ子の数オーバーです a,b,cの"0"を止めてElseで "0"にすると通ります

回答No.1

 勤務表との事ですので、「変形労働時間制のシフト名とその労働時間なのかな」と推定しましたが、この情報だけではエラーの原因が判断できません。勤務表の様式はどのような様式か、このif関数を様式中のどのセルに入力するのか、IF関数の入力されたセルは他のセルの計算式の引数になっているのか等、不明な事ばかりです。  もう少し、詳細な説明を付けて、質問して下さい。

関連するQ&A