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

Excelで経費の支払いの表を作ろうとしています。

A列のセルに日付を入力し、
A列に入力した日付が1日~15日までなら
B列のセルにその月の最終日の日付を
16日~31日までなら
B列に翌月の15日と自動で表示されるようにするには
どうすればいいのでしょうか?


詳しい方、教えてください。
ちなみに使用しているExcel2010です。

A 回答 (8件)

ごめ。

よく読んだら半月ずれてましたな。

=IF(DAY(A1)<15,DATE(YEAR(A1),MONTH(A1)+1,1)-1,DATE(YEAR(A1),MONTH(A1)+1,15))

MONTH(A1)+1で「13月」とか出てきちゃいそうですが、Excelはちゃんと「翌年1月」と計算しなおしてくれますから大丈夫です。
    • good
    • 0

B2=IF(A2="","",DATE(YEAR(A2),MONTH(A2)+1,(DAY(A2)>15)*15))

    • good
    • 0

=DATE(YEAR(A1),MONTH(A1)+1,15*(DAY(A1)>15))

    • good
    • 0

DATE関数で翌月の15日か0日を計算します。


B2:
=IF(A2="","",DATE(YEAR(A2),MONTH(A2)+1,15*(DAY(A2)>15)))
とかでいいです。
もちろん日付の書式をつけるのを忘れないように。
    • good
    • 0

 B1セルの書式設定の表示形式を[日付]とした上で、B1セルに次の関数を入力してから、B1セルをコピーして、B2以下に貼り付けると良いと思います。



=IF(AND($A1<>"",ISNUMBER(DAY($A1))),IF(DAY($A1)<16,DATE(YEAR($A1),MONTH($A1)+1,1)-1,DATE(YEAR($A1),MONTH($A1)+1,15)),"")

 或いは、

=IF(AND($A1<>"",ISNUMBER(DAY($A1))),DATE(YEAR($A1),MONTH($A1)+1,(DAY($A1)>=16)*16-1),"")
    • good
    • 0

一例です。


=IF(A2<>"",IF(DAY(A2)>15,DATE(YEAR(A2),MONTH(A2)+1,15),DATE(YEAR(A2),MONTH(A2)+1,0)),"")
    • good
    • 1

まず、「自動で」を実現するために「関数」が必要なことはわかりますよね?よね?



どうせ誰かが事細かに教えにくるから、私はヒントだけ。

>A列に入力した日付が1日~15日までなら
http://www.google.co.jp/search?num=100&hl=ja&saf …

>B列のセルにその月の最終日の日付を
http://www.google.co.jp/search?q=excel++%E6%9C%A …

>B列に翌月の15日
http://www.google.co.jp/search?q=excel++%E7%BF%8 …

※日付関連の関数
http://www.google.co.jp/search?q=excel++%E9%96%A …
    • good
    • 0

別にむずかしいことはないですよ。

A1セルに「日付シリアル(2011/10/18とか入力する)」で入力されたとした場合。

=IF(DAY(A1)<15,DATE(YEAR(A1),MONTH(A1),15),DATE(YEAR(A1),MONTH(A1)+1,1)-1)

キモはDATE関数の使い方と、「翌月1日の前日は当月の月末日」って発想だけです。
    • good
    • 0

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