2014年09月07日

日毎の作業時間(経過時間)を集計してみた(集計フィールドの追加)/Excel/ピボットテーブル

Excelのピボットテーブルで時刻の差から日毎の作業時間(経過時間)を集計してみます。
20140907_00時間計算.jpg

例えばこんな作業日報があって、一日毎に何時から何時までどんな業務をしたかが入力されています。
家庭だったら、勉強時間だったり、トレーニング時間だったりの集計ができると思います。
この元データ(データソース)には時間の計算はされていません。
それは、ピボットテーブルの集計フィールドで計算できるので、出来るだけ元データはシンプルにしておくためです。
20140907_01.JPG

では、最初は間違った例をみてみます。
まずは、元データからピボットテーブルを作ります。作業時間の集計フィールドはまだ作っていないので、値は空欄です。
“作業日”と“作業種別”のクロス集計にします。
20140907_02.JPG

フィールドリストはこんな感じです。
20140907_03.JPG

では、“値”である“作業時間”を求める集計フィールドを追加しましょう。
「ピボットテーブルツール」、「オプション」、「計算」から「集計フィールド」を選択します。
20140907_04.JPG

「集計フィールドの挿入」画面が開きます。
名前:“作業時間”
数式:“終了時間-開始時間”
と入力します。
20140907_05.JPG

すると、このように“値”に“作業時間”が表示されました。
小数で表示された値は時刻のシリアル値です。
20140907_06.JPG

このシリアル値を時間表示にしたいので、値にカーソルを置いて右クリックして「値フィールドの設定」を選択します。
20140907_07.JPG

「値フィールドの設定」画面が開きます。
「表示形式」を選択します。
20140907_08.JPG

「セルの書式設定」画面が開きます。
「時刻」で「13:30」を選択してみました。
20140907_09.JPG

「OK」すると、このように作業時間が“時間・分”で表示されました。
日毎の“総計”も正しく表示されています。
で、完了!?
20140907_10.JPG

んで、一番下の“総計”を見てみると。。。
あれれ、なんか変?“総計”が17時間10分!?
20140907_11.JPG

試しに、日毎の“総計”を全部範囲選択してみると、右下には“合計:449:10:00”と表示が。
つまり総計は“449時間10分”なはずなんだけど。。。
それに、“データ入力”作業の総計も30分なんてありえない!!
20140907_12.JPG

この間違いは、計算されたシリアル値をただセルの書式で“時刻表示”にしてしまったからなんです。
書式の“時刻表示”は“0:00”から“23:59”までの表示なので、24時間以上は1日と時刻表示になって、いわゆる経過時間の“時間表示”にはならないんですね。

では、正しい方法です。
「集計フィールドの挿入」で「数式」には
“=(終了時間-開始時間)*24”
と入力します。
これは、“終了時間(終了時刻)と開始時間(開始時刻)の差”は小数の時刻のシリアル値になっているのですが、
時刻のシリアル値“1”は“24時間”になりますので、このシリアル値に“24”をかけると直接“時間(経過時間)”が数値で求められるのです。
20140907_13.JPG

で、セルの表示形式は“数値”にします。
(標準でも構いませんが、少数が表示されるので数値にして小数点以下を“1”にしておきます。)
20140907_14.JPG

すると、今度は総計“449.2時間”と正しく表示されました!!
20140907_15.JPG

関連ページ
Excelで元データ(データソース)の作り方
クロス集計表を作成する
新しい集計フィールドを追加する
時刻のシリアル値とは
posted by haku1569 at 18:29| Excel ピボットテーブル | このブログの読者になる | 更新情報をチェックする