• ベストアンサー

Excel : 日にちの計算

【例】    (A列)        (B列) (1) 開始年月日:(入力) 平成12年10月1日 と表示  (2) 終了年月日:(入力) 平成19年4月16日 と表示 (3) 期 間 : 6年7ヶ月 ← これを表示させたい  (4) 期間年数 : 7年(6年1ヶ月でも6年11ヶ月でも)    ≪(3)期間を 6年7ヶ月 (4)期間年数を7年 と表示させたいのです≫ 平成12年10月1日~31日までが1ヶ月で あと、1日でも越えると11/1でも11/30でも2ヶ月とする。 平成12年10月1日~平成18年9月30日までが、6年で 平成18年10月1日~平成19年4月の1日でも31日でも             7ヶ月になります。 結果 B3に [6年7月] でも、 B3に[6] C3に年と打ち込み D3に[7] E3にヶ月と打っておく。 でも構わない。 最終的に 期間:6年7ヶ月は→期間年数:7年とする。  当然  期間:7年0ヶ月は→期間年数:7年       ( 6年12ヶ月と出る?)   【 期間の年数は○年 】 の結果が欲しい。 B1、B2への打込み方や書式設定(分類)とかも教えてください。 YEAR、や MONTH、IF、を使って見たのですが、日付を扱うのは 初めてで、上手くいきません。 どうか、よろしく、お願いします。

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

  • ベストアンサー
回答No.2

#1のななせです。 補足です。 式中に&を使っているのは、文字を結合する為です。 ="1月"&"1日" とすると1月1日となります。 【B3に入れる式】   =DATEDIF(B1,B2,"Y") & "年" & DATEDIF(B1,B2,"YM") + IF(DATEDIF(B1,B2,"MD")=0,0,1) & "ヶ月" 【B4に入れる式】   =DATEDIF(B1,B2,"Y") + IF(DATEDIF(B1,B2,"YM")=0,0,1) & "年" "Y"・・・満年数を求める "M"・・・満月数を求める "D"・・・満日数を求める "YM"・・・何年経ったかは無視して月数を求める "YD"・・・何年経ったかは無視して日数を求める "MD"・・・何ヶ月経ったかは無視して日数を求める

koro_orok
質問者

お礼

早々に回答いただき、早速実行しました。見事、成功!! ありがとうございます。 DATEDIFとヘルプに打ち込んでみましたが、"意味がわかりません"。と返ってきました。(笑) ‥そんな関数なんですね。 勉強します。 とても解りやすく説明していただき、感激です。(^^♪ +IF(DATEDIF(B1,B2,"MD")=0,0,1 この辺の概念は理解できます。 ところで、求めた年数 7 B4を別のセルの計算式に使用しているのですが、今のところ#VALUE! となりました。 少し、自分でがんばってみます。お手上げになったら、また、質問しますので、その際はよろしくお願いします。 感謝!

その他の回答 (3)

回答No.4

#1,2のななせです。 &を利用したことによって文字列になってしまいましたね^^; 文字列は計算に利用できませんので、B4は & "年"をいれずに、セルの書式設定で 0"年" と指定したほうがいいのかも知れません。

koro_orok
質問者

お礼

はい。単純なエラーでした。 DATEDIF なんて、初めて目にした関数に面食らってしまいました。 無事、解決いたしました。 本当にお世話になりました。 あと、やっかいな計算ツールの作成が控えているのですが nanase_p_qさんや maron--5さんがいらっしゃると想うと心強いです。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆こんな方法もありますよ     A         B 1  開始年月日  平成12年10月1日 2  終了年月日  平成19年4月16日 3  期  間     6年7ヶ月 4  期間年数    7年 B3=DATEDIF(B1,B2,"Y")&"年"&DATEDIF(B1,B2,"YM")+(DATEDIF(B1,B2,"MD")>0)&"ヶ月" B4=DATEDIF(B1,B2,"Y")+(DATEDIF(B1,B2,"MD")>0)&"年"

koro_orok
質問者

お礼

なるほど。こういう方法もあるのですね。とても、勉強になります。 やる気が湧いてきます。 ありがとうございました。

回答No.1

まず、今回使っていただきたい関数はDATEDIF関数です。 DATEDIF関数はなぜか関数リスト内にはなく、手入力をしなければいけないというご無体な関数です^^; =DATEDIF(B1,B2,"Y") 上の式を入力すると、年数が表示されます。 =DATEDIF(B1,B2,"YM") 上の式を入力すると、年数を無視して月数が表示されます。 6年7ヶ月としたい場合にはDATEDIF(B1,B2,"Y")とDATEDIF(B1,B2,"YM")を組み合わせることで可能になります。 そこでできるのがこんな式。 =DATEDIF(B1,B2,"Y") & "年" & DATEDIF(B1,B2,"YM") & "ヶ月" ここまでで出るには出るのですが、このままでは6年6ヶ月と1日のような場合にも6年6ヶ月になってしまいます。 そこで、DATEDIF(B1,B2,"YM")のほうに一工夫。 日数が0以外のときは+1するように変化させてみましょう。 =DATEDIF(B1,B2,"YM")+IF(DATEDIF(B1,B2,"MD")=0,0,1) ちょっとばかり複雑になってきましたね^^; そろそろまとめです♪ B3に入れる式は =DATEDIF(B1,B2,"Y") & "年" & DATEDIF(B1,B2,"YM")+IF(DATEDIF(B1,B2,"MD")=0,0,1) & "ヶ月"

関連するQ&A