• ベストアンサー

excel FLOOR関数について

excelのFLOOR関数について教えてください。 =FLOOR(A1,"00:15:00")/"1:00" とは、どういうことをしているのでしょうか。 時間に関することを扱っているセルの関数です。 マニュアルには値の切り捨て等が記載されていますが、"00:15:00"の意味がわかりません。これは文字列なのではないでしょうか。 FLOOR関数は文字列に対しての操作もするということですか。 不勉強ですみませんが、教えてください。お願いします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

何度もごめんなさい。 セルに単に"1:00"や"00:15:00"のように入力すれば当然のこととして文字列として入力されます。ダブルコーテーションを付けないで入力すれば時刻として入力され、数値として評価されます。 したがって通常はダブルコーテーションを付けないのですが、式の中で時刻を計算に使う場合には単に1:00のように使わずに"1:00"のように使います。そのような形式で使うことで時刻の数値であると理解され計算に使われるのです。

mrkw1204
質問者

お礼

何度ものご丁寧なお返事、ありがとうございました。 関数の意味、時間表記の機能、文字列の扱われ方、とてもよくわかりました。 excelは敬遠しがちでしたが、ぐっと身近になった気がします。 助かりました。 ありがとうございました。

その他の回答 (5)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんにちは。 >"00:15:00"の意味がわかりません。これは文字列なのではないでしょうか。 文字列です。Excel独特の仕様です。本来は、文字列を数値に変換すべきですが、演算すると、本来の型のキャスティングが起こります。演算というのは、ここの場合は、FLOOR 関数ですが、関数の中で、時間の文字列を四則演算しているからです。 数式としては、=TIMEVALUE("00:15:00") と入力すべきで、Microsoft サポートでも、左記のように書きますが、"00:15:00" を演算させると、時間値に言い換えると「時間・日付型」に変換されます。 たとえば、= "00:15:00"*1 でも、=--"00:15:00"(マイナスが二つ)でも、変換されますが、="00:15:00" では変換されません。 他にも、"09/10/03" や"12" など、日付や数字の文字列でも、変換されます。

mrkw1204
質問者

お礼

さっそくのご回答ありがとうございました。 文字列と数値との関係がよくわかりました。 excelもどんどん使い慣れていかないとだめですね。 ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

解答No1です。 最後に説明した2:15となり、それを1:00で割るのですから2.25となります。がわかり難かったかもしれませんね。 どちらも分に直して考えれば2:15は135分ですね。これに対して1:00は60分です。したがって割り算をすれば2.25となります。 なお、時間の入力は2:15と入力すれば自動的に2:15:00となります。セルの書式設定からセルの表示形式で時刻の13:30を選択すれば2時15分の2:15と表示され13:30:55を選択すれば2:15:00と表示されます。 いずれにしてもこのように表示されているセルの表示形式を標準にすれば数値が表示されます。2:15を標準にすれば0.09375と数値として表示されます。 この数値は時間を日単位にした値です。2:15は0.09375日と同じことです。 このように2:15:00は立派な数値で文字列ではありません。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.3

>"00:15:00"の意味がわかりません 15分をシリアル値に変換するために""で括ります。 Excelの仕様で「時間をあらわす文字列は、Excelで時間のシリアル値に自動変換される」ようになっています。 ●●● 時間を10分ごとに切り捨てる方法 ●●● http://www.primestaff.co.jp/fumitaka_doc/2009/01/excel-floor-1.html

mrkw1204
質問者

お礼

さっそくお返事いただき、ありがとうございました。 よくわかりました。 助かりました。 ありがとうございました。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

>"00:15:00"の意味がわかりません。これは文字列なのではないでしょうか。 これは、時間を意味しています。 セルに直接 00:15:00 と入力してみるとわかりますが 0時間15分00秒 のことです。エクセル君が親切に : で区切ることで自動で文字列を時間に時間に変換してくれます。 =FLOOR(A1,"00:15:00")は、A1で指定された時間を、15分単位で表示して、15分単位の端数の部分を切り捨てた時間となります。 15分は15分 16分も15分 29分も15分 30分は30分 となります。 更に"1:00" で割りますので("1:00"もエクセル君が1時間としてくれますので) 1時間を数値の1とした数値になっているはずです。

mrkw1204
質問者

お礼

さっそくの回答ありがとうございました。 エクセル君の働きぶりには感心しました笑。 具体的に例示をしてくださったので、わかりやすかったです。 ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

=FLOOR(A1,"00:15:00")/"1:00" この式でFLOOR(A1,"00:15:00")はA1セルに入力されている時間を15分の何倍に相当しているか、またその倍数が小数点以下については切り捨てる処理をすることを意味しています。戻り値は15分の倍数に相当する時間となりますので仮にA1セルに1:00と入力すれば戻り値は1:00で、1:15と入力すれば15分で割り切れますので戻り値は1:15となります。1:17と入力した場合には戻り値は1:15と切り捨てられて15分で割れる時間となります。 勤務時間などで15分単位で時間を考える場合などに使いますね。 式ではその戻り値の時間を1:00で割っています。これは結局、戻り値は1時間の何倍かを求めるものです。2:00のときは答えは2となります。2:17のときは分子の戻り値は2:15となり、それを1:00で割るのですから2.25となります。したがって得られた値に時給などをかけることで賃金の計算ができることになりますね。