エクセルで期間から期間を足したり引いたりする方法

このQ&Aのポイント
  • エクセルのDATEDIF関数を使用して期間同士の計算を行う方法を教えてください。
  • 期間から期間を引く計算方法についても解説してください。
  • 具体的な例として、勤続年数と休職期間から実際の勤務日数を計算する方法をお教えください。
回答を見る
  • ベストアンサー

エクセルで期間から期間を足したり引いたりする方法を教えてください

期間から期間を引く計算方法を教えてください ○年○ヵ月○日から○年○ヵ月○日を引いて○年○ヵ月○日を表示する方法を教えてください。 たとえば、勤続年数が31年6ヵ月15日(A1)で休職期間が1年8ヶ月21日(A2)あった場合、実際に勤務についていた日数を祭日に関係なく、○年○ヵ月○日(A3)と表示させたい。 入社日  昭和52年9月16日 退社日  平成21年3月31日 在籍期間  31年6ヵ月15日 休職開始日 平成18年1月8日 休職終了日 平成19年9月29日 休職期間   1年8ヶ月21日 期間計算の方法はEXCELのDATEDIF関数で出してます。 期間同士を足したり引いたりする方法を教えてください。

  • Paiko
  • お礼率62% (49/78)

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

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.1

DATEDIF関数のバグはご存知ですよね? http://pc.nikkeibp.co.jp/article/NPC/20070530/272938/?P=3 日数計算の場合、このバグと同じ問題が常時付きまといます。 例えば、1ヶ月と20日から、1ヶ月と10日を引く場合、起点の月日次第で 答えは8日~11日まで変動します。コレをどう考えるかですね。 (例えば3月31日の1ヶ月と1日前は何日か、という問題がそうです) ですので、この計算は、期間の定義を正確に行わないと算出できません 特に勤続年数などの「金額に直結する計算」の場合、定義の違いで金額 が変わってしまいますので重大な問題になります。計算式の提示はその 定義が確定してからです。 ちなみにこれらの定義を100%何とかする場合は、大概、VBAでコードを 書かないと計算できないような、複雑な計算になります。

Paiko
質問者

補足

バグは知りませんでした。 1ヶ月を定義しないと無理なことがわかりました。 ありがとうございました。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

期間の前後から何年何ヶ月何日を引くことは起算日または終期をその分ずらせば可能でしょうが、期間の中で期間を差し引くことはできません。 やってみればわかりますがうるう年、大の月、小の月があるのでそんな計算はエクセルでなくともできません。 年数同士、月数同士を引く等で無理にやって出来なくはないでしょうが、実際に長い期間の方が短い期間の方よりも短く計算される、あるいはその逆の不都合が起き、意味のない数字になります。 なお、DATEDIF関数自体が不正確です。そのため、エクセルのヘルプにのせていないのです。 http://pc.nikkeibp.co.jp/article/column/20081118/1009774/?P=2

Paiko
質問者

お礼

ありがとうございました。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

単位が合わないので計算自体難しいと言うか無意味と言うか 1年は365日と366日が存在します 1月は28.29.30.31と4種類存在します たとえば >休職開始日 平成18年1月8日 >休職終了日 平成19年9月29日 >休職期間   1年8ヶ月21日 この求め方ですが確かに年、月、日だけをそれぞれ計算すれば 1年と8ヶ月と21日 になりますが、総日数で計算すると629日 仮に 休職開始を平成18年2月8日 休職終了を平成19年10月29日 とした場合、年月日だけで見ると例に挙げているのと同じ 1年と8ヶ月と21日 となりますが総日数は628日になってしまいます。 休職開始を平成18年3月8日 休職終了を平成19年11月29日 の場合は631日と日数計算だと開始日と終了日が異なると数日間の誤差が生じます。 はじめから日数だけで計算すれば、在籍期間から休職期間を引く事で実際の勤務日数を求める事は可能ですが、その日数からXX年YYカ月ZZ日と求める事自体あまり意味を成さないと言う事になります。

Paiko
質問者

お礼

ありがとうございました。

関連するQ&A

  • エクセルで期間から期間を引く方法を教えてください

    期間から期間を引く計算方法を教えてください ○年○ヵ月○日から○年○ヵ月○日を引いて○年○ヵ月○日を表示する方法を教えてください。 たとえば、勤続年数が31年6ヵ月15日(A1)で休職期間が1年8ヶ月21日(A2)あった場合、実際に勤務についていた日数を祭日に関係なく、○年○ヵ月○日(A3)と表示させたい。

  • エクセル関数で期間を求める方法について

    エクセル関数で期間を何年何ヶ月と1個のセルに求める方法が過去の質問の回答で A1にスタート(開始日) B1にエンド(終了日) C1セルに =DATEDIF(A1,B1,"Y")&"年" & DATEDIF(A1,B1,"YM") & "月" カレンダの応答日主義で1ヶ月を数える計算がありました。 これとは別に何年何ヶ月の月計算を属した日から属した日までの月数 (例)開始日2005年3月31日~終了日2005年4月1日の場合2ヶ月で計算させる方法を A1にスタート(開始日) B1にエンド(終了日) C1セルに 何と入れたら良いかどなたか教えてください。

  • 期間計算式を教えてください

    EXCELでの期間計算式を教えてください  例として2003年7月12日から2007年9月3日までの期間を何年何ヶ月と表示させる計算式を入力したいのですが、下記の計算式を入力すると「一ヶ月未満」が切り捨てられてしましまい、5年1ヶ月と表示されます。一ヶ月に満たない月も一ヶ月とする計算式を作成したいと思っています。例題であれば、5年3ヶ月と表記できる計算式を教えてください。  (始まりの期間をA1に終了をB1にそれぞれ記入し 期間をC1に表示させています。) =DATEDIF(A1、B1,"Y")&"年"&DATEDIF(A1,B1,"YM")&"カ月"  お願いします。

  • エクセルの期間計算

    基準日9月30日で入社した従業員の勤続月数をエクセルで計算しているのですが、入社日が1日の方だけ、正しく計算されません。 具体的には、4月1日入社で基準日9月30日で、6ヶ月と返してもらいたいのですが、5ヶ月で返ってきます。関数式は =DATEDIF(E20-1,$A$2,"Y")&"年"&DATEDIF(E20-1,$A$2,"YM")&"ヶ月" と入れております。$A$2が基準日になっています。  E20には入社年月が日付で入っています。 月の途中で入社した方は正しく○年○ヶ月と返されるのです。

  • エクセルで複雑な退職金の計算をしたいのですが

    Excel2007で次の退職金の計算をしたいのですがご教授願います。 起算日 A1 退職日 A2 在職期間 =DATEDIF(A1,A2,"y")&"年"&DATEDIF(A1,A2,"ym")&"ヶ月"&DATEDIF(A1,A2,"md")&"日"       ←この計算式で○年○月○日を計算しました。 その後次の計算が必要になります。 (1)在職年数に端数がある時は月割りで計算し、1ヶ月未満の端数は1ヶ月に切り上げる。  端数日数を1ヶ月単位に切り上げ、○年○ヶ月を求めます。 (2)在職年月に基本給を掛けて、更に係数を掛けて退職金を求める。  (○年+○ヶ月/12)×基本給×係数 となります。 そこで(1)をトライしてみましたが、(2)の方法がわからないので、(1)の検証もできません。 (1)の計算は次のように求めてみました。  =DATEDIF(A1,A2,"y")&"年"&DATEDIF(A1,A2,"ym")+(DATEDIF(A1,A2,"md")>0)&"ヶ月" この計算では在職期間が○年11ヶ月○日となった場合、求めた在職年数は○年12ヶ月となってしまい、年に繰り上がりません。従って(2)の方法に影響が出そうですが、(2)の方法自体がわからないのでお手上げ状態です。 (1)と(2)、あるいは最初の方法からからでも構いませんので、ご教授を頂きたいと思います。

  • 指定日付期間の算出の方法

    2000年11月1日から2002年3月31日までの 勤務年数と月数を、エクセル2000で計算しようとしています。 DATEDIFを使って、計算をしてみたのですが 1年未満の月数が「4ヶ月」と計算結果がでてしまいます。 これを「5ヶ月」と表示されるように計算式を作りたいのです。 単純に、終了期間を2002年4月1日にしたり、+1と入力すれば 欲しい計算結果を得られるのですが、このほかの方法がないか知りたいのです。 どなたかいい計算式を教えていただけないでしょうか?

  • エクセルで勤続年数を計算しているのですが・・

    いつもお世話になっております。 今回はエクセルの計算式について、ご指導の程お願い致します。 勤続年数の計算をexcel2007で管理したいと思っています。 例えば2011/12/21入社で、2012/3/20退社とします。 今までの計算からしますと、「0年3か月と0日」の勤続年数としたいのですが DATEDIFで計算しましたところ、「2か月と28日」となりました。 下記は現在の計算式です。 「=DATEDIF(A6,B6,"Y")&”年”&DATEDIF(A6,B6,"YM")&"ケ月"&(DATEDIF(A6,B6,"MD"))&"日"」 極端な話ですが、1/1入社で1/2退社ですと勤続年数は「2日」としていますので 単純に計算式に「+1」を加えると「2か月と29日」でカレンダーで勘定したところ正解ではあるのですが、「3か月と0日」にしたいと思っています。 基本的な考え方に問題があるのでしょうか? 色々調べてみたのですが、解決に至らず困っております。 ご指導の程、宜しくお願い致します。

  • Excel関数で出した勤続年数をポイントに換算する方法

    DATEDIFで勤続年数を計算しました。 その勤続年数をポイントに換算する方法はありますか? 例えば、 1975/6/19入社(A) 2009/3/31退社(B) DATEDIF(A,B,"y")+INT((DATEDIF(A,B,"YM")+1)/12)&"年"&MOD(DATEDIF(A,B,"YM")+1,12)&"ヶ月" で計算し、33年10ヶ月になりました。 これを、33.83に換算したいのです。 33年を33、10ヶ月を(年間12か月で割って)83 結果、33.83ポイントにしたいのですが、できますか? 説明が足りなければ補足します。 よろしくお願いします。

  • Excel 日数計算について

    Excelの日数計算について質問です。 H18.9.20(A2)からH19.2.22(B2)の期間を月数と残りの日数で表示すると =DATEDIF(A2,B2,"M")&"月" =DATEDIF(A2,B2,"MD")&"日" ここまでは何とかできましたが、 上記期間の1/2、及び1/3の月数と残日数を整数(端数は切捨て)で表示するにはどのような式が必要でしょうか? 月数は=DATEDIF(A2,B2,"M")で求めた月を1ヶ月30日で計算します。 よろしくご指導お願いします。

  • エクセルで勤続年数計算

    エクセルで勤続年数を管理したいのですが。。 入社日から、今日までの勤続年数計算で、 それに、休職期間を控除した計算式を作りたいのですが、 どういうふうにすればいいのでしょうか? わかる方、教えてください。 例えば、      1        2         3      4       5        A  入社日   休職開始日  休職終了日   今日   勤続年数 B  H10.4.1    H12.5.10    H13.8.1          ○年△ヶ月 で勤続年数がでればと思いまして。

専門家に質問してみよう