• ベストアンサー

Excelで大変困っています。

先ほども質問したのですが、自分の説明が悪く分かりにくかったようなので…。 Excelで日付の計算をしたいんですが、条件がありましてそれで困っています。条件は全ての月の一ヶ月の単位を三十日で計算する事です 例( 12月1日+30=1月1日    2月1日+30=3月1日    2月1日+40=3月10日) それとセルは三つまでしか使えません。 例えばA1セルに元の日付、B1セルにたされる値、C1セルにたされた結果の日付こんな感じでだしたいんですが、全然分からなくて相当悩んでいます。 ヒントだけでも教えて頂けないでしょうか? 分かりくい説明だったらすいません。 よろしくお願いします。

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

  • ベストアンサー
  • suekun
  • ベストアンサー率25% (369/1454)
回答No.4

これは日付として計算するより、IFとかで数字と捉えて計算するしか ないと思いますよ。 エクセル上は日付はシリアル値として認識されます。 シリアル値として扱われた時に、どうしても4月1日足す30日は 5月2日になるのです。 30という制限で変化させたいなら、30進法ですから、 月の数値と日の数値を切り分けて日の数値の計算結果で月の数値を 触るしかないと思います。 ちなみに見た目上だけでよければ、必ず二桁表示が約束で、 セルの書式を 00"月"00"日" とする事で、数値101は01月01日になります。 考え方は、下ふたけたを計算させて、結果から30越えれば超えた回数だけ上の数値に加える。

thugs13
質問者

お礼

解決しました! ありがとうございます。 また何かありましたらお願いします!

その他の回答 (5)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんにちは。 30日、一ヶ月と換算させるという意味なのですから、  12月1日+30=1月1日 これはよいとしても、以下は、違いますね。   2月1日+40=3月10日 3月11日 になると思います。 それは、DAYS360() の裏返しの計算ですね。  >それとセルは三つまでしか使えません。 という条件ですと、 A1 起算日 B1 間の日数 C1 に以下の数式 =A1+MATCH(B1,INDEX(DAYS360($A$1,$A$1+ROW(INDIRECT("A1:A"&B1))),,),1) というような数式になるかと思います。これは、難問ですね。

thugs13
質問者

お礼

本当にありがとうございます!! =A1+MATCH(B1,INDEX(DAYS360($A$1,$A$1+ROW(INDIRECT("A1:A"&B1))),,),1) これのおかげで無事解決しました!! 助かりました!! また何かありましたらよろしくお願いします! ありがとうございました

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.5

証券関係などでは1年を360日とみなして計算するそうですが、そのような背景でしょうか 最初に確認です >2月1日+30=3月1日 >2月1日+40=3月10日 2月1日の30日後が3月1日になるのは分かります。でも40日後は3月11日でなければならないと思うのですが、この考えで合っていますか? それでよいなら、A1に基準日、B1に日数を入力してC1に  =EDATE(A1,INT(B1/30))+MOD(B1,30) を入力して、セルの書式を日付形式にしてください あまり境界条件の検証は行っていませんが、概ね期待に添えると思います。

thugs13
質問者

お礼

解決しました!! =EDATE(A1,INT(B1/30))+MOD(B1,30)でも 日付形式にして試したんですけど、これだと表示されませんでした。 でも本当にありがとうございます。 また何かありましたらよろしくお願いします。

  • Kame_LABO
  • ベストアンサー率24% (30/122)
回答No.3

条件「全ての月の1ヵ月の単位を30日で計算する」の意味をもう少し詳しく説明して下さい。 12月1日+31=1月2日 12月2日+30=1月2日 2月1日+31=3月2日 2月2日+30=3月2日 2月3日+29=3月1日 2月1日+29=2月28日 2月1日+28=2月28日 2月1日+27=2月28日 となるのでしょうか?

thugs13
質問者

お礼

解決しました。 分かりにくくてすいません。 ありがとうございました

thugs13
質問者

補足

えっとですね 2月3日+29=3月2日で 2月1日+29=3月1日 2月1日+28=2月29日OR3月1日 となるようにしたいのです。

  • konkonlun
  • ベストアンサー率34% (38/109)
回答No.2

A1のセルには年から入力する必要があると思います。 入力は例えば2007/4/07というように入力し、A1のセルの書式設定を「日付」にします。 日付の中から○月○日と書いてある表示を選びます。 そしてB1のセルの書式設定は数値のまま。 C1には=A1+B1で書式設定を「日付」にするとそのように表示されます。 質問の主旨と合っていますか?

thugs13
質問者

お礼

解決しました! 分かりにくくてすいませんでした。 またなにかありましたらお願いします! ありがとうです

thugs13
質問者

補足

すいません 説明不足でした。 A1には年月日を入れ、B1に加算する値、C1に加算された年月日 が表示されるようにしたいんですけど、B1に30と入れたら無条件で 一ヶ月後が表示されるようにしたいんです。 A1に2007年1月31日と記述して、B1に30と記述して、その結果C1には 2007年2月28日と表示されるようにしたいんです。

  • chipatan
  • ベストアンサー率45% (183/401)
回答No.1

通常日付は「12月1日」とセルに表示されていても、内部ではシリアル値というもので計算されていますので、難しいかと思います。 ちなみに「12月1日+30=1月1日」と例がありますが、これでは一ヶ月が31日という概念になってしまうのではないでしょうか? できましたら捕捉をお願いしたいのですが、 (1)年号は関係ありますか? (2)セルの制限はなんとかなりませんか? (3)目的からもっと良い方法がわかるかもしれません。簡単にご説明いただければ、もう少しお力になれるかもしれませんが。。。 お役に立てずすみません。補足、お待ちしております。

thugs13
質問者

お礼

解決しましたありがとうございました! また何かありましたらよろしくお願いします。

thugs13
質問者

補足

分かりにくくてすいません。 (1)2007/10/31←このように記載して、30たすと一ヶ月後の2007/11/30 となるようにしたいのです。 (えっと年号は関係ありますか?の意味はこれで大丈夫でしょうか?) (2)セルの制限は三つじゃないとダメだそうです。 (3)目的ですか?元の年月日に日数を足したいみたいで、 それが10区切りで足していくものらしく、面倒だから30=一ヶ月という定義でやりたいみたいです。 これで分かるでしょうか? 説明べたですいません