
有給休暇管理表を作っている最中です。
前年度と今年度それぞれの付与日数を、入社日から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))))))

No.1ベストアンサー
- 回答日時:
有給休暇は勤続月数(或いはそれを年数表示した勤続年数)により、
付与日数が決定されます。
先ずは、以下のような有給休暇日数表を作りましょう。
勤続年数は小→大の順に並べます。
勤続月数(年数)、一般社員の有給休暇日数、定時社員の有給休暇日数
有給休暇を求める関数は次になります。
VLOOKUP(勤続月数、有給休暇日数表、(区別=一般社員)*2+(区別=定時社員)*3)
「区別」とは、「一般社員」か「定時社員」かが記入されたセルを指します。
「一般社員」の場合は、有給休暇日数表の2列目から選択されます。
IF関数の多重構造は、作るにも見直すにも間違い誘発の元なので、
できるだけ使わない方が良いです。
IF文のなかに条件値そのものを記載すると、条件変更の対応もまた大変です。
IF文は、多重構造利用は避けるべきです。
一番分かりやすく、丁寧にご説明下さり、ありがとうございました。
エクセル初心者ですが、お蔭様で正しく計算されるようになりました。
ベストアンサーとさせて頂きます。
ありがとうございました。
No.4
- 回答日時:
>社員・パート関係なく週の所定労働日数と・・・
>有給休暇の付与日数を計算させたい
一例です。
セルD2に =VLOOKUP(C2,F:G,2,1) の式を入れて下方向へ式をコピー。
添付画像を参照して下さい。
いろいろ突っ込みどころありますが、あなたの数式を見た途端 _ノフ○)))グタリ です。

No.2
- 回答日時:
基本的に・・自分で、間違っているかどうか判断できない関数作ってどうするの?ネスト深すぎ(笑)
プログラムのセンスが無さすぎますけど?
やりたいことが出来るために必要なデータを整理し、それらを使用して目的のものを求めるといった段階を踏んだワークシートを作成します。
結果的に本当に欲しいデータを得るためには印刷しない裏の部分も作成すべきです。
そうすることで論理的にわかりやすい構造のワークシートが出来上がります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの文字数列関数と競馬...
-
エクセルでフィルターした値を...
-
表計算ソフトでの様式の呼称
-
エクセルシートの見出しの文字...
-
エクセルに写真が貼れない(フ...
-
【マクロ】実行時エラー '424':...
-
【画像あり】【関数】指定した...
-
Office2021のエクセルで米国株...
-
【関数】3つのセルの中で最新...
-
LibreOffice Clalc(またはエク...
-
Excelで4択問題を作成したい
-
【画像あり】オートフィルター...
-
空白のはずがSUBTOTAL関数でカ...
-
エクセルのVBAで集計をしたい
-
Excelに貼ったXのURLのリンク...
-
エクセルのライセンスが分かり...
-
【マクロ】excelファイルを開く...
-
エクセルの複雑なシフト表から...
-
エクセルのリストについて
-
【関数】=EXACT(a1,b1) a1とb1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】実行時エラー '424':...
-
エクセルのVBAで集計をしたい
-
Office2021のエクセルで米国株...
-
【画像あり】オートフィルター...
-
vba テキストボックスとリフト...
-
他のシートの検索
-
【マクロ】【相談】Excelブック...
-
【マクロ】【配列】3つのシー...
-
【マクロ】元データと同じお客...
-
【マクロ】数式を入力したい。...
-
【マクロ】左のブックと右のブ...
-
エクセルの関数について
-
エクセルのリストについて
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】excelファイルを開く...
-
【関数】3つのセルの中で最新...
-
エクセルの複雑なシフト表から...
-
【マクロ】【画像あり】❶ブック...
-
LibreOffice Clalc(またはエク...
おすすめ情報