• 締切済み

エクセルでの検索、集計の仕方

データの集計で時間ごとの集計をしたいのですが、 A1   A2   A3  11/1  8:00  A 11/1  8:30  C    ・    ・ 11/1  13:50  C 11/1  14:10  B というように1列目に日付、2列目に時刻 が入っているのですが、8:00~14:00のA3のデータを 集計、次は14:00~20:00まで、20:00~次の日の2:00 のデータを集計したいと思ってます。 どのような関数を使えばよいのでしょうか?

みんなの回答

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

>どのような関数を使えばよいのでしょうか? これは普通の関数では難しいでしょう。3条件付きの集計になるからです。日付+開始時刻+終了時刻の3つです。 SUMPRODUCT関数か、配列数式によることになります。 配列数式の答えの一例を挙げるが、配列数式が初めてだったりしたら、判るでしょうか。 (例データ)A2:C20 2004/11/1  13:30 1 2004/11/1  17:30 2 2004/11/1  8:30 3 2004/11/1  11:30 4 2004/11/1  9:30 5 2004/11/1  15:00 6 2004/11/1  16:30 7 2004/11/1 18:00 8 2004/11/1 21:30 9 2004/11/2  8:30 10 2004/11/2  11:30 11 2004/11/2 9:30 12 2004/11/2 15:00 13 2004/11/2  16:30 14 2004/11/2  18:00 15 2004/11/2  21:30 16 2004/11/2 22:30 17 2004/11/2  14:30 1 2004/11/2  12:30 1 (関数式) D1:D2にA列に出てくる、日付の1組を並べます。 本件例では 2004/11/1 2004/11/2 またE1からI1に 0:00 8:00 14:00 20:00 24:00:00 を入れます。 以下でS+C+EはShiftキーを押しつつCtrlキーを押しつつ、Enterキーを押すことを意味する。 E2に=SUM(IF((A2:A20=$D$2)*(B2:B20>=E1)*(B2:B20<F1),C2:C20,0))といれS+C+E F2に=SUM(IF((A2:A20=$D$2)*(B2:B20>=F1)*(B2:B20<G1),C2:C20,0))といれS+C+E G2に=SUM(IF((A2:A20=$D$2)*(B2:B20>=G1)*(B2:B20<H1),C2:C20,0))といれS+C+E H2に=SUM(IF((A2:A20=$D$2)*(B2:B20>=H1)*(B2:B20<I1),C2:C20,0))といれS+C+E E3:H3は、それぞれ =SUM(IF((A2:A20=$D$3)*(B2:B20>=E1)*(B2:B20<F1),C2:C20,0)) =SUM(IF((A2:A20=$D$3)*(B2:B20>=F1)*(B2:B20<G1),C2:C20,0)) =SUM(IF((A2:A20=$D$3)*(B2:B20>=G1)*(B2:B20<H1),C2:C20,0)) =SUM(IF((A2:A20=$D$3)*(B2:B20>=H1)*(B2:B20<I1),C2:C20,0)) です。 (結果) 0:00 8:00 14:00 20:00 24:00 2004/11/1 0 13 23 9 2004/11/2  0 34 43 33 絶対参照を相対化して日付により、下方向に複写できるように修正してください。 結局関数ではないが、お勧めは、ピボットテーブルの利用をお勧めします。時間帯で分割するのにどうするか、考えれば良いです。日付別なら一発で出来ますよ。