dポイントプレゼントキャンペーン実施中!

WindowsXPでExcel2000を使用しています。

出勤台帳を作成しているのですが、下記の点で悩んでしまってます。

まず、期間として たとえば平成16年1月1日~平成16年1月31日と表示させたい場合、EOMONTH関数を使用し、1月1日と入力すれば、1月31日は自動で取得できました。 次に、日ですが、1月は1~31までありますが、小の月と閏年をどのようにして処理するか、つまり、1月は1月1日と入力することでA列の1~31にそれぞれ1~31と表示させ、2月1日と入力すると同様に1~29(今年は閏年)を表示させ、3月1日と入力すると、1~30を表示させたいのです。 1月1日の日付を絶対参照させ、そこに+1、+2、+3・・・とすれば、28日までは完成できたのですが、小の月と閏年の処理だけどうしてもわかりません。お知恵を貸していただけませんでしょうか。よろしくお願いします。

A 回答 (6件)

もし、一月毎にシートを構成するなら、A1に年が入り、B1に月が入っているとして28日までは今のままで、29日は


=IF(DAY(DATE($A$1,$B$1,29))=29,29,"")
以降30,31の場合は29を30、31に変更してください。
これなら、アドイン関数(EOMONTH)のない場合でも対応できます。
    • good
    • 0
この回答へのお礼

すばらしい。これもいいですね。

結果的に、皆さんからいただいた情報などを総合的に組み合わせ? 下記のようにしました。ちょっと複雑すぎますでしょうか?一応目的を達成できてます。

まず、H2に日付(年月日)を作成しました。このセルには各月の初日を入れることにします。 そして、B5~B35にその月の「日」のみを表示させその値からC5~C35に曜日を取得するようにしました。B5~B35は

=IF(MONTH(DATE(YEAR($H$2),MONTH($H$2),ROW()-4))=MONTH($H$2),DATE(YEAR($H$2),MONTH($H$2),ROW()-4),"")

とし、C5~C35はWEEKDAY関数を使用しました。

こんなのいかがでしょう。おかげさまで解決しました。ありがとうございました。

お礼日時:2004/01/24 01:27

例えばD2に2004/2/1と2月の最初の日を入れておきます。


B列に日を出すとして、月初日はどの月でも、B1は1といれます。
B2に式=IF(B1<DAY(EOMONTH($D$2,0)),B1+1,"")といれ
て、「どの月の場合も」(一々末日を気にせず)、B31まで式を複写します。
31行まで複写しますが、今年の2月の場合、30、31行は空白になります。
3月は31日まで入ります。
大の月も小の月もうるう年も同じ方式でOKです。これでどうでしょうか。
    • good
    • 0
この回答へのお礼

すばらしい。できますね。これも。ただ、曜日を取得できるともっといいな~なんて。贅沢いってすみません。ありがとうございました。

お礼日時:2004/01/24 01:34

#4で回答した者です。


バカな回答をしたものです。

あれだったら、A2に
=A1+1
と入れ、あとオートフィルした事と変わりません。

なかったことにしてください。
これからはよく考えて回答します。
申し訳ありませんでした。
    • good
    • 0
この回答へのお礼

いや~、いろいろと考えていただきありがとうございました。皆さんのおかげでなんとか解決できました。どうもありがとうございました。

お礼日時:2004/01/24 01:28

ご質問の趣旨をまちがえているかもしれませんが。



まず、A1に2004/1/1と入力します。
それを平成16年1月1日と表示します。ここまではいいですね。

次にA2に次の式を入力します。

=IF(AND(MOD(YEAR(A1),4)=0,
MONTH(A1)=2,A1=28),A1+1,A1+1)

あとはA2の式をA3以下へオートフィル。
2400年1月まで使えると思います。
    • good
    • 0

こんにちは。

maruru01です。

数式での方法。
A2に、

=IF(COUNT($A$1),IF(MONTH($A$1+ROW(A1))<>MONTH($A$1),"",$A$1+ROW(A1)),"")

と入力して、A31までコピーします。
    • good
    • 0
この回答へのお礼

ん~~ん、ちょっと思っていた結果とは異なるものでしたが、勉強になりました。ありがとうございました。

お礼日時:2004/01/24 01:08

非表示にするだけでいいなら条件付書式を使用できます。


「数式が」「=MONTH(セル)<>月」として文字の色を背景と同色にします。

上記の例でいくと
A2に月初めの日にちを入力でA3以降に+1してA32まで作成
条件付書式の式を「=MONTH($A2)=MONTH($A$2)」
としてください。
2月の場合、A31が3月1日、A32が3月2日の為非表示になります。
    • good
    • 0
この回答へのお礼

なるほど、そういうやりかたもあるのですね。どうもありがとうございました。

お礼日時:2004/01/24 01:04

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