• 締切済み

エクセル関数についての質問

いつもお世話になっています。 本日は添付いたしましたエクセルの表を作りたいと思い質問をさせて頂きました。 添付した表の説明になりますが、 黄色で色付けしているセルはそれぞれA~Dさんの出勤時間になります。 分かりにくいですがAさんの83013で8:30~13:00を、 Bさんの12017で12:00~17:00の勤務時間を表しています。 最初の数字3ケタで出勤時間を、残りの2ケタで退勤時間を表しています。 (最初が3ケタなのは30分からの出勤があり、その表記のためになっています。) 今回教えて頂きたいのが水色のセルの関数になります。 水色のセルにはその左に書いてある時間帯で何人働いているのかを表したいと思っています。 countifの関数で試してみたのですが退勤時間を過ぎても人数が減らず どうにもできなくなってしまいました。 説明下手で申し訳ございませんが、方法がございましたらよろしくお願い致します。

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

お示しの表でAがA2セルに、DがA5セルに入力されておりそれぞれの日でのデータが右横の列に入力されているとします。 A6セルには8:30-9:00、A7セルには9:00-9:30・・・・・下方に入力されているとします。 B6セルには次の式を入力して右横方向に℃ラグコピーしたのちに下方にもドラッグコピーします。 =IF(OR($A6="",COUNT(B$2:B$5)=0),"",COUNTIF(B$2:B$5,"<"&SUBSTITUTE(MID($A6,FIND("-",$A6)+1,5),":","")*1*10)-(COUNT($B$2:$B$5)-SUMPRODUCT((MOD(B$2:B$5,100)>LEFT($A6,FIND(":",$A6)-1)*1)*1)))

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

簡単のためA列に開始時刻(含む)、B列に終了時刻(含まない)を記入するとして C6セルに =COUNTIF(C$2:C$5,"<"&TEXT($B6,"hmm")*10)-COUNT(1/(MOD(C$2:C$5,100)<=HOUR($A6))) と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力、下にコピー、右にコピーします。 #あなたがどこ番地のセルにどう記入しているのか事実が不明なので、まず添付図の通りに作成して正しく出来ることを確認してから、改めてあなたのエクセルに合わせて間違えないようにやり直してください。出来ない時は、次回からは「実際のエクセルはどーいう配置になっているのか」キチンと情報提供して、やり直さなくて良い数式を回答してもらえるように配慮してください。 #「ホント」が「8:30-9:00」と記入されていてどーしても動かせないなら、その文字列からそれぞれの時刻を切り出して数式に組み込んでください。COUNTIFでトライしたとの事で文字列から時刻の切り出しまでは出来てるという事なので、支障は無いと判断します。 >説明下手で申し訳ございません (事実ではなく)説明のために作文した説明が幾つも間違っているので、若干困ります。 ・「分かりにくいですがAさんの83013」 ・図の2日の9時-9時半、10時-10時半の数値

  • DJ-Potato
  • ベストアンサー率36% (692/1917)
回答No.1

上手にはできませんでした。 B7 =($B$2<($A7+0.1)*1000)+($B$3<($A7+0.1)*1000)+($B$4<($A7+0.1)*1000)+($B$5<($A7+0.1)*1000)-(MOD($B$2,100)<=$A7)-(MOD($B$3,100)<=$A7)-(MOD($B$4,100)<=$A7)-(MOD($B$5,100)<=$A7) A列の数字は時間 8:30(はち ころん れい れい)ではなく、数値 8.30(はち てん れい れい)です。 勤務者が多いのであれば、出勤時間と退勤時間を一つの値にまとめるのをやめるといいと思います。

関連するQ&A