電子書籍の厳選無料作品が豊富!

画像添付失敗のため、再投稿です。ご迷惑申し訳ありません。


現在、納入日を入力すると締め日に対して今月か翌月かを振り分けられるようにしてあります。(このサイトの力をお借りして作成しました。)

2月分の入力をすると、31日が無いので月末締めの客先の場合、翌月になってしまいました。2月や4月など、31日が無い月に対応するにはどうすればよいのでしょうか?


説明下手なので、画像添付します。

画像説明
納入日が2/17で締め日が31日。2010/2/28にしたい。


宜しくお願いいたします。

「再 エクセル 2月など31日が無い場合の」の質問画像

A 回答 (7件)

かなり長い式になりますが以下の式でどうでしょうか。



=IF(DAY(E31)>A31,IF(A31>DAY(DATE(YEAR(E31),MONTH(E31)+1,A31)),DATE(YEAR(E31),MONTH(E31)+2,1)-1,DATE(YEAR(E31),MONTH(E31)+1,A31)),IF(A31>DAY(DATE(YEAR(E31),MONTH(E31),A31)),DATE(YEAR(E31),MONTH(E31)+1,1)-1,DATE(YEAR(E31),MONTH(E31),A31)))
    • good
    • 0
この回答へのお礼

ありがとうございます。
理想通りになりました!
年月もちゃんと繰り越しします。
長い式を作っていただいて、ありがとうございました!



また、誠に勝手ですが解決いたしましたので、質問を締め切らさせていただきます。
その他回答してくださった方々もこの場をお借りしてお礼を言わせていただきます。

ありがとうございました。

お礼日時:2010/02/26 12:02

「31」は月末という意味なんですよね


であれば、

A列の締め日を
A2=IF(RIGHT(F2,2)="31",DAY(DATE(YEAR(E2),MONTH(E2)+1,0)),RIGHT(F2,2)+0)
として、実際の月末の「日」を表示し

B列、請求月を
B2 =DATE(YEAR(E2),MONTH(E2)+(A2<DAY(E2)),1)

としてはどうでしょうか
「再 エクセル 2月など31日が無い場合の」の回答画像7
    • good
    • 0

元の数式のIF関数の使い方が間違えています(結果的に同じ値になりますが)。



イメージとしては、元の式で計算した数式の日がA列の値と等しい場合は、元の数式の日付、等しくない場合は求めた日付の翌月の0日(すなわち当月の月末)にする数式にします。

=IF(DAY(DATE(YEAR(E31),MONTH(E31)+(DAY(E31)>A31),A31))=A31,DATE(YEAR(E31),MONTH(E31)+(DAY(E31)>A31),A31),DATE(YEAR(E31),MONTH(E31)+(DAY(E31)>A31)+1,0))
    • good
    • 0

長くなりますが、B31に



=IF(MONTH(E31)=MONTH((DATE(YEAR(E31),MONTH(E31),A1))),DATE(YEAR(E31),MONTH(E31),A31),DATE(YEAR(E31),MONTH(E31)+1,0))

締め日を計算した日付と納入日の月が違っていたら当月の月末。
そうでなければ締め日をそのまま出すようになってます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
回答頂いた式でやってみました。
納入日が締め日よりも前ならうまくいきますが、締め日の後でもその月を示してしまいます。

20日締めで2/25が納品日なら、3/20になりたいのですが・・・。

お礼日時:2010/02/26 11:50

>締め日が31日


 「締め日」 が「30日」や「29日」の場合はありませんか?
なければ、[ツール(T)] - [アドイン(I)] で「分析ツール」に チェック を入れて、B7 セルに
=EOMONTH(E7,0)
と入力すれば、「2010/2/28」と表示されます。

 「締め日」 が「30日」や「29日」の場合があるようでしたら、別途、策を講じなければなりません。
    • good
    • 0

納入日が2/17で締め日が31日。

2010/2/28にしたい。
次のような式にします。
2/17がA1セルにあるとしたら
=DATE(YEAR(A1),MONTH(A1)+1,0)
    • good
    • 0

式の関係が書かれていないので考え方のみを記載します。


31日という日付では無く、月末にするという式にすれば
日付がずれることは無いと思います。
例えばA1に日付があるとしてこの日の月末を出す式とすれば
=DATE(YEAR(A1),MONTH(A1)+1,1)-1
とすれば当月の月末になります。
翌月であれば
=DATE(YEAR(A1),MONTH(A1)+2,1)-1
といった式になります。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

現在、式は下記のようになっています。(画像青線は31行目に存在。)
=DATE(YEAR(E31),MONTH(E31)+IF(31,DAY(E31)>A31),IF(31,A31))

教えていただいた式を入れてみたらうまくいきましたが、締め日に関係なく月末になってしまいます。
締め日が15日だと2/15、20日なら2/20、25日なら2/25としたいのですが。
上記の式にakiomyauさん回答の式を入れることは可能なのでしょうか?

お礼日時:2010/02/26 10:43

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