エクセルで出勤表を作る方法

このQ&Aのポイント
  • エクセルで1年分の出勤表を作成する方法を解説します。
  • 勤務時間を手書きしてもらうために、エクセルで出勤表を作成する方法を教えてください。
  • エクセルを使用して、月別の出勤表を作りたいと思っています。日付や曜日の表示方法が分からず困っています。
回答を見る
  • ベストアンサー

エクセルで出勤表をつくる

エクセルで、月別でシートに分けて1年分の出勤表を作っています。 印刷して勤務時間を手書きしてもらうためのものです。 下記のことで困ってますので助けてください。 考えている作り方としては、 (1)セルA1に年を設定し、A2に月を設定する (2)=DATE($A$1,$A&2,1~31)で、日付を出す (3) (2)の日付のセルの、書式設定をユーザー定義「d」にして日のみを表示 (4) (2)の日付の横のセルに=TEXT(WEEKDAY((2)のセル,1),"aaa")で曜日を表示 なのですが、(2)で、31まで入れると、2月シートの29の下に、(3月の)1と2が表示されてしまいます。30日までしかない月も同様です。 これを、その月の月末の日付までしか表示しないようにしたいです。 どうしたらいいでしょうか。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.6

>(1)セルA1に年を設定し、A2に月を設定する 手入力ですね? >(2)=DATE($A$1,$A&2,1~31)で、日付を出す 1日のセル位置と日付の数式を設定するセル範囲が明確ではありません。 推測ですがA3=1日、A4=2日、・・・・、A33=31日と言うことですか? >(4) (2)の日付の横のセルに=TEXT(WEEKDAY((2)のセル,1),"aaa")で曜日を表示 曜日はB3~B33でよろしいでしょうか? >これを、その月の月末の日付までしか表示しないようにしたいです。 A3=IF(DATE($A$1,$A$2,ROWS(A$3:A3))>EOMONTH(DATE($A$1,$A$2,1),0),"",DATE($A$1,$A$2,ROWS(A$3:A3))) B3=A3 としてA3とB3を下へ33行目までコピーしてください。 A3~A33セルの書式はユーザー定義「d」で良いですがB3~B33はユーザー定義「"aaa"」にします。 B3~B33は日付のシリアル値ですが表示形式で曜日を指定すればTEXT関数で文字列に変換する必要はありません。

faye963
質問者

お礼

EOMONTHの使い方を初めて知りました。 ありがとうございました!

その他の回答 (5)

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.5

1日がA3から開始とします。 A3式は=DATE(A1,A2,1)ですね。 28日まではdate関数でも=A3+1と足していっても構いません。 A31:29日目 A31式 =IFERROR(IF($A$2=MONTH(A30+1),A30+1,""),"") B31式 =IF(A31="","",TEXT(WEEKDAY(A31),"aaa")) A31~B31を下方へオートフィル 添付が画像は3~26日を非表示としています。

noname#231195
noname#231195
回答No.4

=DATE($A$1,$A&2,1~31) の代わりに =If (Month(Date($A$1,$A&2,1~31))=$A$2, Date($A$1,$A&2,1~31, "") としたらどうでしょう。 つまりDATE($A$1,$A&2,1~31)の結果が、A2に指定してある月と違う場合は、長さ0の文字列("")を返します。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

=IF(MONTH(DATE(A$1,A$2,29~31))<>A$2,"",DATE(A$1,A$2,29~31)) といった組立にします。 実際には1日から28日までのセルには関数を入れるまでも無く1から28までの数字を生で記入しておき、曜日のセルの側で =TEXT(DATE(A$1,A$2,1から28のセル),"aaa") と計算 さらに29日以降の曜日は =IF(上述の29~31日のセル="","",TEXT(A$1,A$2,29から31のセル),"aaa")) のようにしておけば十分です。

faye963
質問者

お礼

ありがとうございました。 いろいろな方法がありますね、参考になりました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 1日(ついたち)の日を表示させるセルがどのセルなのかが具体的に判らなければ、明確な回答をする事が出来ませんので、取り敢えず仮の話として1日の日を表示させるセルがB4セルであるものとして話を進める事に致します。  その場合、まず、B4セルに次の関数を入力して下さい。 =IF(ISERROR(($A$1&"/"&$A$2&"/"&ROWS(B$4:B4))+0),"",ROWS(B$4:B4))  次に、C4セルに次の関数を入力して下さい。 =IF(ISNUMBER($B4),TEXT($A$1&"/"&$A$2&"/"&$B4,"aaa"),"")  そして、B4~C4のセル範囲をコピーして、B5~C34の範囲に貼り付けて下さい。  尚、上記の場合にはセルの書式設定を標準にして下さい。  それからもし、どうしても >書式設定をユーザー定義「d」にして日のみを表示 にされたい場合には、B4セルの関数を =IF(ISERROR(($A$1&"/"&$A$2&"/"&ROWS(B$4:B4))+0),"",($A$1&"/"&$A$2&"/"&ROWS(B$4:B4))+0) に、C4セルの関数を =IF(ISNUMBER($B4),TEXT($B4,"aaa"),"") にして下さい。

faye963
質問者

お礼

日付がどのセルなのかわからないというところは、 すみませんセルじゃなくて手入力のつもりでした。。 ISERROR関数を知らなかったので参考になりました!ありがとうございました。

  • msMike
  • ベストアンサー率20% (363/1772)
回答No.1

ヒントだけネ。 [条件付き書式で]でフォント色を白に設定

faye963
質問者

お礼

そういうのもありですね! 参考になりました、ありがとうございました。

関連するQ&A

  • エクセル関数の戻り値によりコピーができますか

       A   B  C 1  年  月  日 2  2011  9   17 3 4  日付 2011/9/17 5  曜日   土 B4は”=DATE(A2,B2,C2)”の関数を使います。 B5は”=TEXT(WEEKDAY(B4,1),"aaa")”の関数を使います。 一方曜日による7種類のシートがあります。シート名は"日""月""火""水""木""金" "土"です。B5の結果を判断して、曜日毎にA7に各シートの内容をコピーしたいの ですが、マクロを使わない関数だけでの方法はありますか? 各曜日のシートの内容は1セルだけでなく広い範囲なので全てA7を起点にコピー したいのです。宜しくお願いします。

  • エクセル2010 お知恵を貸してください

    セルG1には、2012年7月 と入力しています。表示形式は「日付」の「2001年3月」を指定。 A列の表示形式は「標準」にしています。 セルA7には、1 セルA8には、2 セルA9には、7 ・・・・・というふうに入力しています。 セルB7に、 =IF(A7="","",$G$1+A7-1)  と関数を設定しています。(日付をシリアル値にしてある) そして曜日に変換したいので、表示形式をユーザー定義で aaa にしました。 結果は 日 とでます。 この日を赤色にする方法を教えてください。 (他の曜日の色は変えない) 条件付き書式でやってみたのですが、色が変わりませんでした。 A列を日付と認識させて曜日変換するとできるのですが・・・・・。 以上の設定で色を変えることができましたら、教えてください。

  • エクセル こんなことしたいです

    イメージ 日記帳を作ります! 1つのBookに、1ヶ月分を入力します 1つのシートで1日分です ★セルA1に日付入力(例:4/21と入力する ⇒ 19年4月21日)と自動表示される ※セルの書式設定をいちいちするのは面倒です!  他のシートに書式コピーするのも面倒です!   ★セルA1に日付を入力 ⇒ シート見出しに自動的に、その月日が表示される ※シート見出しを右クリックして、いちいち名前の変更など面倒です! ★セルA1に日付入力 ⇒ それに対応する曜日を隣セルに自動表示 ★シート1の設定そのままで、シートを30枚一気に作成 ※Shift⇒F11では、完全に新しいシートができてしまいますよね。それに30回繰り返さないといけないですし・・・ ※シートの移動、コピーでも30回繰り返さないといけない・・・ 面倒です!! ★できればできあがった30枚のシートには、自動的に日付も曜日も シート名も出来上がっている ※例:シート1が5月1日で、フォーマット(テンプレート?)作成すると、自動的にシートが30枚できて、それぞれセルA1に日付(例: 5月5日)それに対する曜日が表示されている ★土曜は曜日が自動的に青になっている  日曜は赤になっている いろいろやかましいですが・・・お知恵(知識)お貸しください!! よろしくお願いいたします! よろしくお願いします!  

  • 日付から元号+年を取り出したい(エクセル)

    Win98SE、ExcelXPです。 例えば、セルA1に2003/8/1と入力されています。 もちろん、表示形式はyyyy/m/dです。 このセルA1から年・月・日・曜日をそれぞれ別のセルに取り出したいのですが、年がうまくいきません。 曜日であれば、セルE1に『=text(weekday(A1),"aaa")』と入力すれば、『火』と表示されるのですが、 セルB1に『=text(year(A1),"ggge")』と入力すると、シリアル値2003の元号つまり『明治38』と表示されます。 これを、『平成15』と表示するにはどうすればいいのでしょうか?

  • 日曜日の色の変更

    初心者ですので、よろしくお願いいたします。 早速ですが、日常点検の表を作成しております。 A1セルに2007年、B1セルに1月と入力。 A2セルに日付表示のDATE関数設定【=DATE(A1,B1,1)】 A3セルに曜日設定【ユーザー定義aaa】 個々のセルに日付・曜日を表示した場合 『日曜日の場合(日付と曜日)の色変更』の仕方がわかりません。 一つのセルに月・日・曜日表示の場合(WEEKDAY設定・・)は 出来るのですが・・ 条件付き書式もうまくいきません。(設定方法が間違っているのかわかりませんが・・) 説明が不器用ですみません。 どなたかご存知の方、よろしくご伝授ください。

  • エクセル勤務表作成中なのですが・・・

    初めて質問します。よろしくお願いします。 エクセル2003にて勤務表を作成しているのですが、こんな事ができるものなのでしょうか?     A    B   C   1 H18年  8月  2  21   月   出勤  3  22   火   出勤  4  23   水   休み   ・   ・   ・ 32  20   日   休み シート1にこの様な表を作り、シート2の1つののセルに休みの日付を自動的に抽出したいのですがこの様なことは可能でしょうか? ちなみにA1,B1には数字のみの入力で表示形式で年月を表しています。A2には=DATE(A$1+1988,B1,21)という関数で日にちを表示、A3以降は=A2+1というようにして表示しています。曜日は=IF(A2="","",WEEKDAY(A2))という関数で表示しています。 私エクセル関数に関してはあまり詳しくありません。この表もフリーソフトで入手したものを使用しています。 よろしくお願い致します。

  • エクセル 表示形式って・・・コレできますか?

    スケジュール表を作成中です。 例えば日付の 2006/4/1 のセルがA1だったとしたら 下のようになりますよね。 日付    曜日 2006/4/1  =A1 そして曜日のセルに表示形式を aaa で付ければ月火水・・となるのは、解っているのです。 ですが! 日付のセルをただ単に「1 2 3 4・・・」と数字だけにしたいのです。 そうすると表示形式はどうつければいいのでしょうか。 ただの1234だけど、ちゃんと「日付」と認識して欲しいのです。 じゃないと、今度曜日が月火水・・・って認識できないですよね!? 不可能でしょうか。 どなたか教えてください><

  • エクセルで悩んでいます

    Sheet1のA1に西暦(2008)B1に月(9月) B3~AF3まで日付(固定)その下の行に曜日表示(月を変えると自動で変わります)A5~A22まで個人名(固定)が入っています、そして B5~B22迄(出勤・欠勤)などその日の出勤状況が入ります(手入力) CDE~同じようにその日の出勤状況が入ります この(出勤・欠勤)等の状況を他のシートに移したいです。 Sheet3に通常のカレンダー(壁に掛かってるような)のような表示があります A33(日曜日)B33が空白セルでC33が(月曜日)D33が空白セルの様に空白を挟み土曜日まで続いています、そして34行目~38行目までは曜日の下に日付けが表示されています。シート1の(月)を変更すると日付けが自動で変わります(曜日は固定) その日にちの脇にある空白セルにシート1の(出勤・欠勤)等の表示を 自動で表示させたです(カレンダーは個人別に人数分作ってあります)月を変えると日にちがずれてしまいますので(カレンダーとして使うなら問題ないのですが、月別の出勤状況を解るようにしたいので どうしていいか解りません。 ちなみにシート1は出勤簿でシート3は個人別の給料明細です。 給料明細の中に小さなカレンダーを作り出勤状況を解るように出来ないか考えています。空白セルに手入力も出来るのですが、時間が掛かり過ぎるので・・・VBAなどは解らないので簡単な関数などで出来ればと思います。 解りにくい説明で申し訳ありませんが、お願いします。

  • エクセルで各シートに日付・曜日一括表示するには

    (1)エクセルで7月31日分のシートをつくり、今年のカレンダーどおりの日付・曜日を(各シートのA1セルに、いちいち入力するのではなく)一括で各シートのA1セルに表示できる方法があれば、教えて下さい。 (2)エクセルで昨年7月の平日の数だけシートがあるファイルがあります。各シートのA1セルには、「平成19年7月○日(○曜日)」と入力されています。 このファイルを、今年の7月の平日カレンダーに一括置換するには、どうすればいいでしょうか? 昨年と今年は平日の日付はもちろん、同じ日でも曜日が違いますので、各シートを開き、いちいち日付・曜日を直さなければいけないのでしょうか。教えて下さい。宜しくお願いします。

  • Excelで曜日表示の改行

    1つのセルに日付と曜日を表示させたいのですが、 日付の下に曜日を表示させるには どうすれば良いですか? 例)  11月20日   (水) 今は、 ユーザー定義  ↓ [種類]欄に 「m"月"d"日("aaa")"」 と設定してるので、一列に 11月20日(水) と表示されていしまいます。 よろしくお願いします。

専門家に質問してみよう