• ベストアンサー

Excelで時間の表示について

17時間32分を17:32と表現しているとして、これを切り上げて18と表現する式を教えてもらえませんか。 17:00だと、当然17が答えです。 17:01だと、18が答えです。 以上

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

A1に時刻があるとして、 =CEILING(A1,"1:00")*24

aerio
質問者

補足

早々の回答でしかも内容が、ばっちりでした。 基準値が1:00であるのが条件のようです。 00:00では答えが全く違うようです。 基準値について解説していただけたらありがたいです。

その他の回答 (4)

回答No.5

横から失礼します。 >基準値について解説していただけたらありがたいです。 =CEILING(A1,"1:00")*24 の意味は「A1を、1/24ごとに切り上げて、24倍しろ」です。 Excelの時刻は「1時間は1/24、1分は1/1440」になっています。 24時間は「24/24」、1440分は「1440/1440」になり「1日」になるのです。 式を見てみましょう。 基準値は「数値」でなければなりませんが、文字列の「"1:00"」が指定されています。 すると、Excelは「これは時間なのじゃないか?」と考え、1時間を意味する「1/24」を基準値にします。 1/24で切り上げしますから「CEILING(A1,"1:00")」の値は 0/24なら0/24 0/24より大きくて1/24以下なら1/24 1/24より大きくて2/24以下なら2/24 2/24より大きくて3/24以下なら3/24 3/24より大きくて4/24以下なら4/24 (略) 21/24より大きくて22/24以下なら22/24 22/24より大きくて23/24以下なら23/24 23/24より大きくて24/24以下なら24/24 となります。 結果、返って来るのは 0/24、1/24、2/24、3/24…~…22/24、23/24、24/24 になります。その値を「*24」で24倍にしていますから 0*24/24、1*24/24、2*24/24、3*24/24…~…22*24/24、23*24/24、24*24/24 になります。「24/24」は「1」ですから、結局、この値は 0、1、2、3…~…22、23、24 になる訳です。 24倍しない場合、つまり =CEILING(A1,"1:00") の場合、「12:05」は、13時を意味する「13/24」を返して来ますが、セルの表示書式が「12時間制」になってたりすると、値は13時を意味する値でも(つまり、値が「13/24」になっていても)「1:00」と表示されてしまうので >ただ、12:05のとき、双方とも1になります。ここは13にしたいところです。 と勘違いしてしまいます。 式は合ってましたが、貴方の表示方法が間違っていただけで「期待している値と違う」と思い込んでしまったのです。 とは言え、貴方が「0~23の整数で答えが欲しい」と言うなら「n時を意味するn/24と言う分数の値では困る」ので、やはり =CEILING(A1,"1:00") ではなく =CEILING(A1,"1:00")*24 が正解になります。 まあ、貴方が「0~23の整数で欲しい」って書いてないので、そう書いてない場合は「どっちも正解」になってしまいます。 整数で欲しいとか、時刻シリアル値で欲しいとか、どういう値が欲しいかきちんと質問に書くと、早めに適切な回答が得られますから、ちゃんと書いた方が良いですよ。

aerio
質問者

補足

コメントありがとうございます。 > 「12:05」は、13時を意味する「13/24」を返して来ますが この部分は私の意図ではありません。 私は次のように書きました。 > 17時間32分を17:32と表現しているとして 私は時刻ではなく、時間表現を質問しています。 例えば47:10を48時間と表現したいのです。 ただ、質問するときは、確かに24時間以上は念頭にありませんでした。 この前提で行くと、No.1が正解と考えます。

noname#204879
noname#204879
回答No.4

B1: =CEILING(A1,"1:0") 【蛇足】A列もB列も書式は h:mm

aerio
質問者

補足

コメントありがとうございます。 12:05の場合1、13:00の場合1、7:05の場合0、となります。 それぞれ13,13,8を期待しています。

回答No.3

=IF(RIGHT(TEXT(E12,"hh:mm"),2)<>"00",(LEFT(TEXT(E12,"hh:mm"),2))+1,LEFT(TEXT(E12,"hh:mm"),2)) こんなのどうでしょうか? TEXTで、文字列として判定?させて、00だったら、そのままひだりから2文字抜き出し、 それ以外だったら、2文字抜き出したあとに1足してます。 入力していないときの判定はしてないので、基本的に00が表示されます。 そこはご自身で追加してください。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

=CEILING(A1,"1:00") または =ROUNDUP(A1*24,0)/24

aerio
質問者

補足

コメントありがとうございます。 ただ、12:05のとき、双方とも1になります。ここは13にしたいところです。 12時間と5分ですから13時間にしたいところです。

関連するQ&A

専門家に質問してみよう