• ベストアンサー

日にちを表示する関数の使い方(応用)

こんばんは。早速なのですが、お願いします。 家計簿の作成についてなんですが、日にちを関数で入力しようとおもっています。下記の関数で入力したら、2月29日がある年は9日と表示されるのですが、29日がない月は1日と表示されます。 =IF(AND(C1=2,MOD(YEAR(TODAY()),4)<>0),"--",BE3+1) 29日のない月は"--"と表示したいのですが、どのようにしたらいいですか?

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

  • ベストアンサー
  • sige1701
  • ベストアンサー率28% (74/260)
回答No.7

たびたびすいません >もしかしたら、BE3 は日付ではなかもしれませんね? >=IF(MONTH(DATEYEAR(TODAY(),C1,BE3+1))=C1,BE3+1,"--") =IF(MONTH(DATE(YEAR(TODAY(),C1,BE3+1))=C1,BE3+1,"--")

その他の回答 (6)

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.6

勘違いしていました、訂正します。 =IF(AND(C1=2,DAY(DATE(YEAR(TODAY()),3,0))=28),"--",BE3+1) 質問の場合、こちらの方が良いかな(30,31日の事を考えて) =IF(MONTH(BE3)=MONTH(BE3+1),BE3+1,"--") もしかしたら、BE3 は日付ではなかもしれませんね? =IF(MONTH(DATEYEAR(TODAY(),C1,BE3+1))=C1,BE3+1,"--")

m1tk
質問者

お礼

ありがとうございます。 お返事遅くなってすみません。 31日のセルには、=IF(OR(C1=2,C1=4,C1=6,C1=9,C1=11),"--",BI3+1) このような、数式が入っておりますので、つつかなくても、自動的にない時にはないように表示されます。 ここで、ひとつ疑問なのですが、1日のところは=DATE(A1,C1,1)という数式が入力されています。それぞれ、A1には年C1には月が入力されています。 この場合、month関数を利用する場合、1日のところも、MONTH関数を利用して数字を表示したいのですが、どうしたらいいですか?

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.5

>エラーになってしまいました 括弧が多かったですね =IF(AND(C1=2,DAY(YEAR(TODAY(),3,0)=28),"--",BE3+1) 質問の場合、こちらの方が良いかな(30,31日の事を考えて) =IF(MONTH(BE3)=MONTH(BE3+1),BE3+1,"--") もしかしたら、BE3 は日付ではなかもしれませんね? =IF(MONTH(YEAR(TODAY(),C1,BE3+1)=C1,BE3+1,"--")

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

>日にちを関数で入力しようとおもっています。 既に回答も出ているが、どういう風になっているのか、他人にわからない質問。 質問の表現は丁寧にしてください。 ーー 連続した日にちを、連続したセルに入力(セット)するなら、関数は使うと便利だ。 この際は日付シリアル値に+1していけば、うるう年はうるう年ナリに月と日を変えてくれる。質問のような疑問は出ないと思うが。 ー 飛び飛びの日や飛び飛び行に日にちをセットするのには関数なんて不便で、使えないのでは。 ー C1に月数字がセットされているようだが、質問するときは、読者に推測させるのでなく、シート、セル(行、列)を示し、そこにどういう 内容のデータ!があり、他のセルにどういうデータを出したいか明示 知るのが質問のマナーと思う。 BE3だって何がはいっているか書いてない。 >29日のない月 2月だけを意識しているようだが、29日の無い月は,2月以外ではない。家計簿は2月だけのものではなかろう。質問があいまい。読者に 常識で判るじゃないか、というのか。全体と関連すると思うので明確にするべき。 ーー 小生の経験では、 連続日付で月末日を超える日付は空白にしたい、という問題には セルの値を空白にする 文字を白色にする のを考えた。 前者なら=IF(その行の日付>その月の月末,"",その行の日付) を使った。ただしそのまま式にすると2月の30,31日に当たる業がエラーになる。そこで下記のように行番号で判別。 例 C1=2 月数字(毎月入力し入れ替え) A3 =DATE(2008,$C$1,1) A3 =IF(ROW()-2>DAY(DATE(2008,$C$1+1,0)),"",A3+1) 以下式を下方向に複写して、A3も含め最大の年間月日数31日分!複写してA33で複写を止める ーーー 最後の例で説明した部分は、質問の主旨と違う場合はご免。 言いたいのは質問文を読者にわかりやすいよう丁寧に書いてほしいということ。

m1tk
質問者

補足

わからないから質問してるわけであり、わからないものを丁寧にできれば、あなたのアドバイスは一切不要です。 常識的に考えて物をいってください。

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.3

参考までに・・ >2月29日がある年は9日と表示されるのですが、 >29日がない月は1日 BE3にはどの様な式が入っているのでしょう? 9日は 29日の間違いなのかな? この回答により、別な回答が付くかも =IF(AND(C1=2,DAY(YEAR(TODAY()),3,0)=28),"--",BE3+1)

m1tk
質問者

お礼

ご丁寧にありがとうございます。 そうです。私の入力ミスです。 おっしゃっていただいた数式を入力しましたが、エラーになってしまいました。 BE3にはBC3+1の式が入っています。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

◆BE3に「28」と数字がある場合 =IF(MONTH(DATE(YEAR(TODAY()),2,29))=C1,BE3+1,"--") ◆BE3に、シリアル値が入力され、表示形式が、 d の場合 =IF(MONTH(BE3+1)=C1,BE3+1,"--") または、 =IF(EOMONTH(BE3,0)=29,BE3+1,"--")

m1tk
質問者

補足

すみません。お二方さまに、まとめて、補足いたします。 ちなみに、この質問に用いたテンプレートは、http://office.microsoft.com/ja-jp/templates/TC102538381041.aspx?pid=CT101172321041 を用いています。 1月分を作成し、それを12枚コピーして、使うようにしたいのですが、いかがでしょうか?

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

>=IF(AND(C1=2,MOD(YEAR(TODAY()),4)<>0),"--",BE3+1) =IF(AND(C1=2,DAY(BE3+1)<>29),"--",BE3+1) いかかでしょうか

関連するQ&A

専門家に質問してみよう