- ベストアンサー
Excelのnow関数とif関数で範囲内外を返したい
a1に=now()関数が入っており、どこかのセルに変更があったら時刻が更新されています。 9:00~17:00の間ならa2セルに営業時間内、それ以外なら営業時間外と表示させたいのですが、どのようにすればいいでしょうか? また、これの応用で曜日ごとに時間内、時間外表示をかえるにはどうすればいいでしょうか? 例)平日は9:00~17:00 日は9:00~16:00
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
=IF(WEEKDAY(A1,1)=1,IF(AND(HOUR(A1)>=9,HOUR(A1)<16),"営業中","時間外"),IF(AND(HOUR(A1)>=8,HOUR(A1)<17),"営業中","時間外")) No1の回答者さんのおっしゃるとおり、 実用的かどうかは別として、質問者が求めているのは 上記のような式です。
その他の回答 (2)
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
まぁ、きっとアレだ。仕事中に時々A2を見て、営業時間外と表示さ れたら仕事をヤメて帰るんだ。時計を見ただけじゃ判んないんだ。 で、本題。 ="営業時間"&if(and(hour(A1)>=9, hour(A1)<(if(weekday(A1,1)=1,16,17))),"内","外") 終業時刻が曜日によっていろいろな場合、if(weekday(A1,1)=1,16,17) の部分をchoose(weekday(A1,1),16,17,17,18,17,19,16)のようにす るとよい。始業時刻も同じ。
お礼
笑ってしまいました。 そういう使い方もしてみます。 本来は、Excelシートに問い合わせ先の一覧が載ってて、 そちらの電話番号を案内する際に、営業終了しているか どうか確認できるようにしたかったのです。 部署によって開始/終了時間が様々でみんなよく間違えちゃう から・・・。 曜日によって違う場合も参考になりました。ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
質問ではしたいことと、方法論のNOW関数を使ってと指定までしてますが、NOW関数を調べてみましたか。十分調べてもしないで、誤った方法(というよりできない方法)まで指定するとは。 NOW()関数ではできません。NOW関数の結果の値が、時刻の経過によってどんどん変わっていくことは、エクセルを少しやったものには常識です。 時刻を直接入力、CTRL+;かCTRL+:や式を消すための自身のセルに値複写、VBAなどを考えないとなりません。
お礼
できました。ありがとうございます。