• ベストアンサー

6ヶ月経過日を算出する式

社員への有給付与日を管理する表をExcelで管理しようと考えています。 入社日を起点として6ヶ月を経過した日をExcelの式で計算することは可能ですか。 例 入社日 2014/04/01 → 2014/09/30 2014/04/22 → 2014/10/21 2014/10/15 → 2015/03/14 もし、可能なら式を教えて下さい。 宜しくお願いいたします。

  • buck
  • お礼率83% (627/748)

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 別案として・・・ A1セルからデータがあるとすると B1セルに =EDATE(A1,6)-1 でも大丈夫だと思います。m(_ _)m

buck
質問者

お礼

回答ありがとうございます。

その他の回答 (3)

回答No.4

残念ながら、まだ正解の回答は出ていないのではないかと考えております。大の月・小の月を考慮する必要があると思います。 「暦による 6 か月を超えない最後の日」を算出する数式は、ちょっと難しいですが、添付図の E1 セルのとおりではいかがですか。C 列や D 列だと、答えを誤っている行(黄色いセルの行)がありますよね。 各数式は、次のとおりとなっています。 A列  2014/8/25 など B1  6 C1  =edate(a1,b1)-1 D1  =date(year(a1),month(a1)+B1,day(a1)-1) E1  =edate(a1,b1)-(day(a1)=day(edate(a1,b1))) EDATE 関数は n か月後の日付を求めるわけですが、E1 の数式は、その n か月後の日の「年」、「月」、「日」のうち、「日」が元の日の「日」と同じである場合は 1 日を差し引き、そうでない場合は引かない、という計算をします。

buck
質問者

お礼

回答ありがとうございます。

回答No.3

No2さんの補足として EDATE関数を使います。 EDATE(値、月)で値の何か月後か、ってのをシリアル値で出します。 例えば EDATE(2014/4/1,6)なら2014/10/1になります。 その前日を知りたいのでその数値から-1する ”EDATE(2014/4/1,6)-1”で2014/9/30となります。 なんでA行に入社日、B行にEDATE(A1.6)-1 で希望する計算日がでます。

  • chie65535
  • ベストアンサー率43% (8516/19358)
回答No.1

A1に「入社日」を入力して、計算したいセルに =DATE(YEAR(A1),MONTH(A1)+6,DAY(A1))-1 の式を入力。

buck
質問者

お礼

回答ありがとうございます。

関連するQ&A

  • 有給休暇の付与日の調整

    有給休暇の付与日のことにつき質問します。 中途入社の社員の場合は、中途入社日をスタートにして計算し、半年後に10日を付与、さらに半年後から1年経過した時点で1日を加算した11日を付与しています。 これだと、社員1人1人で計算期間が異なるため、有給休暇の管理が面倒です。 社員全員の有給休暇の付与日を4月1日に合わせたいのですが、 1)労働基準法上問題はないでしょうか? 2)付与日を4月1日に揃えるとして、具体的にどういう方法でやればいいのでしょうか? 社員に不利にならないようにしなければいけないと思いますが、どなたか教えて下さい。

  • エクセル基準日を超えた日を表示させたい。

    エクセル2003です。初心者です。 現在、有給の管理表を作っています。 基準日2012/6/1 氏名  入社日     6ヶ月後    1年6ヶ月後   2年6ヵ月後  次回有給付与日  鈴木  2010/6/1   2010/12/1  2011/12/1   2012/12/1  2012/12/1 ↑こんな風に基準日を入れると、次回有給付与日の欄に、 この表の日付のうち、基準日を超えた日を表示できるようにしたいんですが、 そんあ関数はありますか? よろしくお願い致します。

  • 入社日から何年何日経過したかを知りたい

    エクセルの質問です。 日付の計算なのですが『入社してから何年と何日経過したか』を出す式はありますか? 【何年と何ヶ月と何日】ではなく【何年と何日】経過したかを求めたいのです。 宜しくお願い致します。

  • エクセルでの有給管理(繰越について)

    色々と検索しているのですが、 良い案が浮かばずに困っております。 どなたか知恵を貸していただけますと幸いです。 エクセルで有給管理の表を作成しているのですが、 この度、繰越分を作成する必要が出てきました。 その部分の管理(前回繰越・前回付与・前回消化・今回付与など) をどのような計算式にすればよいか悩んでいます。 現在の表では、勤務18ヶ月目(1年6カ月)以降の社員の有給は、 前年度の繰り越し分が足されることなく表示されている状態です。 ※有給は繰越が可能で最大20日まで。ただし、発行の日から2年間でなくなります。 社員の入社日がバラバラなので、管理で試行錯誤しております。 その他、添付の表の式は以下の通りです。 勤務年数:=datedif(入社日、現在の日付、"M") 有給付与数:=vlookup(勤続年数、続年数ごとの付与数の表、2) 有給消化数:=counta(有給取得日の範囲)+countif(有給取得日の範囲、"*h*")/2 ※半休を0.5計算しています。有給取得日の範囲に直接日付を入れて、管理する形を取っており、 なるべくここは変更せずに使用していきたいです 以上、長文となってしまいました。 説明が下手で申し訳ございません。 不備等がございましたら、補足を致します。 どうぞよろしくお願い致します。

  • 有給休暇の付与日数計算

    1月1日を基準日とした有給休暇付与の規程を作成しています。 4月1日に入社した社員には、6ヶ月を経過した10月1日に有給休暇10日付与し、翌年の1月1日には、さらに11日付与する計算で良いと思いますが、7月1日に入社した社員の場合、6ヵ月後の1月1日には何日付与すれば良いのでしょうか?11日で良いのか、10日+11日の21日付与するのか計算方法で迷っています。 また、同様に7月2日に入社した社員の付与日数の計算方法も迷っています。 何方かご教示下さい。

  • 関数で経過した特定の日付をカウントしたい

    Excelの関数の質問です。 関数で、例えば2016年6月1日から2019年4月1日までの「4月1日」をカウントするようなことはできるでしょうか。 有休管理表を作成しているのですが、4月1日に一斉付与なため「入社年月日から何か月経過したから何月に何日付与」といった手法が採れません(できるかもしれませんが思い浮かびません)。 表構成は2列で添付の通りです。 よろしくお願いいたします。

  • 有給休暇の付与日を統一したいのですが・・・

    社員100人位の会社の総務をしています。 現在社員の入社日によって有休付与日がバラバラで業務が繁雑な為、付与日の統一(基準日の統一)をしようと考えています。 入社後6ヶ月経過すると7ヶ月目に10日付与となっています。4月1日入社なら10月1日に10日付与されますよね。その付与日を全員4月1日に統一したいのです。 そうすると経過措置として来月の10月1日で何日付与すべきですか? 例えば今年4月1日入社だと本来なら10日付与されます。それを基準日4月1日までの経過措置分だけ付与してかまわないのですか?計算式にすると「10日÷12ヶ月×6ヶ月分=4.999・・・」四捨五入して(四捨五入はOKでしょうか?)5日。こんな計算でいいのですか? あと、今年の4月以降すでに付与してしまった社員に対しては基準日4月1日に経過分を引いて付与してもかまわないですか?例えば6月付与の社員にすでに12日付与済だったら基準日には「14日÷12ヶ月×-2カ月分=-2.33・・・」有利な方に四捨五入してマイナス2日の12日付与。 このやり方は違法になりますか?

  • 有給休暇 6か月後から開始の日は?

    「入社して6カ月経って出勤率が8割を超えている場合、有給10日間付与」のルールですが、 月途中の入社日の場合はどうなるのでしょう。 (例) 入社日=4月10日 給与管理=前々月26日~前月25日の給与を5日に支給 の場合、 10月9日までの休みは欠勤扱いで、 10月10日の休みから有給扱いにできるのでしょうか?

  • どの関数を使えばいいでしょうか?

    有給管理表をExcelで作成しています。 シート1に社員のデータ表を入力してあり、 シート2には有給が発生する社員へ有給の残日数や 付与日に関するお知らせの案内状を、付与日が近づいた社員分だけ をB5サイズで作っています。 シート1のデータを拾って、シート2の案内状へ反映させる際、 付与日や残日数などはVlookupで参照できるのですが、 社員番号は退職した社員がいるため番号が飛んでいて うまくできません。 またシート1は上から、4月入社→5月入社→6月入社・・という 具合に月ごとに並んでおり、 たとえば、上から2007年の4月入社社員、2008年の4月入社社員、 2007年5月入社社員、2008年5月入社社員というような 月ごとの並び順になっています。 IndexやMatch関数を使えばなんとかなりそうだと思い やってみましたが、VALUE!が表示されてしまいます。 どなたかうまくいく関数を教えて頂けますでしょうか? シート1のデータ例  A列   B列   C列   D列    E列 社員番号  氏名  入社日  付与日   付与日数 100001   くま  2007/4/1  2007/10/1  11 100100   たぬき 2008/4/1  2008/10/1  10 100003   うさぎ 2007/5/1  2007/11/1  11  100102   きつね 2008/5/1  2008/11/1  10 100006   ねこ  2007/6/1  2007/12/1  11 100103   いぬ  2008/6/2  2008/12/2  10  シート2(例)ページ1    B列   C列 B1 社員番号  100001←ここに式を入れたい B2 社員氏名  くま  さん(vlookupでC1を拾ってくる) B4 あなたの有給付与日は  2007/10/1 です。付与日数は 11 日です・・・・・・。 シート2 ページ2 B30 社員番号  100100 (←ページ1の次の該当者を拾いたい) B31 社員氏名  たぬき  さん B33 あなたの有給付与日は 2008/10/1 です。 付与日数は 10 日です・・・・・・。 このような感じです。社員番号が飛んでいても下の行を拾っていくような関数はありますでしょうか?(Index、Match関数以外でも結構です)

  • エクセル ○ヵ月後の日付を表示させたい

    エクセル2003です。エクセル初心者です。 現在、有給管理表を作成しています。 入社日から6ヵ月後に10日、1年6ヵ月後に11日、2年6ヵ月後に12日有給がつくようになっています。 氏名    入社日    有給10日    有給11日 鈴木   2010/06/1   2010/12/1   2011/12/1          ↑入社日を入れると有給10日、11日の欄に6ヵ月後、1年6ヵ月後の日付が自動的に表示されるようにしたいのですが、何か方法はありますか? 関数とかになるかと思うのですが。。。 よろしくお願い致します。

専門家に質問してみよう