• ベストアンサー

エクセル 関数 実日数を月数に直す方法

どなたかご存知でしたらご教示いただければ幸いです。 一言でうまく説明出来ないので、例を記載させていただきます。 したい事は保有月数を表示させたいのですが、月の途中から保有した場合は一律0.5ヶ月と表示させたいのです。 2008年5月14日~2008年8月26日   の場合は3.5ヶ月 2008年7月4日~2008年8月31日    の場合は1.5ヶ月 2008年7年6日~2008年7月29日     の場合は0.5ヶ月 と、月中からスタートした場合は最初の月を一律0.5ヶ月、逆にendはend日が月中でも月末日でもend日を含む月は0.5ではなく1ヶ月とカウントしたいのです。 お手数をおかけいたしますが、 どうぞ宜しくお願い致します。

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

  • ベストアンサー
  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.11

ANo.1&5&6&10のjo-zenです。再度補足します。 B2,C2セルが空白の場合、エラーが返されてしまいますので、それを回避するには、以下の式にしてみてください。 =IF(OR(B2="",C2=""),"",(IF(DAY(B2)=1,DATEDIF(DATE(YEAR(B2),MONTH(B2),1),DATE(YEAR(C2),MONTH(C2)+1,1),"m"),DATEDIF(B2,DATE(YEAR(C2),MONTH(C2)+1,1)-1,"m"))&IF(DAY(B2)=1,".0",".5"))*1)

515131
質問者

お礼

ありがとうございます! 無事完成しました。 助かりました。きちんと勉強しようと思います。 ありがとうございました。

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

その他の回答 (11)

noname#204879
noname#204879
回答No.12

[ANo.9この回答へのお礼]に対するコメント、 》 一点質問なのですが・・・ 二点質問されているような気がします。 「EOMONTH(開始日、月)」でなく EOMONTH(開始日,月) が正しいですが、その「手持ちの関数の本」の該当する解説は正しいです。 》 (その)説明だけではロジックがわからなくて なぜ分からないか理解できません。 「月」が 1、2、3、… なら 翌月、翌々月、翌々々月、… であり、-1、-2、-3、… なら 前月、前々月、前々々月、… であること。ならば、0 は翌月と前月の狭間の当月になるという次第。 》 0.5+0.5*(DAY(A1)=1の式の=1というのはどういう意味なのでしょうか? 式は正確にお願いします。正しくは 0.5+0.5*(DAY(A1)=1) です。 [ 「式の=1」の部分でOKなんですね。 式 =DAY(A1)=1 は、セル A1 が日付が一日(ツイタチ)のときに TRUE を返します。 セル A1 が 2008/7/1 や 2009/9/1 のとき、式 =DAY(A1) は 1 を返します(だから =DAY(A1)=1 は TRUE になる)が、2008/7/2 や 2010/10/3 のとき 式 =DAY(A1) はそれぞれ 2 や 3 を返します(だから =DAY(A1)=1 は FALSE になる)。 TRUE、FALSE を四則演算(+、-、*、/ の記号を使う計算)ではそれぞれ 1、0 の役目をすることを覚えておいてください。 この位の説明で勘弁してください。(^_^)

515131
質問者

お礼

>なぜ分からないか理解できません。 。。。すみません。 でも、説明いただいて理解出来ました。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.10

ANo.1&5&6のjo-zenです。補足します。 数値で出したいなら、以下のように式を変形してあげればOKだと思います。 D2セルなどに、 =(IF(DAY(B2)=1,DATEDIF(DATE(YEAR(B2),MONTH(B2),1),DATE(YEAR(C2),MONTH(C2) +1,1),"m"),DATEDIF(B2,DATE(YEAR(C2),MONTH(C2)+1,1)-1,"m"))&IF(DAY(B2)=1, ".0",".5"))*1 全体に1をかけてあげることにより、文字列を数値に変換するやり方です。  

全文を見る
すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.9

=DATEDIF(A1,EOMONTH(B1,0),"m")+0.5+0.5*(DAY(A1)=1) 不具合な開始日あるいは終了日があれば、具体的な年月日をお知らせください。

515131
質問者

お礼

ありがとうございます、全て正確に出来ました。 一点質問なのですが 手持ちの関数の本でEOMONTHを調べたのですが、 EOMONTH(開始日、月) 開始日から指定した月数だけ前(または後ろ)の最終日に対応するシリアル値を返す。 と説明してあるのですが、教えてくださいましたマクロの(B1,0),"m")部分がそれにあたるのですよね。いまいち本に書かれてある説明だけではロジックがわからなくて・・・ また0.5+0.5*(DAY(A1)=1の式の=1というのはどういう意味なのでしょうか? 質問をしてしまいまして申し訳ございません。 もし可能であればで構いませんが、今後の為に教えていただければ大変嬉しいです。

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.8

#4です。 =(YEAR(B1)-YEAR(A1))*12+(MONTH(B1)-MONTH(A1))+((DAY(B1)<>1)+(DATE(YEAR(A1),MONTH(A1)+1,0)<>A1)/2)-(DAY(B1)>DAY(A1)) 上記で結果は 7月23日 9月01日 2.5 5月14日 8月26日 3.5 7月04日 8月31日 1.5 7月06日 7月29日 0.5

515131
質問者

お礼

上記で結果が 2008/6/25~2009/10/15が17.5  (正しくは16.5) 2008/7/15~2010/7/15が25.5   (正しくは24.5) となってしまいます。。

全文を見る
すると、全ての回答が全文表示されます。
  • dghjty145
  • ベストアンサー率46% (42/90)
回答No.7

Ano2のものですが、 7/23と9/1で、2.5と計算できていますよ。

515131
質問者

お礼

すみませんでした。 理由はわからないのですが、使用しているPC(エクセル)がたまに故障するのですが、一度閉じて試みるとうまくいく場合が多いので、一度閉じてやってみましたところ、この関数もうまくいきました。 ご迷惑をお掛け致しました。 本当に助かりました。ありがとうございます!

515131
質問者

補足

度々申し訳ございません。 先程の日付では大丈夫だったのですが 2008/7/25~2010/7/15等、他の日付だとうまくいきません。 上記期間だと0.5になります。 おわかりになりますでしょうか・・・?

全文を見る
すると、全ての回答が全文表示されます。
  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.6

ANo.1&5のjo-zenです。 >Start dateが2008/7/23  で End dateが2008/9/1です。 ⇒当方のパソコン(Excel)では、2.5ヶ月と表示されますよ。式は、再度貼り付けますが、  =IF(DAY(B2)=1,DATEDIF(DATE(YEAR(B2),MONTH(B2),1),DATE(YEAR(C2),MONTH(C2)+1,1),"m"),DATEDIF(B2,DATE(YEAR(C2),MONTH(C2)+1,1)-1,"m"))&IF(DAY(B2)=1,".0ヶ月",".5ヶ月") となります。

515131
質問者

お礼

すみませんでした! 理由はわからないのですが、使用しているPC(エクセル)がたまに故障するのですが、一度閉じて試みるとうまくいく場合が多いので、一度閉じてやってみましたところうまくいきました。 ご迷惑をお掛けしてすみませんでした。 ありがとうございました!!!

515131
質問者

補足

すみません!! これ、テキスト形式で表示されてしまうのですが、テキスト形式ではなく普通のナンバー表示にするにはどうすれば宜しいでしょうか??

全文を見る
すると、全ての回答が全文表示されます。
  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.5

ANo.1のjo-zenです。 >試してみたのですが、本来2.5ヶ月になる場合は0.5ヶ月となってしまうのですが ⇒どういった日付を入れられたのか教えていただけますでしょうか。よろしくお願いします。

515131
質問者

お礼

すみません、0.5ではなく2でした。 (他の方の回答を試みた結果と混ざってしまいました。。。すみません) Start dateが2008/7/23  で End dateが2008/9/1です。 宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

これでいいのかな? =(YEAR(B1)-YEAR(A1))*12+(MONTH(B1)-MONTH(A1)+((DAY(B1)>DAY(A1))/2

515131
質問者

お礼

ありがとうございます。 でも、すみません。。。 2.5と表示されて欲しいところが2と表示されてしまいます。 試した例は2008/7/23~2008/9/1です。 どうぞ宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.3

A1  2008年5月14日 B1   2008年8月26日 一例 =IF(OR(A1="",B1=""),"",TEXT(DATEDIF(A1,B1+1,"m")+IF(DAY(A1)=1,0,0.5),"G/標準"))

515131
質問者

お礼

ありがとうございます。 試してみたのですが、2.5ヶ月と表示したいところが1.5ヶ月と表示されてしまいます。 すみません、またご教示いただけますでしょうか。 どうぞ宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
  • dghjty145
  • ベストアンサー率46% (42/90)
回答No.2

データが以下のように、なっていたとします。[開始がA1] 開始        終了      月数 2008年5月14日 2008年8月26日 3.5 2008年7月4日 2008年8月31日 1.5 2008年7月6日 2008年7月29日 0.5 2008年7月1日 2008年7月29日 1.0 1.日付の表示は文字なっていますが、実データは 2008/5/14のように   入力するものとします。 2.月数の列の書式設定の表示形式は、数値で、小数点以下の桁数は1   と設定します。 月数の下のセルC2に以下の計算式をコピーしてから、計算式を下に ドラッグしてコピーします。 =IF(A2*B2=0,"",IF(DAY(A2)=1,MONTH(B2)-MONTH(A2)+1,MONTH(B2)-MONTH(A2)+0.5)) 計算がおかしかったら、連絡をお願いします。

515131
質問者

お礼

ありがとうございます。 試してみたのですが、2.5となるべきところ、1とでてしまいます。 試した日程は start dateが2008/7/23  で  End dateが2008/9/1  です。 どうぞ宜しくお願い致します。

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

関連するQ&A

  • エクセル関数で期間を求める方法について

    エクセル関数で期間を何年何ヶ月と1個のセルに求める方法が過去の質問の回答で A1にスタート(開始日) B1にエンド(終了日) C1セルに =DATEDIF(A1,B1,"Y")&"年" & DATEDIF(A1,B1,"YM") & "月" カレンダの応答日主義で1ヶ月を数える計算がありました。 これとは別に何年何ヶ月の月計算を属した日から属した日までの月数 (例)開始日2005年3月31日~終了日2005年4月1日の場合2ヶ月で計算させる方法を A1にスタート(開始日) B1にエンド(終了日) C1セルに 何と入れたら良いかどなたか教えてください。

  • エクセルを活用して、ある期間の月数を求めるには?

    よろしくお願いします。 就任の年月日から、退任の年月日の月数を求めるもので 退任の月は、カウントしません。 例えば、 下記のセルのC1に、答えを入れたい。 この求める式を教えて下さい。 先般、教えていただいた DATEDIFで求めようと しているのですが、日付が影響して上手く求めれません。 セルには、必ず、日まで打ち込みますが、求めるのは、 月数だけです。   A1 B1  C1 H8.5.21 H14.9.20 76ヶ月  上記のように76という数値になれば良いのですが。 

  • エクセルでの期間計算(月末数でカウント)

    エクセルで月数をカウントしたいのですが、 月末に在籍した場合はカウント、 月末に居ない場合はカウントしない、 と言う形で月数を求める良い方法はありますか? 例) 初        末       結果 4月1日    4月10日    0 4月1日    4月30日    1 4月1日    5月10日    1 4月1日    5月25日    1 4月1日    6月1日     2 4月10日   4月25日    0 4月10日   5月5日     1 4月10日   5月25日    1 4月10日   6月1日     2 このようなイメージですが、良い方法はありますでしょうか?

  • 年金の月数の計算について教えてください。

    年金の月数の計算について教えてください。 (以下、仮定の内容としてお聞きします。) ↓(過去、年金保険料を支払っておらず、平成22年12月~から支払いをスタートすると仮定します。) 1、昭和50年1月12日生まれ(現在36歳)→平成47年1月12日(60歳) 2、上記で290ヶ月+24ヶ月(2年さかのぼって支払える分~)=314か月 3、平成47年分は年度(3月まで~ととらえるので)+2ヶ月 4、314+2=316ヶ月 よって、300ヶ月を満たすと思われます。 (また、この場合16ヶ月分は掛け捨てなると思うのですが支払わないで済む方法はありますか?) 上記のような理解であっていますでしょうか? 間違いがあればご指摘いただけないでしょうか。よろしくお願いします。

  • Excelで在職年月数が表示されるように設定したい

    Excelで質問です。 ある日付から年数と月数を出したいのですがうまくいきません。 例えば、セルA1に入社した日付(例えば2000年4月)があり、B1に○年○ヶ月(例えば7年1ヶ月)と在職年月数が表示されるように設定したいのですが、うまくいきません。 DATEDIF関数を使ったら年数は表示されても月数は出ません。 何か良い方法はあるのでしょうか?

  • 遅延月数管理 エクセル 日付関数

    エクセルで売掛金回収遅延管理をしております。 恐れ入りますがどなたか教えてください。 売上計上日(月末)から翌月末日が回収期限で、 それ以降は遅延扱いとしています。 現在(2007/04/30)までの遅延月数を、 レベルに分け、金額を表示するには どのようにしたらよろしいでしょうか? 例えば↓ 現在2007/04/30で A(売上計上日)、B(金額)、C(遅延12ヶ月超)、D(遅延12ヶ月未満) 1、2005/10/31 、100000、  100000    、 2、2006/12/31 、80000、          、  80000 というデータがあり、上記の表だとC1には100000が、D2には80000が 表示されるように関数を組むことは可能でしょうか? 今まで毎月手打ちで管理しております。大変苦労が多いので、 何とか関数で効率よくなるようお助けください。 宜しくお願いいたします。

  • 月数の計算

    月数の計算で「何ヶ月目」か計算したいのですが、どのように関数を入れればいいでしょうか? (例)始まりが2月の日にちの場合(2/2でも2/25でも)は、2月中は全て1ヶ月目と表示させていのです。3月になると2ヶ月目というふうに・・・ ご存知の方は宜しくお願いします。

  • ふたつのセルに年月日を入力するとその間の月数・日数を表示

    Excelです。 例えば、A1セルに2003年10月1日と入力し、A2セルに2004年11月10日と入力したとします。 このとき、A3セルにこの間の日数を表示させるにはどのような関数を使って計算式を入れればよいでしょうか? さらにこのA3セルを参照し、月数を計算させ、A4セルに(1~∞)表示させるにはどうすればよいでしょうか?ただし、このとき30日未満は何らかのメッセージを表示させて月数は表示させないようにしたいです(これはIF関数を使うのでしょうか?)

  • 月数の計算

    Excel2013使用です A1に日付2014/1/1と入っていて、B1に先月末までの月数を表示したいです。 10月18日にエクセルを開いたら9月30日までの月数を数えるので 「45」と表示させたいのですが、ご教授お願い致します。

  • Excel 日数計算について

    Excelの日数計算について質問です。 H18.9.20(A2)からH19.2.22(B2)の期間を月数と残りの日数で表示すると =DATEDIF(A2,B2,"M")&"月" =DATEDIF(A2,B2,"MD")&"日" ここまでは何とかできましたが、 上記期間の1/2、及び1/3の月数と残日数を整数(端数は切捨て)で表示するにはどのような式が必要でしょうか? 月数は=DATEDIF(A2,B2,"M")で求めた月を1ヶ月30日で計算します。 よろしくご指導お願いします。

このQ&Aのポイント
  • Lenovo E590ノートPCを利用しています。ここ2週間以内で無線LANの速度が出なくなってしまいました。
  • 他のデバイスでは150-200以上の速度が出ていますが、このPCではひどいと20Mpbs以下、昼間も30MPbs程度です。
  • 有線LANでは正常な速度が出ていますが、無線LANでは速度が遅くてオンライン会議で音切れがひどく困っています。
回答を見る

専門家に質問してみよう