アプリ版:「スタンプのみでお礼する」機能のリリースについて

先ほども質問したのですが、自分の説明が悪く分かりにくかったようなので…。
Excelで日付の計算をしたいんですが、条件がありましてそれで困っています。条件は全ての月の一ヶ月の単位を三十日で計算する事です
例( 12月1日+30=1月1日
   2月1日+30=3月1日
   2月1日+40=3月10日)

それとセルは三つまでしか使えません。
例えばA1セルに元の日付、B1セルにたされる値、C1セルにたされた結果の日付こんな感じでだしたいんですが、全然分からなくて相当悩んでいます。

ヒントだけでも教えて頂けないでしょうか?
分かりくい説明だったらすいません。
よろしくお願いします。

A 回答 (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)

というような数式になるかと思います。これは、難問ですね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/05 15:02

証券関係などでは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)
を入力して、セルの書式を日付形式にしてください

あまり境界条件の検証は行っていませんが、概ね期待に添えると思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/05 14:58

これは日付として計算するより、IFとかで数字と捉えて計算するしか


ないと思いますよ。

エクセル上は日付はシリアル値として認識されます。
シリアル値として扱われた時に、どうしても4月1日足す30日は
5月2日になるのです。

30という制限で変化させたいなら、30進法ですから、
月の数値と日の数値を切り分けて日の数値の計算結果で月の数値を
触るしかないと思います。

ちなみに見た目上だけでよければ、必ず二桁表示が約束で、
セルの書式を 00"月"00"日" とする事で、数値101は01月01日になります。

考え方は、下ふたけたを計算させて、結果から30越えれば超えた回数だけ上の数値に加える。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/05 14:56

条件「全ての月の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日

となるのでしょうか?

この回答への補足

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

補足日時:2007/11/05 14:33
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/05 14:53

A1のセルには年から入力する必要があると思います。


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

質問の主旨と合っていますか?

この回答への補足

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

補足日時:2007/11/05 14:23
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/05 14:52

通常日付は「12月1日」とセルに表示されていても、内部ではシリアル値というもので計算されていますので、難しいかと思います。



ちなみに「12月1日+30=1月1日」と例がありますが、これでは一ヶ月が31日という概念になってしまうのではないでしょうか?

できましたら捕捉をお願いしたいのですが、
(1)年号は関係ありますか?
(2)セルの制限はなんとかなりませんか?
(3)目的からもっと良い方法がわかるかもしれません。簡単にご説明いただければ、もう少しお力になれるかもしれませんが。。。

お役に立てずすみません。補足、お待ちしております。

この回答への補足

分かりにくくてすいません。

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

これで分かるでしょうか?
説明べたですいません

補足日時:2007/11/05 14:10
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/05 14:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!