• ベストアンサー

Excelで出勤台帳を作りたい

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日までは完成できたのですが、小の月と閏年の処理だけどうしてもわかりません。お知恵を貸していただけませんでしょうか。よろしくお願いします。

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

  • ベストアンサー
  • dejiji-
  • ベストアンサー率38% (327/858)
回答No.3

もし、一月毎にシートを構成するなら、A1に年が入り、B1に月が入っているとして28日までは今のままで、29日は =IF(DAY(DATE($A$1,$B$1,29))=29,29,"") 以降30,31の場合は29を30、31に変更してください。 これなら、アドイン関数(EOMONTH)のない場合でも対応できます。

yamashiro
質問者

お礼

すばらしい。これもいいですね。 結果的に、皆さんからいただいた情報などを総合的に組み合わせ? 下記のようにしました。ちょっと複雑すぎますでしょうか?一応目的を達成できてます。 まず、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関数を使用しました。 こんなのいかがでしょう。おかげさまで解決しました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

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

例えば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です。これでどうでしょうか。

yamashiro
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。
  • zephyrus
  • ベストアンサー率41% (181/433)
回答No.5

#4で回答した者です。 バカな回答をしたものです。 あれだったら、A2に =A1+1 と入れ、あとオートフィルした事と変わりません。 なかったことにしてください。 これからはよく考えて回答します。 申し訳ありませんでした。

yamashiro
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。
  • zephyrus
  • ベストアンサー率41% (181/433)
回答No.4

ご質問の趣旨をまちがえているかもしれませんが。 まず、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月まで使えると思います。

全文を見る
すると、全ての回答が全文表示されます。
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 数式での方法。 A2に、 =IF(COUNT($A$1),IF(MONTH($A$1+ROW(A1))<>MONTH($A$1),"",$A$1+ROW(A1)),"") と入力して、A31までコピーします。

yamashiro
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

非表示にするだけでいいなら条件付書式を使用できます。 「数式が」「=MONTH(セル)<>月」として文字の色を背景と同色にします。 上記の例でいくと A2に月初めの日にちを入力でA3以降に+1してA32まで作成 条件付書式の式を「=MONTH($A2)=MONTH($A$2)」 としてください。 2月の場合、A31が3月1日、A32が3月2日の為非表示になります。

yamashiro
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルの関数

    エクセルで、A1に平成○年×月△日とあるのを、平成○+1年×月△日と出す式を教えてください。うるう年でも日付がずれないものをお願いします。 例:平成19年9月1日→平成20年9月1日

  • excelの表示形式

    QNo.123902 kazu40 さんの質問についてです。 ご質問の要旨は、 ・Excel2000にて、13/8/24 と入力したら 平成13年8月24日 と表示するようにさせたい。 これに対するmiya_777さんの回答、 ・セルの書式設定で日付を選択して、「平成XX年XX月XX日」というのを選べば良い。 これに対するkazu40 さんの補足、 ・表示形式で平成XX年XX月XX日を選んでも13/8/24と入力すると平成25年8月24日と表示される。 これに対するpiro19820122さんの回答、 ・「13/8/24」ではなく「H13/8/24」と入力すれば、平成13年と認識してくれます。 結局kazu40さんは、piro19820122さんの回答に「できました」ということで締め切られました。 【質問】 小生のマシン(Excel97)では、miya_777さんの回答に従って「13/8/24」と入力すれば「平成13年8月24日」と表示されます。これはExcel2000とExcel97の違いなのでしょうか? そんなことはないと思うのですが・・・。 もちろん「H13/8/24」でも「平成13年8月24日」と表示されますが、これは当然でしょう。

  • EXCELの日数計算

    各セルごとに平成 23 年 12 月 20 日 から 平成 23 年 12 月 25 日と15のセルに入力されたシートですがこれの日数を出すのはどうしたらいいでしょうか 教えてください。EXCEL2007を使用しています。

  • Excel97でセルに初期値を入れとくには?

    windows98でExcel97を使っています。 ひとつのセルに" 平成  年 月"と表示しておいて,そのセルに日付を"2002/10"と入力したら、和暦の"平成14年10月"というように表示したいのですが、一つのセルで出来ますでしょうか? マクロ、VBAは使用したくありません。お知恵を貸してください。

  • VBAで月の日数を表示させたい

    EXCEL2000でVBAを作成しています。 シートのセルに =EOMONTH(T4,1) という公式がはいっています。表示は平成17年10月分になっています。 ここのセルの日付に応じて月日数を表示したいのです。 何をしたいかというと 単価×31(月の日数)の計算をするため月日数をセルに自動入力したいのです。 よろしくお願いします。

  • Excelで日付の数字を全角にしたい。

    Excel2002です。 セルに「2005/2/17」と入力すると「平成17年2月17日」と出るにはどうしたらよいでしょう? 書式設定で表示形式「日付」を選択し、「平成13年3月14日」を選んだら「平成17年2月17日」と、数字が半角で出てきてしまいます。 良い方法ご存知の方、よろしくお願いします。

  • エクセルで台帳管理がしたい

    教えてください。 エクセル2000を使用して客先の台帳管理をしたいのですが、 A7に名前を入力しB7、B8、B9にA7の情報を入力しています。 A8、A9には名前を入力していません。 オートフィルタを使用しA7を選択した場合、B7しか表示しません。 A8、A9には入力せずA7を選択するとB7、B8、B9が表示する事は 可能でしょうか。 出来ればA8、A9には名前を入力しない方法でお願いします。 以上宜しくお願い致します。

  • エクセル2002関数について

    いろいろ調べたのですが、どうしてもわかりません。どなたかよろしくお願いします。 たとえばA1のセルに平成14年3月1日と入力し、B1のセルに60日後の日付を表示したいのですが、どうすればよいでしょうか。 AccessではDateAddの関数を使用したのですが、エクセルではエラーになります。よろしくお願いいたします。

  • エクセルで生年月日を入力すると

    エクセルで生年月日を入力したいんですが、 昭和57年1月1日 と入力したいんですが、 57/1/1と入力すると、 「1957年1月1日」と表示されてしまいます。 セルの書式設定→「日付」→「平成○年○月○日」と設定をすると、 「昭和32年1月1日」と表示されてしまいます。 *昭和で入力する方法はありませんか? もしできないのであれば、「57/1/1」と表示させるには、どうしたらいいか、教えて下さい。

  • Excel での シリアル値について

    シリアル値について教えてください。 シリアル値366は1900年12月31日になり閏年の計算になっております。 1900年は100で割り切れるので閏年ではないのですがどうしてですか? しろうと考えでは、 シリアル値366は1901年1月1日になると思うのですが、教えてください。 以上

専門家に質問してみよう