文系PCライターの反省フリーランスのライター/編集者、土屋和人のブログです。以前出題したこの数式クイズに、後から補足として、より文字数の少ない別解を付けましたが、数式で行っている処理の内容が理解しやすく、開始時間や間隔が異なるケースにも応用しやすいという意味では、やはり最初の解答例のほうが優っている気がします。今回はこのクイズの発展問題です。難易度:★★★☆☆ある遊園地では、10時10分以降、40分間隔でショーを行っています。遊園地への到着時刻をA2セルに入力すると、その時刻以降で最も早いショーの開始時刻をC2セルに表示します。到着時刻は、遊園地の営業時間内(閉園の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などのようにも書けますが、これだと別の開始時間と間隔のケースに応用するのが相当難しくなりますね。(^^;)他の数式クイズもそうですが、この問題にもまだ別解がありそうな気がしています。他の数式を思いついた人は、お教えいただけると嬉しいです。[必須入力]※画像の中の文字を半角で入力してください。この記事へのトラックバックURLhttp://blog.sakura.ne.jp/tb/32633543※言及リンクのないトラックバックは受信されません。