2009年10月03日

40分間隔のショーの開始時刻

以前出題したこの数式クイズに、後から補足として、より文字数の少ない別解を付けましたが、数式で行っている処理の内容が理解しやすく、開始時間や間隔が異なるケースにも応用しやすいという意味では、やはり最初の解答例のほうが優っている気がします。

今回はこのクイズの発展問題です。

【数式クイズ】 難易度:★★★☆☆
ある遊園地では、10時10分以降、40分間隔でショーを行っています。
遊園地への到着時刻をA2セルに入力すると、その時刻以降で最も早いショーの開始時刻をC2セルに表示します。

quiz18.jpg

なお、到着時刻は、遊園地の営業時間内(閉園の40分前以前)という前提です。
また、C2セルには、時刻の表示形式を設定しているものとします。
C2セルにはどのような数式を入力すればよいでしょうか。


【解答例】
=CEILING(MAX(A2-"10:10",0),"0:40")+"10:10"

とりあえず開始時間分を引いて「0:00」を基準とした時刻に戻し、この時刻に対して40分単位の切り上げを行ってから、再び開始時間分を足しています。

ちなみに前問題の解答例とはMAX関数とCEILING関数の位置が逆ですが、前問題でも

=CEILING(MAX("10:00",A2),"0:30")

のような書き方は可能です。
今回の問題に前問題の解答例をそのまま応用すると、CEILING関数の中で負の数が生じて#NUM!エラーになる可能性があるので、MAX関数の処理を先に行っています。

また、前回の補足で書いたような、短さを追求した数式にするのであれば、たとえば

=(EVEN(MAX(A2*72-30.5,0))+30.5)/72

などのようにも書けますが、これだと別の開始時間と間隔のケースに応用するのが相当難しくなりますね。(^^;)

他の数式クイズもそうですが、この問題にもまだ別解がありそうな気がしています。
他の数式を思いついた人は、お教えいただけると嬉しいです。
posted by 土屋和人 at 11:19| Comment(0) | TrackBack(0) | Excelクイズ
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/32633543
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック