• ベストアンサー

エクセルの期間計算について

期間を算出する数式かVBAを教えてください。 (1)2003/5/28~2003/6/27 = 1ヶ月間 (2)2003/5/28~2003/6/28 = 1ヶ月間 (3)2003/5/28~2003/6/29 = 2ヶ月間 と言う結果を出せるようにしたいのです。 どうしても(2)が2ヶ月になってしまいます。 て、言うかそもそも可能なのでしょうか?

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

>A1とB1がブランクなら”7日間”と表示されるのですね。それが消せたら最高なのですけども それなら、もう1つIFを入れて、 =IF(OR(LEN(A1)=0,LEN(B1)=0),"",IF(B1+1-A1<=7,"7日間",IF(B1+1-A1<=15,"15日間",DATEDIF(A1,B1,"M")+1&"ヶ月間"))) でどうですか。

noname#3789
質問者

お礼

パーフェクトです!『LEN()』という文字列を返す数式があるのですね。すごいっす。感謝っす。御礼はポイントで・・・ (^ー^)ノ

その他の回答 (3)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 A1とB1に日付が入力されているとすると、 =IF(B1+1-A1<=7,"7日間",IF(B1+1-A1<=15,"15日間",DATEDIF(A1,B1,"M")+1&"ヶ月間")) でよろしいですか。

noname#3789
質問者

補足

ご回答ありがとうございます。 最後の&"ヶ月間"を除けばきれいに計算できました。 多謝多謝です。 ただ、A1とB1がブランクなら”7日間”と表示されるのですね。それが消せたら最高なのですけども・・・ でも、本当にありがとうございました。助かりました!   間違って補足に書いてしまいましたが、御礼です!!!

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

(1)がA1セル 2003/5/28がB列 ~がC列 後の日付がD列 =がE列 F1セルを =JIS(DATEDIF(B1,D1-1,"M")+1)&"ヶ月間" として、F2セルとF3セルにコピーして見てください。

noname#3789
質問者

補足

ありがとうございます。 おっしゃるとおりでできました!! しかし、実はまだ条件があったのを忘れておりまして・・・。 すごい申し上げにくいことなのですけども・・・ 実は、    7日以内の期間なら” 7日間”   15日以内の期間なら”15日間” とも表示できるようにしたかったのです。 せっかくお答えいただきながら、更なる我儘を 申し上げて本当に申し訳ありません。 出来れば、で結構ですので宜しくご教授下さい。

  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.1

Datedif関数?

参考URL:
http://www.nils.ne.jp/~fuzzy/EXCEL/excel_004.htm
noname#3789
質問者

お礼

DATEDIF関数だと思っているのですが、私の知能では 解決できませんでした。 救いの手をさしのべていただきありがとうございました。

関連するQ&A

専門家に質問してみよう