エクセルで日報を月集計・年集計する方法

このQ&Aのポイント
  • エクセルで日報を作成している際に、日報のデータを月ごと・年ごと、さらに人別・工事番号別に集計する方法を考えています。
  • 現在は、日報の項目を入力し、人ごとに入力、工事番号と科目で合計時間を出していますが、そのデータを月と年で集計し、人ごと・工事番号ごとのデータとして見られるようにしたいです。
  • ブック内の構成について迷っており、一人ずつブックを作成するのか、一人1シートで作成し月と年のシートを作成するのか、アイデアを求めています。
回答を見る
  • ベストアンサー

エクセル 日報 月集計・年集計について

エクセルで日報を作成しています。 今回、日報のデータを月ごと・年ごと、さらに人別・工事番号別に集計することになり、 どのように構成したらいいか考えており、アイデアをいただけないかと相談させていただきます。 日報の入力項目等は以下の通りです。 ・日付 ・社員No.(15名程) ・氏名 ・工事番号(現在は30件程ですが日々増えます) ・件名 ・作業No.(20項目:項目ごとに科目が振り分けられます→作業No.1~3と5は労務費といった具合です) ・作業内容 ・作業時間 ・科目 (今年度から単価が変わり、前年度の科目と今年度の科目(工事番号で区別しています)で単価が異なります) ・単価 現在は、これらの項目を入力し、人ごとに入力、工事番号と科目で合計時間を出しております。 このデータを月と年で集計をし、人ごと・工事番号ごとのデータとして見られるものにしたいのですが、 ブック内の構成を考えて行き詰っております。 一人ずつブックを作成したらいいのか、 一人1シートで作成し月と年のシートを作成したらいいのか・・・ 取っ掛かりから行き詰っていますのでこの先が不安ですが、 こうしたらいいのでは?といったアイデアをいただきたいと思います。 どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (254/607)
回答No.10

今までのことを整理しました 月別表 Sheet名は4月,5月,6月,7月,8月,9月,10月,11月,12月,1月,2月,3月 年計表のSheet名を年計とします 月別Sheet A列・日付…日付のユーザ設定でGE.MM.DD(AAA)で和暦で曜日まで表示可能 B列・社員No C列・氏名 式=VLOOKUP(B2,$K$2:$L$21,2,FALSE) D列・工事番号 E列・件名 F列・作業No G列・作業内容=VLOOKUP(F2,$O$2:$P$20,2,FALSE)) H列・作業時間 I列・科目 J列 空白 K列・社員No.=IF(年計!A3="","",年計!A3) L列・社員名=IF(年計!B3="","",年計!B3) M列・作業時間合計=SUMIF($B$2:$B$19,K2,$H$2:$H$20) N列 空白 O列・作業No.=IF(年計!T3="","",年計!T3) P列・作業内容=IF(年計!U3="","",年計!U3) Q列・作業時間合計=SUMIF($F$2:$F$20,O2,$H$2:$H$21) ※工事番号、件名、科目にも入力規則により選択入力  にし、作業時間も例えば30分単位の刻みリスト  を入力規則に適用するとマウスだけの入力が可能になります。 年計シート 1~2行目を見出し行 セルA1「単価見出し」セルB1単価 セルC1~O1セル結合して「社員別時間集計」 セルR1~AF1をセル結合して「作業別時間集計」 A列・社員No. B列・氏名 C列・4月(時間)='4月'!M2 D列・5月(時間)='5月'!M2 … N列・3月(時間)='3月'!M2 O列・年合計=SUM(C3:N3) P列・金額=$B$1*O3*24 Q空白 R列・作業No. S列・作業内容 T列・4月 … AF列・年合計=$B$1*AF3 AG列・金額=$B$1*AF3*24

suica52
質問者

お礼

何度もありがとうございます。 教えていただいた通りやってみました。 大変参考になりました。 ありがとうございました!

その他の回答 (9)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.9

A~Jは質問にある項目を順にA列からです A列・日付…日付のユーザ設定でGE.MM.DD(AAA)で和暦で曜日まで表示可能 B列・社員No C列・氏名 D列・工事番号 E列・件名 F列・作業No G列・作業内容 H列・作業時間 J列・科目

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.8

No.6のchayamatiです 違うものを添付してしまいました。 申し訳ありません 補足です 社員No.と社員No.入力規則を設定するように提案しましたが  この項目は2桁の数値なので手入力する方が早いですが  入力は手入力にするにしても設定することによりリストにない  値は受け付けませんので、誤入力を防げますので必ず設定して下さい 日付、No.の半角入力項目と氏名、工事名等全角入力項目が  入り乱れています。  全角入力、半角入力の切り替えが頻繁に起こりますね  個の切り替えを自動化する方法が入力規則の日本語入力タブ  で列毎に設定します。 社員Noと氏名、作業No.と作業内容Vlookupの式で対応させる と思いますが前処理(入力伝票)の流れで問題あるかもわかりませんが No.を外して氏名、作業内容を入力規則に設定すると項目数が減ります

suica52
質問者

お礼

何度もアドバイスいただきまして、 ありがとうございました。

回答No.7

自分であれば、データはひとつのテーブルとしてひとつのワークシートに記録していきます。 1レコード(行)に年、月、日、氏名、工事番号、件名、作業No.作業内容、作業時間、科目、単価を 記録します。 入力には”リスト”ワークシートを作成しておき年、月、日、氏名、工事番号、などリスト化出来るものは リスト化して入力規則を使って作業を簡素化出来るようにします。 年、月、日、を3つのフィールド(列)にしておけば後からオートフィルターやピボットテーブルで簡単に集計出来ます。

suica52
質問者

お礼

ご回答ありがとうございました。 年月日は別々に設定した方が良かったのですね… 他の部分ではほぼ同じようなものが出来上がったのですが、 年月日のは1つのセルにしてしまいました。 不具合が出たらそのように変更したいと思います。 大変参考になりました。 ありがとうございました。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.6

2~3提案します。 データ入力者は1~2名という認識でよいですね ・データシートは月毎に作成します ・年計シートを一つ 以上13のシートで設計します データシートには データ項目の右に空白列を挟んで次の月計の列を追加しましす 社員毎の月計用 ・社員No. (K列) ・社員名 (L列) ・時間計 (M列=SUMIF($B$2:$B$32,K2,$H$2:$H$32)) ・金額 作業毎の月計用 ・作業No.(O列) ・作業名(P列) ・時間計(Q列=SUMIF($F$2:$F$32,O2,$H$2:$H$32)) ・金額 年計シートには 社員毎の年計用 ・社員No. ・社員名 ・…月時間計(12か月分) ・…月金額(12か月分) ・時間年計 ・金額年計 作業毎の年計用 ・作業No. ・作業名 ・…月時間(12か月分) ・…月金額(12か月分) ・時間年計 ・金額年計 概要は以上ですが 単価もこの年計シートのどこかに用意します 年計シートには社員No.、社員名、作業No.作業名を入力し 他は月別シートの合計を式で定義します データシートのK列以降の社員No.、社員名、作業No.作業名 年計シートを式で参照します B列、F列の社員No.、作業No.はデータ入力規則で プルダウンメニューより選択入力するようにします [データリボン]→[データの入力規則]→[設定]→[リスト] →[元の値]→[=$K$2:$K$31] 完成すれば雛形としてテンプレートを登録して 毎年ファイル新規作成からこのテンプレートを呼び出します。 テンプレートの登録は名前を付けて登録するからファイルの種類を テンプレートにして保存します。 工事番号、件名には触れていません

suica52
質問者

お礼

ご回答ありがとうございました。 アドバイスいただいたように作成してみたのですが、 A~Jはどの項目を設定していただいたのでしょうか? ご教示いただけると助かります。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.5

いやいや >まずは一括で入力するシートと月、年のシートを作り、 >データを移してみたいと思います。 でなくて、一枚のシートにひたすら縦方向へデータを入力するだけで十分です。 必要なのは、データを抽出するシート 一例ですが、別途 月報というシートを作成したとします  A1に月の最初の  B1に月の最後の日をいれると 以下に、データのシートからその期間のデータを抽出してくる機能を考えます。 フィルターオプションという機能がありますし、VBAが使えるのでほかの方法 でも可能でしょう。 必要なシートとしては 1、データシート  2、期間指定して、データを抽出するシート 3、社員名簿 社員Noと社員名など 4、社業項目 作業Noと科目、単価など (これで、科目、単価の入力が不要になる) もし、旧年度、新年度で単価の変更があったのであれば、新しく作業番号を増やして科目、単価の 設定を行う方が良いでしょう。これからも単価変更など発生すると思いますし。 必要に応じて、社員別のデータ抽出、集計のためのシートなどが増える可能性があります。 月や年度でシートを増やしてはいけません。 発生する業務に対応するシートの必要性で考えます。

suica52
質問者

お礼

ご回答ありがとうございました。 うまく伝わらなかったようで申し訳ありません。 >まずは一括で入力するシートと月、年のシートを作り、 >データを移してみたいと思います。 についてですが、 一枚のシートにひたすら縦方向へデータを入力するだけ というのは一括で入力するシートで、 データを抽出するシートというのは月・年のシートです。 基本となるDBシート、入力用のシート、 入力用のシートから月と年のシートに抽出しようと思った次第です。 おっしゃっていることと同じのような気がするのですが… 解釈違いでしたら申し訳ありません。

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

エクセルの特徴を最大限に生かすためにはどうすればよいかを考えます。それにはできるだけブックの数は一つにして、ブックの中でも出来るだけシートの数を少なくする。しかも毎日入力するシートは一つにする。1つのシートでも15名程度を対象とする限りは何年間も使用することができますね。また、数年経過して改めたいということでしたら、そのブックのコピーを作ってブックの名前を変えて保存します。 お示しのような項目を持つシートをすべての元帳として例えばシート1に作るとします。 そこで氏名や社員Noについてはデータベースとしてシート2に表を用意し、そこからシート1ではリスト機能(データの入力規則)やVLOOKUP関数などを使って半ば自動的に表示できるようにします。 作業No、科目、単価などについてもデータベースとしてシート2又はシート3に用意して、それらのデータがシート1で利用できるようにします。 1件のデータについて複数の行を使うといったことはできるだけ避けます。日付については2013/2/24といった入力にします。あるいは今年のの2月24日なら2/24のように入力してもよいでしょう。作業時間についても8:00や21:30のような形で入力します。これらのことはすべてこれらのデータを関数を使って処理する場合には特に重要ですね。 なお、データベースのデータがシート1の関数で参照先になっている場合には、データベースの値を追加することは良いのですが変更する場合にはシート1での過去のデータも変更されてしまいますので注意が必要ですね。 月のシートは別にシートを用意して関数を使ってシート1のデータから表示できるようにします。 年のシートについても別に用意したほうがよいでしょう。 15人程度ですから人事面のデータは別として上記のシート内で表示できるようにしてはどうでしょう。別に個々人のためのシートを用意することも必要ないと思いますが。 なお、シート1から月や年のデータを容易に利用できるようにするにはデータ数も多くなることから難しい配列式などを使用しないで出来るだけシート1に作業列を用意して対応することです。 どのような作業列にすればよいのかは月や年でまとめる条件項目によって違ってきますのである程度の構想ができた段階で相談されるとよいでしょう。

suica52
質問者

お礼

ご回答ありがとうございます。 個人個人のシートは必要ないのですね。 アドバイスいただいたような形で現在作成しておりますが、 月と年のシートへの抽出が難しいです。 また、改めて相談しなければいけないかなといったところです。 大変参考になりました。 ありがとうございました。

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

こんばんは! 人それぞれで色々やり方はあると思いますが、 個人的見解として、集計等々を行う必要がある場合は極力1Sheetにまとめた方がやりやすいと思います。 お使いのExcelのバージョンが判りませんが、 Excel2003以前でも65536行・Excel2007以降ですと104万以上の行数が使用できます。 どうしても別シートに分けたいという場合は1年程度を1Sheetとしてやってみてはどうでしょう。 やり方としては 一つのSheetの列方向にに社員・工事番号等々の項目を作りあとはデータを行方向(下方向)に 社員・工事名等気にせず入力していきます。 あとは必要条件でオートフィルタをかけます。 仮にH列に作業時間がありその合計を表示したい場合は どこか使っていないセル(項目行の別列が良いと思います ←オートフィルタで非表示にならない行)に =SUBTOTAL(9,H:H) という数式を入れておきます。 これでオートフィルタで表示されている行だけの合計が表示されます。 この程度しか思いつきませんが 他に良い方法があればごめんなさいね。m(_ _)m

suica52
質問者

お礼

こんばんは!早々のご回答ありがとうございました。 現在の日報は入力したデータを前年度の工事番号か、今年度の工事番号かを関数で判断して、VBAで工事番号と科目で合計を出しておりまして、 オートフィルタをまったく思いつきませんでした。 早速、実験してみたいと思います。 また、バージョンを書き忘れてしまいましたが、 7になります。 何かまたいいアイデアがありましたらよろしくお願いいたします。

回答No.2

大変な仕事ですね。 この仕組み(システム設計)は当初の設計をはっきり立てないと、後々の拡張に対応できなくなります。 ざっくりと感じたことは、ひとつのシートに各項目をセルで並べ、ひとまとめに集計する方が良いのではと思います。 工事番号が増える事を見越して、「月ごとのシート」で集計し、年間に持っていく方が対応し易いと思います。 また、科目も単価が変わるなら「現単価」から単価が変わる「変更月」も指定出来る様に設計されては如何でしょうか。 ブックを別にするより、一つのブック内で対応した方が設計し易いと思います。 このシートで請求書等作成するなら詳細な設計が必要かと思いますが、EXcelでここまで管理出来れば最高のものが出来ると思いますよ。 あなたがお使いのExcelのバージョンは分かりませんし、これが完成すれば立派なシステム担当者に成れますよ。 少し大変な作業になりますが、シートをこまめに分けて一つ一つ集計する方をお勧めします。

suica52
質問者

お礼

こんばんは!早々のご回答ありがとうございます。 また、エクセルのバージョンを書き忘れて質問してしまいまして… 申し訳ありません。2007になります。 いつも思いついたままに作成してしまい、修正修正と繰り返してしまっているので、初めにご相談させていただいた次第です。 ブックは別けない方がいいのですね。 現在の日報はユーザーフォームを作成し入力を行い、工事番号で何番以降、新単価といった区切りになっておりまして、それを関数で判断させてVBAで工事番号、科目で合計時間を出しております。 そのデータから請求書を作成することはありませんが、労務費などお金に関わるデータですので、慎重にじっくり考えて作成していきたいと考えております。 まずは一括で入力するシートと月、年のシートを作り、 データを移してみたいと思います。 アドバイスいただきありがとうございました。

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

実に難しい質問ですね。 > こうしたらいいのでは?といったアイデアをいただきたい まずは「エクセルとはどういう事が出来るソフトか?」と言うのを覚えるために 虎の巻的な本を一冊購入し、学習されることを強くオススメします。

suica52
質問者

お礼

こんばんは! ご回答ありがとうございます。 きちんと勉強したことがなかったので、みなさんはどういった具合に作り上げていくのか、お伺いした次第です。 これを機にきちんと勉強しないといけないですね。 ありがとうございました。

関連するQ&A

  • 日報(1シート1日)を月報に集計

    エクセル2010使用です。 1ブックに8月分日報(1シート1日分)+月報用で32シートあります。 フォーマットはすべて同一です。 日報シートには、3人の作業者に作業工程A作業からD作業です。実施作業には、【件数】と【金額】を投入してもらいます。 この日報(31シート)を月報に集計する方法を教えてください。 データには空白あり、エラー値もあります。 空白とエラー値はそのままで使用します。 フォーマットは全部同じです。 よろしくお願いします ※OKWaveより補足:「ひかりTVのサービスやISPぷらら」についての質問です。

  • エクセルでデータを抽出して日報を作りたいです

    今は日報を手書きで作っているんですが、今度からパソコンで作ることになり、かなり困ってます。 やりたい内容としては、エクセルで作っている顧客データがあるんですが、それの中の郵便番号を絞り込んで別ブックの日報のシートに顧客名だけを移す作業です。マクロ初心者で本を読んではいますがどうしていいのかわかりません。どなたか教えてください。 ≪顧客データ≫ A列      B列     C列     D列       顧客名  電話番号  郵便番号  市町村名    顧客データはこのような並びです。顧客名は2行目から始まっており、24000行ほどあります。 ≪日報≫ A列     B列 番号   顧客名 日報はこの並びです。日報の顧客名を移したい場所はB列の13行目から表示させたいです。 日報を作るときにできれば顧客データを触りたくないので、日報でセルに郵便番号を入れて マクロで作れるボタンをクリックして作成できたらいいかなって思っています。 ちなみに日報はデスクトップにあるんですが、顧客データは違うフォルダの中に入っています。 マクロ初心者ですがどなたかわかる方がいましたらよろしくお願いいたします。 わかりやすくコードを書いていただけると助かります。

  • エクセル・別シートに集計

    他の方のものを見ても自分に当てはめることができす、質問させて頂きます。 エクセル2010を利用しています。初心者です。よろしくお願いします。 同じエクセルブックにデータのシートが3枚あり、その内容をまとめて抽出させるシートを同じブック内に作成したいです。どなたか方法を教えていただけないでしょうか?? シート3枚のデータの合計を、○のついたセルを都道府県別に数え、データが更新されれば集計も更新できるようにしたいです。 (ちなみに前任者が作成した同じようなシート(別データを集計)は、集計シートにデータの最新番号を入力するセルがあり、そこに最新のデータ番号入力すると、データが反映されるようになっていました。同じにできなくてもよいです。) データの内容は「データ番号」「氏名」「住所」「都道府県」「電話番号」・・・「○or空欄」といった感じです。 同じ様な質問をたくさん閲覧したのですが、自分のデータに当てはめることができませんでした。 何卒よろしくお願いいたします。

  • Excelで日報から月報へとデータ参照をさせたい。

    現在、Excelで日報を作成しています。 日報に入力したデータが、既存の月報へ反映されるようにしたいのですが、 なかなかうまくいきません。 既存の月報は、1ヶ月分をひとつのブックとし、 その中に各従業員の名前のシートを作成し、保存しています。 今回新たに作成しようとしている日報は、 やはり1ヶ月分をひとつのブックとし、 その中に1~31日のシートを作成し、保存したいと思っています。 今までは、月報しかなかったため、 従業員一人ひとりのシートにデータを入力していたのですが、 これからは1日の終わりに、 日報にデータを入力し、 それを月報に反映する事が出来れば 少しでも効率的になるため、そのように出来れば…と考えています。 添付画像の例では、 【平成25年11月 日報.xlsx】ブックの [1日] シートの、 B4~C6に入力したデータを、 【平成25年11月 月報.xlsx】ブックの [鈴木] [佐藤] [田中] の各シートの、 11/1(金)に、対応するセル(C4~D4)へと反映したいです。 ですが、日報も月報もシート数が多いため (添付画像の例はシート数を省略しています)、 今後、毎月同じように1ヶ月分のブックを作成していく事を考えると、 どのような参照の仕方や作成の仕方をすれば良いのかわからず、 途方に暮れています。 Excelに詳しくないため、 なるべくわかりやすくお教えいただけると幸いです。 大変お手数をお掛け致します。 Excelに詳しい方、どうかご教示くださいますようお願い致します。

  • エクセル上での時間集計

    エクセルを使用して作業日報を作成していますが、時間集計の方法と、集計時間に定数をかけて算出する方法を教えて下さい。日々の入力は、開始時刻9:00、終了時刻18:00、休憩1:00にて作業時間8:00(A)。これを1カ月繰り返して、作業時間を集計する(B)。このBに6000を掛けて¥000,000.-みたいな表示をしたいのです。宜しくお願いします。

  • EXCEL(エクセル)の集計方法について。

    EXCEL(エクセル)の集計方法について。 仕事が進まず、大変困っています。 列A~Zまでに複数の項目があります。 ピボットを使い、表を作ります。 縦にA~Cの項目「名称」、「型式」、「単価」をとります。 横にD~Eの項目、「受注番号」、「項」をとります。 そして、Fの項目「個数」の集計をします。 しかし横が入り切れませんでした。 「受注番号」、「項」を基準にデータを三つに分け、ピボットで作成しましたが、それでは縦の行がバラバラになってしまいます。 縦の行は全く同じものをそれぞれの表では使いたいのです。 そういう表は作れますか?なるべく関数は使いたくありません。(データが何千行とあるので重くなります) 初心者なので、説明が分かりづらく、申し訳ございません。 アドレスをお願いします。

  • excel 複数ブック・シートからのデータ抽出

    下記画像の日報を集計したいのですが、ご教授お願いします。 『1月~12月』というブックの中に、『1日~31日』というシートを作成し日報管理を行っています。 すでに『1月~12月』というブックは作成されているので、そちらはいじらずに、その内容を「作業内容集計」という一つのブックに集計したいと思っております。 単価の列に金額が入っていた場合に、行全体を抽出し、一年分を一つのシートにまとめたいのですが可能でしょうか? おそらくマクロでないと無理だと思うのですが、関数でも、こんな方法があると教えていただける方がおられればうれしく思います。 excelは2003~2010という混在の環境ですが、とりあえずexcel2010で集計できれば良いと考えています。 よろしくお願いいたします。

  • エクセル 1ヶ月の労働時間の集計のマクロについて

    いつもお世話になります。エクセルのマクロを使った集計方法について ご教授下さい。 建設会社の部署別に作業日報ファイルを受け取って、各作業員の就業時間の集計を行っております。そこで簡単円滑な方法はないかとただいま思案中であります。 ファイルは、次の通りです。 【例】10月の場合(31日) BOOK1にシート31用意します。各現場監督が各作業員の労働時間の集計を入力します。作業員には各自作業員NO.をつけます。 (今回マクロを伝授をしていただけるかな?という前提でつけることに 致しました) 例:1シート= 001(社員NO.) 7.00h         021(社員NO.) 6.50h         081(社員NO.) 7.00h ....... 2シート= 001 6.50h         085 7.00h.......    例のように、毎日同じ作業員が出勤するとは限りません。  1現場に付き20~30名の作業員がいます。  定期的に現場も変わり、10月は5現場だったが、11月は4現場にな ることもあります。  各現場のBookファイルを使って、作業NO.を目安に1ヶ月の各作業員の 労働時間を割り出す方法(マクロ)を教えていただきたいのです。   ※シートの同じセルに同じ作業員のNO.が入るとは限りませんので    串刺し集計は、使えません。  どなたか「アドバイス」よろしくお願いいたします<m(__)m>       

  • エクセル2000での集計方法

    エクセル2000を使用しております。 現在シ-トに下記の表があります。同じ項目を集計してその集計部分だけを印刷したいのです。 例)  商品番号 売上数量 売上単価 売上金額 原価単価 原価売上     A000001   100    1000     100000     500     50000 普通に集計しますと単価も足されてしまいます。よく解っていなくて申し訳ありませんが集計して表示も出来るようにするにはどうすれば良いのでしょうか?

  • エクセルの集計について

    こんにちは。 知恵をお貸しください。 現在職場でエクセルの集計シートを作成しています。 以下のような内容です。 -------------------------------------------------- (1)入力画面(シート1) いくつかの項目について検体数を入力する。毎日行います。 (2)集計結果(シート2) シート1の項目・検体数に応じて集計。 (3)日表(シート3) シート2の結果を日にちごとに貼り付ける。 実行ボタンなどを使用したい。 ※入力者は皆パソコン初心者なので、 (1)の検体数入力と(3)の実行ボタンを押すだけにしたいです。 -------------------------------------------------- (1)、(2)までは完成したのですが、 (3)の作業を作成できません。 (1)はドロップダウンリストから選択させ、 (2)はSUMIFで集計したものです。 (3)ではマクロで貼り付けの操作を組めば良いのですか? 日にちごとというのが難しく、身動きが取れません。 説明が下手で申し訳ありませんが、 ご教授願います。 よろしくお願いします。

専門家に質問してみよう