Excelで勤務表を作成する方法

このQ&Aのポイント
  • Excelを使用して勤務表を作成する方法について説明します。セルA1からAE1までの31日分のセルを用意し、月の末日までの日付を表示します。
  • 勤務表は、毎月15日が締め切りとなります。例えば、3月度の勤務表は、2月16日から3月15日までとなります。セルA1には「2014/2/16」と入力し、表示されるのは日にちのみです。
  • Excelの関数を利用すると、翌日のセルには前日のセルの値に1を加えることができます。しかし、3月度の場合、2月が28日までなため、3月15日まではセルに日付が表示されます。解決方法として、IF関数などを用いることがあります。
回答を見る
  • ベストアンサー

エクセルで勤務表を作りたい。

・セルA1からセルAE1まで1か月31日分のセルを設けております。 ・たとえば3月度の勤務表は、2月16日から3月15日で毎月15日が締めです。  A1のセルに2014/2/16と入力し、表示は日にちだけ(yyyy/mm/dd)のdのみ表示です。  よってA1のセルは16と表示されています。 ・翌日B1のセルにはA1+1、C1のセルはB1+1・・・とすると16,17,18・・・と表示されます。  3月度は2月が28日までなので、セルAB1が3月15日となります。 ・ところが、数式はセルは31日分すべてに入っているのでAC1・AD1・AE1には3月の  16・17・18まで表示されます。 ・AC1・AD1・AE1の数式を削除すると、空白になりますが、4月度は12日で終わってしまいます。  希望としては、数式は31日分のセルすべてに入れたまま15以降16,17,18は空白にしたい ・関数IF等いろいろ試みましたがうまくいきません。 ・解決方法を伝授下さいよろしくお願いいたします。

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

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

Excelのバージョンが2007以降であれば次の数式で良いでしょう。 B1=IF(A1="","",IF(A1<EOMONTH($A1,0)+15,A1+1,"")) B1セルを右に必要数コピーすれば目的通りです。

uechan1946
質問者

お礼

bunjii 様 回答ありがとうございました。 具体的な数式まで付けて頂き助かりました。

その他の回答 (5)

回答No.5

締め日が、毎月かならず15日と決まっているのであれば、 ”もし左隣のセルの値が、基準となるa1セルの日付の「翌月の15日以降」ならば空欄にする、そうでなければ、左隣に1足した日付にする” という考え方で式を組み立てれば問題なさそうです。 また、万一、A1セルにまだ値が入力されていない場合の備えも加味して、 B1セルに、 =IF(OR($A$1=””,A1>=DATE(YEAR($A$1),MONTH($A$1)+1,15)),””,A1+1) と書き込み、右にAE1までフィルコピー。表示形式や列幅など適宜調整して下さい。

uechan1946
質問者

お礼

yaritsusozai 様 回答ありがとうございました。 具体的な数式まで付けて頂き助かりました。

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.4

少し言葉足らずでした。 >1)AC1, AD1, AE1の3つのセルを選択している状態で、 >  「条件付き書式」を実行 1)AC1, AD1, AE1の3つのセルを選択している状態で、   「ホーム」ー「条件付き書式」を実行

uechan1946
質問者

お礼

asuncion 様 回答ありがとうございました。

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.3

AC1, AD1, AE1のセル(月度によっては空白にしたい)に、 以下のとおり条件付き書式を設定してみてはどうでしょうか。 なお、以下はExcel2013の場合の説明です。 Excelのバージョンによっては、操作方法が異なるかもしれません。 1)AC1, AD1, AE1の3つのセルを選択している状態で、   「条件付き書式」を実行 2)書式ルールの編集で   「数式を使用して、書式設定するセルを決定」を選択 3)「次の数式を満たす場合に値を書式設定」に下記の数式を入力 =DAY(INDIRECT(ADDRESS(ROW(),COLUMN())))>15 4)「書式」の「フォント」タブで、「色」を背景色と同じにする

uechan1946
質問者

お礼

asuncion 様  複数回の回答ありがとうございました。 数式まで付けて頂き感謝します。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! A1セルはシリアル値で 2014/2/16 のように入力する!というコトですので・・・ 一例です。 B1セル(セルの表示形式はA1と同じように ユーザー定義から d としておきます)に =IF($A1+COLUMN(A1)<=EDATE($A1,1)-1,$A1+COLUMN(A1),"") という数式を入れAE1セルまでフィルハンドルでコピー!ではどうでしょうか?m(_ _)m

uechan1946
質問者

お礼

tom04 様 回答ありがとうございました。 数式をそのまま使わせてもらいました。 思ったようになりました。

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.1

日付が16以上のときは文字色を背景色と同じ(通常は白、でしょうか)に するような条件付き書式を設定してみてはどうでしょうか。 私は、勤務シフトを作成する際、そのようにしています。

uechan1946
質問者

補足

回答ありがとうございます。 セルの文字を数値に変えて16以上の時に背景色(白)文字色(白)で、空白のようになりました。 しかし、セルの値は数値ではなく、日にちを表す文字の為、判断を無視され思うようになりません。 もしよければ条件付き書式の具体例を教えてください。 よろしくお願いいたします。

関連するQ&A

  • EXCEL(エクセル)の関数について

    こんにちは、お世話になります。 エクセルの数式で困っており、ご教示頂きたいです。 C1のセルに、値を返させたいのですが、 A1の値が◆でB1が空白セルでなければ◇ A1の値が●でB1が空白セルでなければ○ A1の値が▲でB1が空白セルでなければ△ A1の値が■でB1が空白セルでなければ□ 、と返させたいです 全ての条件が満たされない場合は空白セルを表示させたいのですが、これを可能にするにはどのような数式を用いればよいでしょうか? 宜しくお願いします。

  • 続・勤務表

    質問を締め切ってしまったのでもう一度・・・ 月を変えると曜日が変わる様にしているのですが、 同じく月を変えると、シフトが変わる様にしたいのですが 解かりません。 ご解答いただければ大変有り難いです。 シフトそれぞれ、BBAAとなっています。 現在の各セルの数式の表示は C7セルの所では、=DATE(A5,A8,1) C8セルの所では =IF(MONTH(C7)>$A$8,"",C7) C9セルの所では =IF(C8="","",CHOOSE(WEEKDAY(C8,1),"日","月","火","水","木","金","土")) と、それぞれ数式が表示されてます。 お時間がある時にでもご解答頂けると幸いです。 宜しくお願い致します。 。

  • エクセル 関数の結果が日付になるようにする方法

    エクセル2003を使用しています。 現在、シートAのセルT20に、1月16日と入力すると シートBのセルA5に、自動的に1月16日と表示されるようになっています。 (シートBのA5の数式は、 =シートA!T20 です。) この場合、シートAのセルT20が空白の場合、 シートBのセルA5は、1月0日 と表示されます。 シートAで空白の場合は、シートBでも空白にしたいので、 シートBのセルA5の数式を =シートA!T20&IF(シートA!T20="","",) としました。 すると、結果が、40559 となってしまいます。 セルの表示形式を日付にしても、どうしても数字になってしまいます。 どうすればよいか教えてください。 よろしくお願いいたします。

  • エクセルについて質問です。簡単な質問でごめんなさい

    数値を表示させないためにはどうすればいいですか? セルA1に商品入荷日を入れ、B1にはその50日後(数式A1+50を入力。表示形式は年/月/日です)の日付を。もしA1が空白であればB1の数式はそのままで非表示にしたいのです(今はA1が空欄だとB1には”1900/2/19と出ます)

  • Excel セルの書式設定

    Excel2002を使っています。 セルB1に、数式 =A1 を設定しています。 さらに、セルB1には、セルの書式設定で、ユーザー定義 "*** " @ " ***" を設定しています。 セルB2は、数式 =A2 セルB3は、数式 =A3 ・ ・ ・ (上記のユーザー定義は B列に設定されています。) セルA1に『チョコレート』と入力したら、 セルB1には、『*** チョコレート ***』と表示されます。 もし、セルA1が空白の場合『*** ***』が表示されます。 でも、セルA1が空白なら、セルB1も空白にしたいのですが、その方法はありますでしょうか? よろしくお願いします。

  • 条件付書式でOR関数を使うと空白セルに適用されない

    Windows7(32bit) Microsoft Office Excel 2010です。 横軸が日付のカレンダーを作成しています。 各セルには下記のような値や数式を入力しています。 例) A1セル 2013/12/1 B1セル =A1 C1セル =IF(B1="","",IF(MONTH(B1+1)=MONTH(B1),B1+1,"")) 以降、オートフィルでAF5セルまで入力済み 別途作成した祝日表に一致する日付のセルと、日付が無い部分(2/29や4/31に当たる部分)のセルの色を変更するため、下記の条件付き書式を設定しました。 適用先:B1:AF5 定義した名前=祝日(参照範囲:$B$10:$AF$21) =OR(INDEX(祝日,MONTH(B1),DAY(B1))<>"",B1="") しかし、祝日表に一致した日付はセルの色が変わりますが、日付が無い部分が変わりません。 日付が無い部分は、それぞれ下記の数式を入力しています。 AD3: =IF(AC3="","",IF(MONTH(AC3+1)=MONTH(AC3),AC3+1,"")) AE3: =IF(AD3="","",IF(MONTH(AD3+1)=MONTH(AD3),AD3+1,"")) AF3: =IF(AE3="","",IF(MONTH(AE3+1)=MONTH(AE3),AE3+1,"")) AF5: =IF(AE5="","",IF(MONTH(AE5+1)=MONTH(AE5),AE5+1,"")) 数式が入っている(=空欄と認識されていない)せいかと思い 条件付き書式を2つに分けて設定してみましたが、こちらは希望通りの動作をします。 適用先:B1:AF5 =B1="" =INDEX(祝日,MONTH(B1),DAY(B1))<>"" ですので、素直に2つ設定すれば良いのですが OR関数で設定するとなぜ動作しないのかが気になり、質問させて頂きました。 よろしくお願い致します。

  • エクセル 0表示を空白にする(自動で)

    エクセルでセルに数式を入れています。計算する必要がないセルについては「0」が表示されているのですが、表示させない方法を教えて下さい。 詳しく書くと   A  B  1 100  105(A1*1.05) 2 空白 空白(但し計算式は入っている) 3 200  210(A3*1.05) Bには隣のA*1.05という数式が入っています。 A1とA3に数値を入力した場合、上記のようにしたいのですが、A2が空白だとB2に「0」が入ってしまいます。 他のファイルで同じような計算式を作成したとき、参照セルAが空白だとBも空白になっていました。ただし、Bにはちゃんと計算式が入っていてAに数値を入力するとBに答えが入ります。 特に意識せず作ったらこのようになっていたのです。 どうにかして同じようにしたいのですが、見比べても全然分からずギブアップです。。。 どなたかご教授ください。

  • Excelのユーザー定義で

    いつも大変参考にさせていただいております Excelのユーザー定義で聞きたいことがあります A1セル は 文字を入力できる B1セル は IF(A1="","",A1) という数式を入れています B1セルには ”個”という単位を表示させたいため、ユーザー定義を利用したいと思っています ただ、私の方法では A1セル が空白でも B1セル には”個”と表示されるため、A1セル空白の際は B1セルも空白にしたいと思っています。 良い方法はありますでしょうか。 ご教授頂けますと幸いです。

  • EXCELで勤務表作りたいのですが・・・ど素人です。

    セル1マスを1時間で0-24までの勤務表を作りたいのです。 勤務表のファイル見つけて改ざんして24時間まで作成しました。 以下の関数がセル1マス1マス入ってます。 =IF(AND(AX$9>=HOUR($C10),AX$9<HOUR($D10)),1,"") A  B    C     D    E  F  G  H  I.....  AC 1  名前 開始時間 終了時間 0時 1時 2時 3時 4時 5時....24時 2  あ  18:00  23:00 3  い  17:00  24:00 という形で時間を入れると開始-終了時間のセルに1の値が表示され 同時にセルに色が付くのですがどうしても24:00を選択するとすべての セルで1の値が出なくなり色も付きません。 AC1の式は=IF(AND(AC$6>=HOUR($C7),AC$6<HOUR($D7)),1,"")です。 解決策とこの式の意味合いを詳しく教えては頂けないでしょうか?

  • エクセルの数式についての質問です。

    下記の数式で、「一覧!A4:EG1003,137」の「一覧!A4:EG1003,137」が空白の場合に、空白で返す場合の数式をお教えください。 現状の数式 =VLOOKUP(B1,一覧!A4:EG1003,137) 補足説明 エクセルのシート(一覧シート)のA4:EG1003内で137列目が空白の場合は空白で返す数式にしたいです。 VLOOKUPを使用しているので、別シートのB1セルには一覧シートの専用番号の行の値を入力するとその行が全て別シートに反映される形になっています。その時に空白の個所があると0表示になってしまうので、空白は空白で返したいです。

専門家に質問してみよう