• ベストアンサー

EXCEL関数を利用した経過年月の算出方法について

技術系のサラリーマンです。現在EXCELを利用した作業表の作成をしていますが次の様なケースの場合の関数の使い方で悩んでいます。 ・客先への商品の引渡し日が決まっていて、その日までを現在から計算した到達までの年月表示。若しくは引渡し日から現在までの経過年月を算出する方法。 関数に堪能な方からの助言をお願いします。

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

  • ベストアンサー
  • saburo0
  • ベストアンサー率35% (76/216)
回答No.2

いろいろやり方はあるとは思いますが、一例という事で。 経過年月とのことですので、年月で表してみます。 現在から引渡し日までの経過年月については、 セルA1:「=today()」→【2005/4/14】 ※現在の日付 セルB1:「2007/3/2」→【2007/3/2】 ※引渡し日の日付 セルC1:「=DATEDIF($A$1,B1,"m")」→【21】 ※現在の日付から引渡し日の日付までの経過月数 セルD1:「=INT(C1/12)」→【1】 ※経過月数を12で割り、小数点以下切り捨て。つまり経過年数 セルE1:「=C1-D1*12」→【9】 ※経過月数から経過年数分を除いた月数 セルF1:「=D1&"年"&E1&"ヶ月"」→【1年9ヶ月】 ※値を文字列結合し、経過年月を見やすくした形 引渡し日から現在までの経過年月については、セルA1とセルB1を逆転させて、算出してみて下さい。 このようのでは、いかがでしょうか?

houkigumo
質問者

お礼

v(^_^v)♪ございました!!!。=DATEDIF関数という存在を知りませんでした。それをうまく年数と月数に振り分けるアイデアも納得できます。おかげさまで早速利用させていただきます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

下の方の補足のようになりますが。 もし同じセルに到達までの日数と経過日数を表示させようとするのならば。 現在を2005/05/14とした場合… ---------------- | A | B 1|日数|引渡日 2|式 |2005/04/14 3|式 |2005/05/14 4|式 |2005/06/14 ---------------- [A2][A3][A4]には以下のように入れてみましょう。 =IF(B2<TODAY(),DATEDIF(B2,TODAY(),"D")&"*",DATEDIF(TODAY(),B2,"D")) (A3とA4はB2をB3、B4に変える) これで、[A2]は[30*]、[A3]は[0]、[A4]は[31]となり、すでに経過しているのかまだ到達していないかの区別も[*]で付くようになります。 (&"*"を消せば普通に日数だけ表示されます) (TODAY()の部分をセル選択にすることも出来ます) ただ、例えば自分が作るときはEXCELの日付の扱いに依存しながら下のように =B2-TODAY() だけ書いて、セルの書式設定で「表示形式」を「数式」「マイナス値を赤で表示」を選ぶというちょっとずぼらな方法を選ぶと思います。 これで日数を経過したものは赤く表示される寸法です。 この場合は日数の表記しか出来ませんが…。 以上、あまり役に立たない回りくどい方法かもしれませんが、少しの参考にでもなれれば幸いです。

houkigumo
質問者

お礼

補足説明v(^_^v)♪ございました。経過したか否かの判定をその表示セルでしたいと欲望が出てきます。条件式は難しいですがチャレンジしてみます。

すると、全ての回答が全文表示されます。
回答No.1

DATEDIF(開始日、終了日、単位)単位は"Y"は年、"M"は月、"D"は日。DATEDIFが入力されているセルの表示形式は標準で。 DATEDIF(2005/4/7、2006/4/20、"D")のように。 開始日、終了日はセル指定でも構いません。

houkigumo
質問者

お礼

v(^_^v)♪ございました。そんな関数があったんですね気付きませんでした。早速利用させていただきます。

すると、全ての回答が全文表示されます。