- 締切済み
月数の計算
Excel2013使用です A1に日付2014/1/1と入っていて、B1に先月末までの月数を表示したいです。 10月18日にエクセルを開いたら9月30日までの月数を数えるので 「45」と表示させたいのですが、ご教授お願い致します。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
=DATEDIF(A1,EOMONTH(TODAY(),-1),"m")+1 先月末日の日付は、EOMONTH関数で今日の日付と1ヶ月前を指定して出す。 DATEDIF関数で、A1の日付と、先月末日の差の月数を出す。 「差」なので、1月と12月の差は11ヶ月と出してくるため、1を足す。 もしくは、無条件に前月末までの月数なので、簡単に =DATEDIF(A1,TODAY(),"m")
- bunjii
- ベストアンサー率43% (3589/8249)
期間を論じるとき誤解が起こり易い条件があります。 今回の場合は起算日が2014年1月1日なので起算月の端数が無いと解釈できますが、満了月がエクセルを開いた日と解釈すると月末に開いたとき1ヶ月と評価するのか、当日を含まない端数とするかを明確にする必要があります。 また、起算日が月の中間のとき満了月の端数との関わり方を定義する必要もあるでしょう。 1ヶ月の日数は一定していませんので、1月1日から2月1日迄と2月1日から3月1日迄の日数には3日の差があります。 これも計算の条件に組み入れないと正しい結果を得られません。 基本的には下記の数式で良いと思います。 =DATEDIF(A1,TODAY(),"M") 今日の日付「TODAY()」は期間に含まれませんので含めるときは「TODAY()+1」としてください。 尚、DATEDIF関数は用法によって正しい結果を得られないとされていますので目的に合うか否かはあなた自身で判断してください。
- mt2015
- ベストアンサー率49% (258/524)
=DATEDIF(A1,TODAY()-DAY(TODAY()),"M")+1 こんな感じで良いのでは?
- imogasi
- ベストアンサー率27% (4737/17069)
#1にすでに回答が出ていて、正しいだろうと思います。 ーー 検討済みかもしれませんが https://support.office.com/ja-jp/article/2-%E3%81%A4%E3%81%AE%E6%97%A5%E4%BB%98%E9%96%93%E3%81%AE%E5%B7%AE%E5%88%86%E3%82%92%E8%A8%88%E7%AE%97%E3%81%99%E3%82%8B-8235e7c9-b430-44ca-9425-46100a162f38 にあるエクセルのDATEDIF関数(有名)があります。 これを使うと、 A,B、C、D、E列 2014/1/1 2017/9/30 36 8 44 B列は=DATEDIF(A1,B1,"y")*12 C列は=DATEDIF(A1,B1,"ym") で両者の和は44です。1か月違いがあります。 私には今はその理由の説明が思いつきません。 式はこのほうが簡単になりそうなので、興味があれば、考えて、差が出る(修正できるか)訳を教えてください。 根本的に小生が間違っていたらお騒がせしました。
- kawais070
- ベストアンサー率52% (2242/4283)
=DATEDIF(A1,DATE(YEAR(NOW()),MONTH(NOW()),0),"y")*12+DATEDIF(A1,DATE(YEAR(NOW()),MONTH(NOW()),0),"ym")+1 こんな感じでできました。