• ベストアンサー

エクセルで勤務表を作っています

エクセルで、○年○月と入力すればその月の日数、曜日が出る勤務表を作成しました。 (例えば、9月と打てば30日まで表示され、10月と打てば31日まで表示される) DATE関数を使っています。 残業時間を合計する欄があるのですが、 例えば9月は30日までですが、30日の次の空白欄に8月31日のデータが残ってしまっているようで、 合計に反映されてしまいます。 31日のデータを非表示にするだけでなく、合計の対象外にする方法はあるでしょうか。 分かりにくくてすみません。

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

  • ベストアンサー
  • chonami
  • ベストアンサー率43% (448/1036)
回答No.7

> 空白にする条件設定もできるのでしょうか。 No.2です。 >上のセルと月が違ったら空白にする、というような内容の式を作るといいかもしれませんね。 この部分は日付の数式自体の事をさしているので条件付き書式の条件の事ではありません。 ややこしかったですかね。 日付自体を空欄にしておけば、残業時間などを算出するセルに、日付が空欄ならば空欄、そうでなければ計算する、というような式をいれておけば別の月の時間が計算されることはないと思います。

babanat
質問者

お礼

なるほど! 日付の数式自体を「もし前月と違ったら空白」と設定しておけばいいんですね。 それから残業時間のセルにもIF関数を使って。。。 これなら自分に理解できる数式でなんとかなりそうです。 ありがとうございました!

その他の回答 (6)

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.6

No.3です。 > 日付欄に、「入力月と違う月の場合は文字色を白に」という設定をしています。 > 文字の色を白くしているだけなのでデータが残ってしまっているようです。 > 空白にする条件設定もできるのでしょうか。 日付は兎も角、不要なデータを削除する「条件設定」はないと思います。 従って、シートをコピーして増やす場合は、不要なデータを人が判断して削除するか、データが入力されていないシートをコピーするなど、ファイルの運用を改める必要があるように思います。 「シートをコピーするには」 http://www.wanichan.com/pc/excel/2010/1/page08.html

babanat
質問者

お礼

ご回答ありがとうございます。 空白にする条件設定はないのですね。 履歴を残す必要がないファイルなので、皆さんコピーされず上書きで入力されているようです。 一応、使用方法には「まず全て削除してから」と書いているのですが、 勤務表の作成の使用方法なんてあまり皆さん目を通しませんよね(^-^; 合計欄の数式を変えることで対応できるか、試してみたいと思います。 ありがとうございました!

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

>勤務表の1日目の欄に >2日以降は「=前日+1」しています。 とありますが、「勤務表の1日目の欄」や「勤務表の1日目の欄」は何というセル番号のセルなのでしょうか?  その点が不明なため、情報不足で実際に動作する関数を組む事は出来ませんが、以下の様な形式の関数として下さい。 【方法その1】  まず、29日以降(29日目も含む)の日付欄に入力する関数を =IF(MONTH(前日+1)=$C$1,前日+1,"") として下さい。  その上で、合計欄に入力する関数を月の様なものとして下さい。 =SUMIF(「勤務表の日付欄の1日目のセル」:「勤務表の日付欄の31日目のセル」,">0",「勤務表の1日目の残業時間欄のセル」:「勤務表の31日目の残業時間欄のセル」) 【方法その2】  或いは、日付欄の関数を修正しなくとも、次の様な関数とする事で、指定した月の残業時間のみを合計する事が出来ます。 =SUMIF(「勤務表の日付欄の1日目のセル」:「勤務表の日付欄の31日目のセル」,"<"&,DATE($A$1,$C$1+1,1) ,「勤務表の1日目の残業時間欄のセル」:「勤務表の31日目の残業時間欄のセル」)-SUMIF(「勤務表の日付欄の1日目のセル」:「勤務表の日付欄の31日目のセル」,"<"&,「勤務表の日付欄の1日目のセル」 ,「勤務表の1日目の残業時間欄のセル」:「勤務表の31日目の残業時間欄のセル」) 【方法その3】  もし、「勤務表の日付欄に指定した月よりも前の日付が存在していない事」が保障されている場合には、 =SUMIF(「勤務表の日付欄の1日目のセル」:「勤務表の日付欄の31日目のセル」,"<"&,DATE($A$1,$C$1+1,1) ,「勤務表の1日目の残業時間欄のセル」:「勤務表の31日目の残業時間欄のセル」) だけでも、【方法その2】と同様の事が出来ます。

babanat
質問者

お礼

ご回答ありがとうございます。 質問文が不明確で申し訳ありません。 ずっと前に作成したファイルなので、自分でもどのように作ったのか忘れてしまっていまして。。。 合計の数式を変えることでも対応できるんですね、試してみます! ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

次のような式にすればよいでしょう。 A1セルに2012などの年、C1セルに9などの月が有るとします。 A3セルから下方にその月の日付が入力されており、E3セルから下方に残業時間が入力されているとします。 その場合の残業の合計時間が次の式で求められますね。 =SUMPRODUCT((YEAR(A3:A33)=A1)*(MONTH(A3:A33)=C1),E3:E33) なお、勤務時間の合計を時間で表示させる場合には 「セルの書式設定」の「表示形式」で種類の窓に [h]:m と入力してOKします。 ご質問で正確な表示にならないのは式ではなくて「表示形式」の問題かもしれませんね。例えば残業の合計時間が28時間のような場合には上のような表示形式になっていない場合には1日と4時間ですから4:00のように表示されてしまいます。 セルの表示形式を確かめることから初めてみてください。

babanat
質問者

お礼

ご回答ありがとうございます。 セルに条件付き書式で「月が違う場合は文字色を白に」と設定していたため、 データが残っていることに気付けなかったようです。 合計時間の数式を変えることでも対応できるんですね、試してみます。 ありがとうございました!

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.3

> 9月は30日までですが、30日の次の空白欄に8月31日のデータが残ってしまっているようで、 合計に反映されてしまいます。 何故、8月のデータが残っているのか理解できませんが、9月の合計に8/31は無関係ですので、 非表示にするのではなく、削除すべきと思います、

babanat
質問者

お礼

大変失礼いたしました。 日付欄に、「入力月と違う月の場合は文字色を白に」という設定をしています。 文字の色を白くしているだけなのでデータが残ってしまっているようです。 空白にする条件設定もできるのでしょうか。

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.2

>と入力し、2日以降は「=前日+1」しています。 これだと、31日を小の月にどうやって非表示にしているかわからないですよね? それを聞いているんだと思いますよ。 31日のセルにはどういった式を入れているんですか? それとも、条件付き書式で白文字とか? 上のセルと月が違ったら空白にする、というような内容の式を作るといいかもしれませんね。

babanat
質問者

お礼

大変失礼いたしました。 日付欄は、条件付き書式で「入力月と違う場合は文字色を白に」という設定がされています。 文字色を白、ではなく空白の設定もできるのでしょうか。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

30日の次の空白欄の数式によって処理は異なります。

babanat
質問者

お礼

失礼致しました。 A1に「年」を入力し、C1に「月」を入力した上で、 勤務表の1日目の欄に =DATE(A1,C1,1) と入力し、2日以降は「=前日+1」しています。

関連するQ&A

  • エクセルで作成した勤務表を週間勤務表に抽出したい

    エクセルで作成した勤務表を元にして 週間勤務表(月~日)を作成したいのです。 現状はコピペで作業をしていますが可能であれば シートをファイルに貼り付ける事により自動計算で反映できるようにしたいと思います。 月初めは1日からですが曜日が都度変わるためそのための関数式が 分かりませんでした。 現在の勤務表は B6以降B欄には社員名 セルC3に月    C4に日    C5に曜日    C6以降はその日の勤務シフト(早、遅 等) 週間予定表は  A6以降A欄が社員名  G4が日  G5が曜日(固定)  G6以降がその社員の勤務シフト と表示したいので 19年8月の場合8/1が水曜日なので  I4に「1」  I6に「シフト」  のような表示が可能な関数式を探しております。 宜しくお願い致します。

  • Excelで勤務表

    Excel(2000)で勤務表を作ることになりました。 基本勤務時間が8時間 それ以降が残業時間 例えば8:30から20:00まで働いた場合、 基本に"8" 残業に"2.5"と自動的に入る式を入れたいのですがどうしたらよいでしょう。 また、月を変えるだけで日付、曜日が自動的に変えられる式も教えていただきたいです。 使う関数の説明も付けてもらえると嬉しいです。 宜しくお願いします。

  • エクセルで勤務シフト表の作成。

    エクセル表で年間の勤務シフト表を作成しております。 独自で考えて作っていってるんですが、改良したい点がいくつかあり教えて頂きたい点があります。 現在は色んなデータを入れているシートを一つと、1か月ごとのシフト表を12個用意しています。   まず、4月度のシートに『4月度』と入力したら日付と曜日が自動的に入る様にするにはどのような関数が使えますか? 12枚のシートは全て同じ書式なので、日付と曜日を空白にしておいて、自動的に表示したいのです。 付け加えるなら、日曜と祝日にはフォントもしくはセルに色をつけたいのです。 もう1点。社員ごとに労働時間の累計を出していきたいのですが、現在は表に社員番号を入力すれば氏名が表示されるようにしており、例えばA1のセルの個人の数字を来月度もA1のセルの人と合計する式しか入れていません。 これだと各月の表の社員の並びが変わった時、別の社員の数字を合計してしまいます。 社員番号を入れれば各月の労働時間を合計するにはいかがいたしたらよろしいでしょうか? 長文の上、説明不足があるやも知れませんが宜しくご教授下さい。

  • Excel の関数は複数の表に反映されない?

    学校で細かいデータ集計を任されてしまいました。  何度やってもうまくいきません。教えてください。  同じExel上の4月シート、5月シートというようにしてそれぞれの月のデータ集計を月ごとに合計を出し、それら12か月のデータを集約した新たなシートの表に1年間の表にまとめようとすると、全く違った計算式(関数というのでしょうか)が出てしまいます。  言っていることが分かりにくいかもしれませんが、関数を出すために「レ」のところをクリックするとSUMとかの文字が出ますよね。そこでたとえば4月のシートで集約した合計データを、「4!AH47」とか入れて、総集計のシートの表にそっくりコピーされるようにします。5月シートで作った合計を、「5!AH47」とか入れて、総集計のシートの表にそっくりコピーしていき、総集計データで4月から3月までの合計を、一覧表自動的に反映されるようにしたいのですが、関数式のSUM(AH4:AH13)などとして、合計を出るように式はいれるのですが、答えに反映されるべきところ、ここでは合計が出て欲しいのになぜか%のデータが出てしまいます。○○○○%などとおかしな数値が表示されてしまうのです。  SUMでなくひとつひとつのセルの記号と+記号を次々に手動で入れても%が表示されるのです。  どこが間違っているのか、それとも何度も転載はできないのでしょうか。

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

    初めて質問します。よろしくお願いします。 エクセル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))という関数で表示しています。 私エクセル関数に関してはあまり詳しくありません。この表もフリーソフトで入手したものを使用しています。 よろしくお願い致します。

  • Excelのデータで表を見やすいように「テーブル」化しました。

    Excelのデータで表を見やすいように「テーブル」化しました。 そこで例えば1ヶ月間の買ったものと金額が表になってる場合、月曜日に買ったものの値段の合計を調べたいと思うのですが、SUM関数を使って合計金額を出そうとし、その曜日でフィルタをかけて月曜のだけを表示した状態で合計を求めるのですが、SUM関数で表をドラッグ?すると合計金額の中に別の曜日の金額も入ってしまいます。 例えば =SUM(A1:A100)だけど月曜日なのはA1~A20とA85~A100 月曜だけを求めたいのに、A1~A100すべての合計金額が出てしまう 解決策を誰か教えてくださいお願いします。

  • エクセルで作った勤務表の中で祝日勤務の合計日数

    エクセルで作った勤務表の中で祝日勤務の合計日数や土曜日出勤の合計日数をそれぞれ別に計算したいのですが、どういった関数を使ったらいいのでしょうか?

  • エクセル2000で関数を使って予定表を作りたいのですが・・・(2)

    先ほども質問させてもらったのですが、初心者のためなかなかできませんのでもう一度お願いします。 C3に2002年、D3に12月、A5に日、B5に曜と入力し下記のように表を作っています。 日 曜 1 日 2 月 3 火 ・ ・ ・ ・ ・ ・ 日にちの欄は1.2まで入力し後はコピーして31まで入力しました。 曜日の欄は=DATE($C$3,$D$3,A6)で入力してます。 1シートに2ヶ月分表示させます(例えば左は12月で右は1月というように)。そこで質問させてください。 1、土曜、日曜、祝日の日付、曜日の色を赤にするにはどうしたらいいですか? 2、2ヶ月分のカレンダーを表示させるにあたってJ3セルには翌月の月数が自動的に表示されるようにするにはどうしたらいいですか。また年が変わった時にはI3セルに年数が表示されるようにするにはどうしたらいいですか? テキストにはDATE関数とTEXT関数は使用すると書かれてました。 よろしくお願いします。

  • Excelとマクロを使った勤務表

    今エクセルで勤務表を作成しています。年と月を変更することで、項目欄に日付が入力されて、例えば31日ある月は31項目埋められ、30日ある月は30日まで項目が埋まり、土日はグレーに塗たいです。Sheet2にカレンダーを置いてそこから参照するような形で、毎月2009年2月1日などと入れるとその月の勤務表の日付と曜日が表示されるものを作りたいのですがどなたかご指南いただけませんでしょうか? 宜しくお願いいたします。

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

    ・セル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等いろいろ試みましたがうまくいきません。 ・解決方法を伝授下さいよろしくお願いいたします。

専門家に質問してみよう