• 締切済み

ExcelでHOURを使って25:00の25を取り出したい

現在シフト表の作成をしています。 そこで例えば 開始時間のセル(C7)に「17:00」 終了時間のセル(D7)に「18:00」 という数値が入力されるとM7がオレンジで塗りつぶされるように M7に「=IF(AND(M$6>=HOUR($C7),M$6<HOUR($D7)),1,"")」 という関数を入力し、条件式書式にて セルの値が1に等しい時、オレンジに塗りつぶすようにしました。 ところが終了時刻は1:00まであるので、 17時~25時が17時~1時と認識されてしまいFalseになり塗りつぶせません。 何か良い方法はないでしょうか。 HOURを使うと出来ないのであれば使わなくても構いません。 しかし視認性の良さから表示はあくまで00:00という表記にしたいです。

みんなの回答

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.8

No.4です。 そのままでいけるはずです。試して見てください。

narayuni
質問者

お礼

出来ました! さっきは他のセルにコピーせずに試したから出来なかったようです。 早とちりのお礼失礼しました。 とても嬉しいです!

narayuni
質問者

補足

締め切る上でポイント付与という事で悩みました。 一番最初に答えへ導いてくれた回答がいいのか 一番実用的な答えへ導いてくれた回答がいいのか 自分の確認不足がなければ一番最初に答えへ導いてくれた回答か。 そもそも後出し後出しでの情報不足の状態で答えてもらったのに1番も2番もあるのだろうかと。 全て素晴らしい回答で全員に付与出来ないのが心苦しいです。 ですので、今回は付与しない事にしました。 ポイントが欲しい人に対して申し訳なく思います。 皆様の回答を分析して参考にしエクセルをもっと勉強していこうと思います。 本当にありがとうございました!

  • turuzou
  • ベストアンサー率33% (15/45)
回答No.7

No.2です。 M7に「=IF(AND(M$6>=HOUR($C7),M$6<HOUR($D7)),1,"")」 上記を下記に変更してみてください。(C7に17:00、D7に25:00) M7に「=IF(AND(M$6>=VALUE(TEXT($C7,"[h]")),M$6<VALUE(TEXT($D7,"[h]"))),1,"")」

narayuni
質問者

お礼

回答ありがとうございます。 凄い! 10時表記のままうまくいきました! 入力式が全然違うのに色々やり方があるんですね。 Excelの奥深さを実感しました。

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.6

>6行目にはそれぞれ9,10,11・・と時刻が入っています。 >M$6の場合だと17時と表示されていて数値の17が入力されて >います。 6行目に9:00,10:00・・とシリアル値で入力しましょう M7に「=IF(AND(M$6>=$C7,M$6<$D7),1,"")」 でいいのでは 時間未満を切り捨てにしているのかな

narayuni
質問者

お礼

回答ありがとうございます。 ビンゴです! 見事に成功しました!! 9時や10時の方が見やすいかな?という余りこだわりのない理由でした。 苦労した分喜びもひとしおです。 ありがとうございました!

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.5

>M7に「=IF(AND(M$6>=HOUR($C7),M$6<HOUR($D7)),1,"")」 M6がどういうものか分かりませんが・・・ なぜ HOUR関数を使用しているのかな 日付を扱っていないなら 「=IF(AND(M$6>=$C7*24,M$6<$D7*24),1,"")」 分を無視するためなら、この回答を無視して下さい

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

C7に開始時刻(例:17:00) D7に終了時刻(例:1:00) M6に何か判りませんが時(~25)(例:24) と入っているとして、 M7に =IF(AND(M$6>=HOUR($C7),M$6<(HOUR($D7)+24*(HOUR($D7)<=1))),1,"") これでどうでしょう?

narayuni
質問者

お礼

回答ありがとうございます。 終了時刻を25:00にしてみると見事に塗りつぶせました! のですが・・・ また書き忘れで申し訳ないのですが・・・ 開始時刻と終了時刻の間も同時に塗りつぶし+各時刻のカウントもしたいです。 17時~25時の場合、間の16時~24時も同じように塗りつぶしたいのです。 試す前に聞いてばかりで申し訳ないですが、取り急ぎお礼をさせて頂きます。ありがとうございます。

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.3

すみません 質問していいですか? >開始時間のセル(C7)に「17:00」 >終了時間のセル(D7)に「18:00」 >という数値が入力されるとM7がオレンジで塗りつぶされるように >M7に「=IF(AND(M$6>=HOUR($C7),M$6<HOUR($D7)),1,"")」 上記のメッセージから開始時間(C7)と終了時間(D7)の間にM$6が入っていればよいと受け取れ、ANDでもう一つ0時から1時の範囲を作りORで評価すればよいのでは?と思うのですが、ここで M$6 の役割は何なのでしょう?定数(C7,D7が変数)?、変数(C7,D7が定数)?

narayuni
質問者

お礼

申し訳ありません。書き忘れていました。 6行目にはそれぞれ9,10,11・・と時刻が入っています。 M$6の場合だと17時と表示されていて数値の17が入力されています。 もうひとつ追記として、指定の時間(17時台)に何人勤務しているかというのもCOUNTしている為、塗りつぶすセルには「1」を返すようにもしたいです。 それを利用しての条件式書式にてセルの値が1に等しい時にオレンジ色に塗りつぶすようにしています。 ちなみにエクセルは数日しか触っていないど素人です。

  • turuzou
  • ベストアンサー率33% (15/45)
回答No.2

こんな感じでも? C7とD7の比較として(C7に17:00、D7に25:00) =VALUE(TEXT(C7,"[h]"))<VALUE(TEXT(D7,"[h]"))

narayuni
質問者

お礼

回答ありがとうございます。 試しに丸ごとコピペしてみましたが「true」という値が返されて終わりました・・・。 条件式書式を変更しないといけなかったかな? 後で試してみます。

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

1:00までしかないんですよね。でしたら「姑息な手段」で、 =IF(時間<=1,時間+24,時間) という演算式を噛ませれば、何とかなるんじゃないですか? 要は「0~1時」を「24~25時」に無条件に持ち上げると発想です。

narayuni
質問者

お礼

回答ありがとうございます。 +24という発想を頂いて試しにM7に、 「=IF(AND(M$6>=HOUR($C7),M$6<HOUR($D7+24)),1,"")」と付け足してみました。 ですが、 ・終了時間を21時にしても24時が塗りつぶされてしまう ・終了時間を25時にすると塗りつぶしがなくなる と、なりました また書いて頂いた演算式をそのままコピペして時間を入力してみましたが よく分からず断念しました・・・。

関連するQ&A