- ベストアンサー
エクセル カウントの仕方について
エクセル初心者です。 出勤時間と退勤時間のみの情報で時間帯別の出勤人数を カウントしたいと考えてます。 8/15 8/16 8/17 開始 終了 開始 終了 開始 終了 1さん10:30 16:30 11:30 17:00 2さん16:30 23:30 16:30 23:30 17:00 22:30 3さん 10:30 16:30 11:30 17:00 4さん10:30 22:30 16:30 22:30 17:00 22:30 5さん10:30 16:30 10:30 16:30 6さん10:30 23:30 16:30 23:30 17:00 22:30 7さん16:30 23:30 17:00 22:30 8/15 8/16 8/17 時間帯人数 時間帯人数 時間帯人数 10:30-15:00 15:00-17:00 17:00-18:00 18:00-20:00 20:00-22:30 20:00-23:30 可能でしょうか? 質問情報として少なければ、追加致します。 よろしくおねがい致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
シート1にデータがあり、B1-C1セルに8/15、D1-E1セルに8/16・・・のように1行目に日付が、2行目には日付に対応して、開始の列と終了の列があるとします。 A3セルから下方には氏名があり、それぞれの列には開始や終了の時刻が入力されているとします。 シート2にはお求めの表を作るとしてA3セルには10:30,B3セルには15:00 のように時間帯を2つの列の下方に入力します。 最終のA8セルには22:30、B8セルには23:30が入力されているとします。 C1セルには日付の8/15、D1セルには8/16、E1セルには8/17・・・・のように横に日付が入力されているとします。 2行目でC2セルには時間帯人数、と入力して右横にオートフィルドラッグします。 C3セルには次の式を入力して横方向にオートフィルドラッグしたのちに8行目まで下方にもオートフィルドラッグします。 =SUMPRODUCT((INDEX(Sheet1!$A$1:$X$10,ROW($A$3),MATCH(C$1,Sheet1!$1:$1,0)):INDEX(Sheet1!$A$1:$X$10,ROW($A$10),MATCH(C$1,Sheet1!$1:$1,0))<=$A3)*(INDEX(Sheet1!$A$1:$X$10,ROW($A$3),MATCH(C$1,Sheet1!$1:$1,0)):INDEX(Sheet1!$A$1:$X$10,ROW($A$10),MATCH(C$1,Sheet1!$1:$1,0)+1)>=$B3)) なお、式ではエラー処理をしていません。Sheet1では10行目まで、X列までのデータが対象になっています。適宜範囲を広げるなど実情に合わせて式を変更してください。
その他の回答 (1)
- cistronezk
- ベストアンサー率38% (120/309)
最初の表のシートをSheet1、8/15の開始列と終了列をそれぞれB列、C列とし、データは3行目から入力されているとします。 集計表は、A列に時間、B列が8/15、3行目から集計結果を表示するとします。 ●Excel2007なら =COUNTIFS("Sheet1!B$3:B$9",">=" & TIMEVALUE(Left($A3,4)),"Sheet1!C$3:C$9","<=" & TIMEVALUE(Right($A3,4)) ) ●Excel2003なら =SUMPRODUCT((Sheet1!B$3:B$9>=TIMEVALUE(Left($A3,4)))*(Sheet1!C$3:C$9<=TIMEVALUE(Right($A3,4)))) をB3に入力して、集計範囲にコピペします。
お礼
助かりました。有難うございました。 さすがです!!