- ベストアンサー
日付が自動的に変わる関数は?
- 日付に関する関数について、わからないことがあります。
- 左のセルには日付を入力し、右のセルにはその日付に応じた表示を自動的に行いたいです。
- IFやDAYを使って試してみましたが、うまくいきません。何かアドバイスをいただけませんか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 こんな数式はどうでしょうか? =DATE(YEAR(A1),MONTH(A1)+(DAY(A1)>20),MOD(INT(DAY(A1+9)/10),3)*10+5) 表示は、書式で直してください。 書式「m/d」 あえて、テキスト表示する必要はないと思います。
その他の回答 (5)
長ーい式になりますが、 A列に日付が入っているとして、 =EOMONTH($A1,(DAY($A1)<=20)*(-1))+((QUOTIENT(DAY($A1)-1,10)=1)+(DAY($A1)<=20))*10+5 A列とB列の表示書式は「日付型」にして下さい。 A列にどんな日付を入れても構いません。ただしシリアル値で入れて下さいね...
お礼
ありがとうございます。 おかげで大変助かりました。
=DATE(YEAR(A1),MONTH(A1)+IF(DAY(A1)>20,1),IF(DAY(A1)>20,5,IF(DAY(A1)>10,25,15)))
お礼
ありがとうございます。 おかげで大変助かりました。
=DATE(YEAR(A1),MONTH(A1)+(DAY(A1)>20),15+10*AND(DAY(A1)>10,DAY(A1)<21)-10*(DAY(A1)>20))
お礼
ありがとうございます。 おかげで大変助かりました。
- imogasi
- ベストアンサー率27% (4737/17069)
結果的に、IFを使わないでやってます。 どこでも良いが D1:F4に D列 E列 F列 1 15 0 11 25 0 21 5 1 32 を入れる。 A1に日付シリアル値(エクセルで普通に日付を入れる形の2007/10/1 のような入れ方)があるとして B1に =DATE(YEAR(A1),MONTH(A1)+VLOOKUP(DAY(A1),$D$1:$F$4,3,TRUE),VLOOKUP(DAY(A1),$D$1:$E$4,2,TRUE)) と入れて下方向に式を複写。 ーーー やっていることは 日付の範囲で 1-10日ー>15 11-20->25 21-月末ー>5 を表のE列で引いている。そして 21-月末は翌月へ繰り越すか(=1)、繰り越さない(=0)かを表のF[列で引いている。 ーー 2007/10/1-2008/3/31までは思い通りの日付を返すことを確認済み。 ーー 質問者にはVLOOKUPのTRUE型や関数の組み合わせが、現在では理解できないでしょうが、色んな解法があることを知ってもらうこと、質問者以外も見てくれている方があればということで挙げます。 ーーー IF関数のネストが深くなったら、VLOOKUPの利用を検討してみるのは 定石と思う。
お礼
ありがとうございます。 おかげで大変助かりました。
- pbforce
- ベストアンサー率22% (379/1719)
式は =IF(DAY(A1)<=10,DATE(YEAR(A1),MONTH(A1),15),IF(DAY(A1)<=20,DATE(YEAR(A1),MONTH(A1),25),IF(DAY(A1)<=31,DATE(YEAR(A1),MONTH(A1)+1,5),))) でいけました。 日付の表示は書式設定で対応して下さい。 もちろん他にも方法はあると思います。
お礼
ありがとうございます。 おかげで大変助かりました。
お礼
すごい! ちゃんとなってる!! こちらで回答して下さっている皆さんの式もそうですが、 初心者の私には正しく答えが返ってくるのをみるたび、「すげぇ!」と 感心してしまいます。 他の方のと比べてシンプルな式ですね。 シンプルだけど、ちゃんと正しい答えが表示されてる。 シンプルだから、初心者の私でもこの式を使っていろいろ勉強出来る。 助かります。 ありがとうございました。