• ベストアンサー

至急!!エクセルでの集計方法。

至急!!エクセルで集計方法。 エクセルについて質問です。 (例)従業員と残業時間 佐藤 10時間 山田 5時間 鈴木 5時間 高橋 3時間 川崎 2時間 本田 2時間 で表を作成しました。 これを「2時間は2名、3時間は1名、5時間は2名、10時間は1名」といったようにグラフ化などで自動的に集計する方法はないのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

至急なんて質問者の勝手なことをいっているが、既回答の回答に直ぐ反応して無いではないですか。 下記の点で質問内容も不完全です。 (1)エクセルバージョンも書いてない。2007かそれ以外で答えが変わる。2007以外とする。 (2)時間の入力が2:30:00のような入力になっているか。 文字列や数値ではないでしょうね。時刻シリアル値とする。 (3)集計する方法はないのでしょうか 件数カウントではないのか。集計とはいわない。 (4)自動的に集計する方法 自動的とは?関数で出れば良いのでしょうね。 ーーーー 例データ D,E列は時間区分。E列が時刻シリアル値(24時間が1) A列  B列       D列   E列      件数 氏名 時間 0 佐藤 10:00:00 1:00:00 0.041666667 0 山田 5:00:00 2:00:00 0.083333333 2 鈴木 5:00:00 3:00:00 0.125 1 高橋 3:00:00 4:00:00 0.166666667 0 川崎 2:00:00 5:00:00 0.208333333 2 本田 2:00:00 6:00:00 0.25 0 7:00:00 0.291666667 0 20:00:00 0.833333333 1 F2は=SUMPRODUCT(($B$2:$B$10<=E2)*($B$2:$B$10>E1)*1) 下方向に式を複写。エクセル2007ならCOUNTIFSを使える。 E列E1は0、E2には="1:00:00"*1 以下1:00:00の1の部分を2,3,4、・・と増やす。 ーー 関数では上記のようなことになるが、ピボットの方が簡単とは思う。

その他の回答 (3)

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

こんばんは! すでにこの質問に最も適しているピボットテーブルの回答が出ていますので、 他の方法の一例です。 ↓の画像のC列を作業用の列として使用させてもらっています。 C2セルに =IF(COUNTIF($B$2:B2,B2)=1,ROW(A1),"") という数式を入れオートフィルでずぃ~~~!っと下へコピーします。 E2セルに =IF(COUNT($C$2:$C$1000)<ROW(A1),"",INDEX($B$2:$B$1000,SMALL($C$2:$C$1000,ROW(A1)))) F2セルに =IF(E2="","",COUNTIF($B$2:$B$1000,E2)) という数式を入れ、E2・F2セルを範囲指定し、 F2セルのフィルハンドルで下へコピーすると画像のような感じになります。 尚、数式は1000行まで対応できるようにしていますが、 データ量によってアレンジしてみてください。 そして、時間の行の表示順は元データの出現順になりますので もし、並び替えをしたいのであれば 元データを並び替えするか、抽出した表を「値」にチェックを入れてコピーし それを並び替える方法になると思います。 以上、長々と書きましたが 参考になれば幸いです。m(__)m

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

ピボットテーブルを使用して、行に「残業時間」、データに「データの個数/従業員名」でどうでしょう。

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

ピボットテーブル/ピボットグラフの例題のような問題ですね。 http://hp.vector.co.jp/authors/VA014071/tips/xl_pvt1.html ゴチャゴチャ書くより、「ピボットテーブル」で検索してヒットした 上記のようなサイトを参考にした方が分かりやすいです。

関連するQ&A