• 締切済み

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

データの集計で時間ごとの集計をしたいのですが、 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/17068)
回答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 絶対参照を相対化して日付により、下方向に複写できるように修正してください。 結局関数ではないが、お勧めは、ピボットテーブルの利用をお勧めします。時間帯で分割するのにどうするか、考えれば良いです。日付別なら一発で出来ますよ。

関連するQ&A

  •  勉強時間の指定期間内の集計をしたいです。

     勉強時間を集計しています。  A列科目、B列開始日、C列開始時刻、D列終了日、E列終了時刻、F列合計のシートです。  集計開始日と集計開始終了日の間の期間だけをJ列の科目ごとにK列に集計したいのです。  日付データで、どのようなネストを組んだらよいかわかりません。  AVERAGEIFSとDATE関数だとは思うのですが。  よろしくお願いします。

  • エクセルでの集計

    A列に下記のようなデータが千件くらい入っています。 例:C-100/50/5/5   A-200/100/50/5   B-100/100/10/10   C-100/50/5/5   A-200/100/50/5   D-300/50/50       ・       ・ かなり重複もあります。 C列にA列のデータを以下の様に集計したいと思います。 例:A-200/100/50/5   B-100/100/10/10   C-100/50/5/5   D-300/50/50      ・      ・ 重複している場合は1行とし抜き出し、順番に集計したいのですが、 マクロか関数でする場合、どのような記述になるのでしょうか? よろしくお願いします。

  • エクセルの集計について教えてください

    エクセルの集計について教えてください 添付のように、A列からは入力用 A列 日付(複数月にまたがる) B列 金額 C列 項目 E列からは集計用として E列 項目 F列からは月ごとに集計できるような表を作りました 集計用は、また別途ほかのシートで参照して使用する予定です A列には、今後も次々データを足していく予定です 月単位でデータを抽出したのち、項目ごとに合計を算出したいのですが、どの関数を組み合わせればいいのかわかりません。 エクセルはほぼ初心者です ピボットテーブルを使用してもよいのですが、ほかのシートで参照できる方法を教えてください よろしくお願いします

  • Excel 集計の仕方を教えてください。

    エクセルで集計の仕方を教えてほしいです。 A 2 B 5 C 1 A 7 B 6 C 8 ・ ・ ・ ・ このように続くデータの、ABCの各合計を出したい場合、 使える関数はありますか?  

  • 分ごとの集計で

     初めまして、よろしくお願いします。  A列に 2007/9/6 15:09:46      2007/9/6 15:09:50      2007/9/6 15:10:06 " " と表示されているデータで、分ごとの集計を出したいと思います。  ここで B列には集計されるデーター数が、 C列に =IF(A1<>"",FLOOR(A1,"0:01"),"")  と言う関数を使い、秒数を切り捨て、 D列に  2007/9/6 15:09:00 すぐ下に関数=D1+"0:01:00" E列に集計させる関数=SUMIF(c:c,d1,b:b)  という風に作ったのですが、部分的に集計がでるのですが、集計0とでてしまう部分が多くありました。これはなぜでしょうか。また、何か別の方法でいいものがあれば教えて頂きたく、よろしくお願いします。

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

    単刀直入に質問させていただきますと、A列に日付、B列に文字列を入れている表を作成しました。 (例)    A     B 1 2000/04/25  あいう 2 2000/08/18  えおか 3 2000/12/30  きくけ 4 2001/05/18  こさし 5 2001/09/05  すせそ 6 2002/01/04  たちつ 7 2002/03/15  てとな 8 2002/06/14  にぬね 9 2002/08/15  にはひ このデータから各年別の件数を集計したいと思っています。 今回求めたい結果は次のとおりです。   E    F 1 2000年  3 2 2001年  2 3 2002年  4 F1~F3にはそれぞれどのような関数or計算式を入れればよいのか、色々な関数を用いて試してみましたが、私の力では満足のいく結果が得られませんでしたので、なにか良い方法があればお知恵をお貸しください。 宜しくお願いします。長文失礼致しました。

  • エクセルでの稼働日数集計

    使用ソフトはエクセル2003です。 期間内の稼働日数を集計したいのですが、同日の結果が複数行存在します。 この場合にどのような関数で集計できるかを御教示頂きたく、宜しくお願いします。 例: A列 2014/01/01 2014/01/01 2014/01/03 2014/01/05 2014/01/09 2014/01/09 2014/01/15 2014/01/31 2014/01/31 2014/02/01 2014/02/04 2014/10/27 上記の場合、2014年1月中の稼動日数として「6」日を集計したいのです。 尚、作業列としてB列にそれぞれの月の1日の日付データをB列に入力しており 2014/01/01 2014/02/01 2014/03/01 : 2015/01/01 一ヶ月のトータル稼動件数をSUMPRODUCT関数を用いて、 =SUMPRODUCT((A1:A12>=B1)*(A1:A12<B2)) ※今回のサンプルデータの場合「9」 を計算しております。

  • エクセルで集計

    エクセルで集計 シート1:A列に日付2000行程度、B列に品名A,B,C,D…500種類程度、C列にその内容。日毎に行は増えていきま、同じ品名が何度も登場してきます。 シート2:ここに新しくシート1の集計をして、同じ品名の多い順に並べ替えてリストを作成したいと思います。 シート1に新しく行が増えると同時にシート2の集計に反映させたいのですが、いい方法はありますか?

  • 別シートに勉強時間の集計 これに集計期間を指定

    お世話になっています 質問No.9097443 質問No.9089695  質問No.9104294でご指導いただきました。 ◎希望条件 勉強時間を集計したシートA列:科目 B列:開始日 C列:開始時刻 D列:終了日 E列:終了時刻 の記載があるsheet1には終了時刻から開始時刻を差し引いた作業時間を表示する列がない。 sheet1に差引の作業時間列を追加することなく、別のシートで各科目の勉強時間を集計する方法を教えてもらいました。 ************************************************************************************* ◎レクチャー頂いた内容は Sheet3のA列とB列を作業列として使用して、Sheet2に科目ごとの勉強時間の合計を集計するものとします。 Sheet3のA2セルに次の関数を入力して下さい。 =IF(INDEX(Sheet1!$A:$A,ROW())="","",IF(COUNTIF(Sheet1!$A$1:INDEX(Sheet1!$A:$A,ROW()),INDEX(Sheet1!$A:$A,ROW()))=1,ROW(),"")) Sheet3のB2セルに次の関数を入力して下さい。 =IF(OR(INDEX(Sheet1!$B:$B,ROW())="",INDEX(Sheet1!$C:$C,ROW())="",INDEX(Sheet1!$D:$D,ROW())="",INDEX(Sheet1!$E:$E,ROW())=""),"",IF(ISERROR(1/(YEAR(INDEX(Sheet1!$B:$B,ROW()))>1904)/(INDEX(Sheet1!$C:$C,ROW())+0>=0)/(INDEX(Sheet1!$C:$C,ROW())+0<1)/(YEAR(INDEX(Sheet1!$D:$D,ROW()))>1904)/(INDEX(Sheet1!$E:$E,ROW())+0>=0)/(INDEX(Sheet1!$E:$E,ROW())+0<1)),"",IFERROR(TEXT(INDEX(Sheet1!$D:$D,ROW())+INDEX(Sheet1!$E:$E,ROW())-INDEX(Sheet1!$B:$B,ROW())-INDEX(Sheet1!$C:$C,ROW()),"[h]:m:s")+0,""))) Sheet2のA2セルに次の関数を入力して下さい。 =IF(ROWS(A$1:A2)>COUNT(Sheet3!$A:$A),"",INDEX(Sheet1!$A:$A,SMALL(Sheet3!$A:$A,ROWS(A$1:A2)))) Sheet2のB2セルに次の関数を入力して下さい。 =IF($A2="","",TEXT(SUMIF(Sheet1!$A:$A,$A2,Sheet3!$B:$B),"[h]:m:s")+0) ************************************************************************************* ◎☆今回は、このシートに集計期間を設定したいのですが、 可能でしょうか。  上記のやり方だと、Sheet1の全ての日付の項目を集計してしまいます。  そこで、  D3に集計指定期間開始日  E3に集計指定期間終了日 を設定するなどしてできないでしょうか。  sheet!1に指定期間日を設定しないやり方でしたら、Sheet2でもSheet3にでもどちらでもいいのですが。  よろしくお願いします。

  • Excelで日付別の集計を取るやり方

    実際の内容とは違いますが例えとして、 添付の画像のように、A列に日付が並んでいます。注文が入り次第下に追記していくので日にちはランダムです。 B列に商品名がそれぞれ並びます。 ここからが質問で、 上記シートの隣に集計用シートを作りたいと思っています。 集計用シートでは、日付が1列にカレンダーのように並んでいて、そこに商品の数を拾って出したいと思っています。 縦軸にカレンダー(日付) 横軸にA,B,C,D それぞれ日毎の数量をカウントするようにしたいです。 どのような関数、操作になりますでしょうか? 初級者のため、易しく教えていただければ幸いです。 よろしくお願いします。

専門家に質問してみよう