アプリ版:「スタンプのみでお礼する」機能のリリースについて

有給休暇管理表を作っている最中です。

前年度と今年度それぞれの付与日数を、入社日から6ヶ月後から起算し、関数で計算させたいのですが、上手くいきません。
別シートで、社員・パート関係なく週の所定労働日数と、週の所定労働時間が入った表を作っています。その情報から、判別用セルで一般社員ならA、パートタイマー(比例付与)ならBと判別させ、それぞれの勤続日数と、パートなら1年間の所定労働日数(都度手入力する予定)に応じて有給休暇の付与日数を計算させたいと思っています。
現状、今年度付与日数のセルに、下記のようなIF関数のネストで関数を入れてますが、FALSEと表示されてしまいます。1年間の所定労働日数を入れるとFALSEと出ます。
本来であれば、3と表示されるべきところなのですが…どこがどう間違っているのか分かりません。
そもそも有給付与日数を一般・パート合わせて関数で計算させること自体に無理があるのでしょうか。

ご教示願います。
よろしくお願い致します。

Excelのver.は2010です。

※今年度付与日数※ 前年度は【経過日数】から「-12」しています。
=IF(【一般orパート判別用セル】="A",IF(【経過日数】<6,0,IF(【経過日数】<18,10,IF(【経過日数】<30,11,IF(【経過日数】<42,12,IF(【経過日数】<54,14,IF(【経過日数】<66,16,IF(【経過日数】<78,18,IF(【経過日数】<90,20,20)))))))),IF(【所定労働日数(年)】="",0,IF(OR(【所定労働管理シート!週の所定労働日数】=1,【所定労働管理シート!週の所定労働時間】>=30),IF(AND(【所定労働日数(年)】>=48,【所定労働日数(年)】<=72),IF(【経過日数】<6,0,IF(【経過日数】<18,1,IF(【経過日数】<30,2,IF(【経過日数】<42,2,IF(【経過日数】<54,2,IF(【経過日数】<66,3,IF(【経過日数】<78,3,IF(【経過日数】<90,3,3))))))))),IF(OR(【所定労働管理シート!週の所定労働日数】=2,【所定労働管理シート!週の所定労働時間】>=30),IF(AND(【所定労働日数(年)】>=73,【所定労働日数(年)】<=120),IF(【経過日数】<6,0,IF(【経過日数】<18,3,IF(【経過日数】<30,4,IF(【経過日数】<42,4,IF(【経過日数】<54,5,IF(【経過日数】<66,6,IF(【経過日数】<78,6,IF(【経過日数】<90,7,7))))))))),IF(OR(【所定労働管理シート!週の所定労働日数】=3,【所定労働管理シート!週の所定労働時間>=30),IF(AND(【所定労働日数(年)】>=121,【所定労働日数(年)】<=168),IF(【経過日数】<6,0,IF(【経過日数】<18,5,IF(【経過日数】<30,6,IF(【経過日数】<42,6,IF(【経過日数】<54,8,IF(【経過日数】<66,9,IF(【経過日数】<78,10,IF(【経過日数】<90,11,11))))))))),IF(OR(【所定労働管理シート!週の所定労働日数】=4,【所定労働管理シート!週の所定労働時間>=30),IF(AND(【所定労働日数(年)】>=169,【所定労働日数(年)】<=216),IF(【経過日数】<6,0,IF(【経過日数】<18,7,IF(【経過日数】<30,8,IF(【経過日数】<42,9,IF(【経過日数】<54,10,IF(【経過日数】<66,12,IF(【経過日数】<78,13,IF(【経過日数】<90,15,15))))))))),0))))))

「IF関数のネストについて教えてください。」の質問画像

A 回答 (4件)

有給休暇は勤続月数(或いはそれを年数表示した勤続年数)により、


付与日数が決定されます。
先ずは、以下のような有給休暇日数表を作りましょう。
勤続年数は小→大の順に並べます。
  勤続月数(年数)、一般社員の有給休暇日数、定時社員の有給休暇日数

有給休暇を求める関数は次になります。
VLOOKUP(勤続月数、有給休暇日数表、(区別=一般社員)*2+(区別=定時社員)*3)
「区別」とは、「一般社員」か「定時社員」かが記入されたセルを指します。
「一般社員」の場合は、有給休暇日数表の2列目から選択されます。

IF関数の多重構造は、作るにも見直すにも間違い誘発の元なので、
できるだけ使わない方が良いです。
IF文のなかに条件値そのものを記載すると、条件変更の対応もまた大変です。
IF文は、多重構造利用は避けるべきです。
    • good
    • 0
この回答へのお礼

一番分かりやすく、丁寧にご説明下さり、ありがとうございました。
エクセル初心者ですが、お蔭様で正しく計算されるようになりました。
ベストアンサーとさせて頂きます。
ありがとうございました。

お礼日時:2018/03/09 18:11

>社員・パート関係なく週の所定労働日数と・・・


>有給休暇の付与日数を計算させたい

一例です。
セルD2に =VLOOKUP(C2,F:G,2,1) の式を入れて下方向へ式をコピー。
添付画像を参照して下さい。
いろいろ突っ込みどころありますが、あなたの数式を見た途端 _ノフ○)))グタリ です。
「IF関数のネストについて教えてください。」の回答画像4
    • good
    • 0

関数分けろよ。

    • good
    • 1

基本的に・・自分で、間違っているかどうか判断できない関数作ってどうするの?ネスト深すぎ(笑) 



プログラムのセンスが無さすぎますけど?

やりたいことが出来るために必要なデータを整理し、それらを使用して目的のものを求めるといった段階を踏んだワークシートを作成します。

結果的に本当に欲しいデータを得るためには印刷しない裏の部分も作成すべきです。
そうすることで論理的にわかりやすい構造のワークシートが出来上がります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています