- ベストアンサー
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、を使って見たのですが、日付を扱うのは 初めてで、上手くいきません。 どうか、よろしく、お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#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"・・・何ヶ月経ったかは無視して日数を求める
その他の回答 (3)
- nanase_p_q
- ベストアンサー率60% (66/109)
#1,2のななせです。 &を利用したことによって文字列になってしまいましたね^^; 文字列は計算に利用できませんので、B4は & "年"をいれずに、セルの書式設定で 0"年" と指定したほうがいいのかも知れません。
お礼
はい。単純なエラーでした。 DATEDIF なんて、初めて目にした関数に面食らってしまいました。 無事、解決いたしました。 本当にお世話になりました。 あと、やっかいな計算ツールの作成が控えているのですが nanase_p_qさんや maron--5さんがいらっしゃると想うと心強いです。
- maron--5
- ベストアンサー率36% (321/877)
◆こんな方法もありますよ 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)&"年"
お礼
なるほど。こういう方法もあるのですね。とても、勉強になります。 やる気が湧いてきます。 ありがとうございました。
- nanase_p_q
- ベストアンサー率60% (66/109)
まず、今回使っていただきたい関数は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) & "ヶ月"
お礼
早々に回答いただき、早速実行しました。見事、成功!! ありがとうございます。 DATEDIFとヘルプに打ち込んでみましたが、"意味がわかりません"。と返ってきました。(笑) ‥そんな関数なんですね。 勉強します。 とても解りやすく説明していただき、感激です。(^^♪ +IF(DATEDIF(B1,B2,"MD")=0,0,1 この辺の概念は理解できます。 ところで、求めた年数 7 B4を別のセルの計算式に使用しているのですが、今のところ#VALUE! となりました。 少し、自分でがんばってみます。お手上げになったら、また、質問しますので、その際はよろしくお願いします。 感謝!