2009年11月25日
【Excel】期間の計算をしたい
Excelで期間の計算をしたい場合、DATEDIF関数というものが用意されていますが、
エクセルのヘルプには載っていません。入力支援もでないので自分で手打ちしないといけません。
元々、ロータス(なつかしい・・・)という表計算ソフトとの互換用に用意された関数だからのようです。
ただ、後述するんですが、日の数え方がわたくし的にはちょっとビミョーです。
関数の書き方は、
=DATEDIF("開始日","終了日","単位")
単位の種類は以下の6つ。
"Y":年。1年に満たない部分は切り捨て。
=DATEDIF("2009/1/1","2010/7/7","Y") の結果は1(年)
"YM":1年に満たない部分を月で取得できる。
=DATEDIF("2009/1/1","2010/7/7","YM") の結果は6(ヶ月)
(2010年の1月~6月までの6ヶ月。7月の1ケ月に満たない部分は切り捨て。)
"YD":1年に満たない部分を日で取得できる。
=DATEDIF("2009/1/1","2010/7/7","YD") の結果は187(日)
"M":月。1ヶ月に満たない部分は切り捨て。
=DATEDIF("2009/1/1","2009/4/15","M") の結果は3(ヶ月)
"MD":1ヶ月に満たない部分を日で取得できる。
=DATEDIF("2009/1/1","2009/1/15","MD") の結果は14(日)
(15日じゃありません。14日です。)
"D":日。期間内の日数を取得できる。
=DATEDIF("2009/1/1","2009/2/2","D") の結果は32(日)
(33日じゃありません。32日です。)
で、わたくしがやりたいのは
何ヶ月間今の仕事に携わっているか計算したいのと誕生日と現在の日付から今の年齢を計算したいのふたつ。
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ

エクセルのヘルプには載っていません。入力支援もでないので自分で手打ちしないといけません。
元々、ロータス(なつかしい・・・)という表計算ソフトとの互換用に用意された関数だからのようです。
ただ、後述するんですが、日の数え方がわたくし的にはちょっとビミョーです。
関数の書き方は、
=DATEDIF("開始日","終了日","単位")
単位の種類は以下の6つ。
"Y":年。1年に満たない部分は切り捨て。
=DATEDIF("2009/1/1","2010/7/7","Y") の結果は1(年)
"YM":1年に満たない部分を月で取得できる。
=DATEDIF("2009/1/1","2010/7/7","YM") の結果は6(ヶ月)
(2010年の1月~6月までの6ヶ月。7月の1ケ月に満たない部分は切り捨て。)
"YD":1年に満たない部分を日で取得できる。
=DATEDIF("2009/1/1","2010/7/7","YD") の結果は187(日)
"M":月。1ヶ月に満たない部分は切り捨て。
=DATEDIF("2009/1/1","2009/4/15","M") の結果は3(ヶ月)
"MD":1ヶ月に満たない部分を日で取得できる。
=DATEDIF("2009/1/1","2009/1/15","MD") の結果は14(日)
(15日じゃありません。14日です。)
"D":日。期間内の日数を取得できる。
=DATEDIF("2009/1/1","2009/2/2","D") の結果は32(日)
(33日じゃありません。32日です。)
で、わたくしがやりたいのは
何ヶ月間今の仕事に携わっているか計算したいのと誕生日と現在の日付から今の年齢を計算したいのふたつ。
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ

たとえばある仕事を1月1日から3月31日までやったとします。
「トータル何ヶ月間か計算したい」とき
=DATEDIF("2009/01/01","2009/03/31","M")
と書いて、個人的には
「3(ヶ月)」
という答えが欲しいのですが、このDATEDIF関数では
「2(ヶ月)」
という結果がでます。
一ヶ月に満たない日にちを取得するために
=DATEDIF("2009/1/1","2009/3/31","MD")
とやってみると
「30(日)」という結果がでます。
つまり、1月1日から3月31日は
2ヶ月と30日
だということです。
なので、「3ヶ月」という結果が欲しい場合は、
=DATEDIF("2009/1/1","2009/4/1","M")
という風に終了日を調整しないといけないです。
個人的にはちょっと面倒くさい・・・。
もうひとつ、
「誕生日と現在の日付から今の年齢を計算したい」とき、
=DATEDIF("誕生日","ある時点の日付","Y")
とすると、年齢が計算できます。
わたくしの誕生日はドラミちゃんと月日が同じなんですが
=DATEDIF("1977/12/2","2009/11/25","Y") で31とでます(汗
ちなみに
=DATEDIF("1977/12/2","2009/12/2","Y")
とすると、32ってちゃんと1才歳をとります・・・
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ

「トータル何ヶ月間か計算したい」とき
=DATEDIF("2009/01/01","2009/03/31","M")
と書いて、個人的には
「3(ヶ月)」
という答えが欲しいのですが、このDATEDIF関数では
「2(ヶ月)」
という結果がでます。
一ヶ月に満たない日にちを取得するために
=DATEDIF("2009/1/1","2009/3/31","MD")
とやってみると
「30(日)」という結果がでます。
つまり、1月1日から3月31日は
2ヶ月と30日
だということです。
なので、「3ヶ月」という結果が欲しい場合は、
=DATEDIF("2009/1/1","2009/4/1","M")
という風に終了日を調整しないといけないです。
個人的にはちょっと面倒くさい・・・。
もうひとつ、
「誕生日と現在の日付から今の年齢を計算したい」とき、
=DATEDIF("誕生日","ある時点の日付","Y")
とすると、年齢が計算できます。
わたくしの誕生日はドラミちゃんと月日が同じなんですが
=DATEDIF("1977/12/2","2009/11/25","Y") で31とでます(汗
ちなみに
=DATEDIF("1977/12/2","2009/12/2","Y")
とすると、32ってちゃんと1才歳をとります・・・
この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ

タグ :Excel
【Excel 】右クリックのメニューが違う
Excelの列ラベルが数字になった
優先的に使用するExcelを指定するコマンド
【Excel】メモリが不足しています。完全に表示できません。
Excel 行列を入れ替える
Excelでマクロを使ってないのに警告が出る
Excelの列ラベルが数字になった
優先的に使用するExcelを指定するコマンド
【Excel】メモリが不足しています。完全に表示できません。
Excel 行列を入れ替える
Excelでマクロを使ってないのに警告が出る
Posted by ようすけ at 09:00│Comments(0)
│Excel