- 締切済み
エクセルでの検索、集計の仕方
データの集計で時間ごとの集計をしたいのですが、 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 のデータを集計したいと思ってます。 どのような関数を使えばよいのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
>どのような関数を使えばよいのでしょうか? これは普通の関数では難しいでしょう。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 絶対参照を相対化して日付により、下方向に複写できるように修正してください。 結局関数ではないが、お勧めは、ピボットテーブルの利用をお勧めします。時間帯で分割するのにどうするか、考えれば良いです。日付別なら一発で出来ますよ。