• ベストアンサー

エクセルの関数が判らないのですが・・・

ご存知の方、ぜひお教えいただきたいのです。 よろしくお願いいたします。 仕事で上司から「作業経過書」なる表を作るように命令されました。 何時から作業をして、何時に終ったか!を 報告しなければなりません。 しかも表にして。との事です。 そこで、エクセルで A1に開始時間(8:00) B1に終了時間(9:30) をC1に分数で表示させたいのです。 C1には90(分が良いと言っています)と表示させる為にはどのようなことをすればよろしいでしょうか? 簡単に計算すれば良い事ですが、間違ってけいさんしてしまう恐れが有る為、できれば良いな。と思っています。 しばらく、検索してみましたが判りませんでした。 本なども見ましたが・・・判らなかったので、ご質問させて頂きました。 私自身、かなり困っている状況なので、ぜひお教えいただきたいのです。 連休明けまでには解決したいと思っております。 どうぞよろしくお願い申し上げます。

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

  • ベストアンサー
  • sanpin-cha
  • ベストアンサー率48% (533/1095)
回答No.4

新しいシートに A1セルには 「 8:00 」 B1セルには 「 9:30 」 C1セルに数式 「 =B1-A1 」 を入力してください。 「 」の中のみ入力する。 この時点で、C1の値は「 1:30 」になってると思います。 次に、C1セルのみ書式設定をします。 1)C1セルを選択し右クリック 2)書式設定 → 表示形式 を開く 3)時刻 → ユーザー定義に変更 4)種類(T)の下の値を h:mm → [mm] に変更([ ]半角カッコもつける)   サンプルの欄に90とでれば正しく入力されている。 5)OKを押すと、C1が90になる。 No.3の方の指摘のとおり24:00をまたぐと正しい計算ができません。 これを修正したい場合はC1セルの数式を以下のようにしてください。 =IF(A1<B1,B1-A1,1+B1-A1) この数式においても、24時間以上の計算はできません。

caby
質問者

お礼

sanpin-cha様。 本当にご親切に有難う御座いました。 で・・・!!!出来ました。 [ ]を付けなかったからみたいでした。 難しいですね。(私にとっては)でも 助かりました。 これで、連休中 少しはゆっくりできそうです。 誠に有難う御座いました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

正解は#1のご回答出ています。 しかしなぜ本件のようなこう言う質問が出るかというと、(1)筆算では時間計算は面倒(2)エクセルの時間・時刻に対する考え方・処理の仕方が特殊、と言う点(特に2)から由来するものと思います。 多分LOTUS123も含め、表計算ソフトの設計者は、時間について、24時間を1とする割合で表すことに思い至りました。すると時間計算が本件既回答のように=B1-A1と単純な引き算計算で求められると言うメリットに気付いたのです。そのデメリットとして、小数つきの数では、見る人には時刻として正確にイメージ出来ませんので、書式で何時間何分と言う風に表示するところでは、処理は複雑になっている筈です。 本件時刻は入力において9:30のように、:をはさんで 入力するものとします。文字列で入力等しますと以下の議論が成り立ちませんので注意。 また引き算した時間数について、(1)何時間何分何秒と表現する方法と(2)何分や何時間や何秒と60分や24時間や60秒を越えても分->時や時->日などに繰り上げない,「経過時間」表示とあります。本件は(2)で その指示はエクセルの時間の表示形式を[ ]で囲んで指示します([hh]か[mm]か[ss])。これらは「時刻」の表示形式にないため、「ユーザー設定」で行います。 (A)  (B) (C)  (D) 9:30 10:11 41 0:41 10:30 15:11 281 4:41 11:30 20:11 521 8:41 12:30 1:11 761 12:41 12:30 25:11:00 761 12:41 Aが開始時刻、Bが終了時刻、Cが経過分数(ふん数)です。書式を[mm]にしたものです。Dは=B1-A1ですが、書式を時刻の「13:30」のタイプを指定したものです。 (E)  (F)      (G)    (H) 0.028472 0.395833333 0.424305556 0.028472222 0.195139 0.4375 0.632638889 0.195138889 0.361806 0.479166667 0.840972222 0.361805556 0.528472 0.520833333 0.049305556 -0.471527778 0.528472 0.520833333 1.049305556 0.528472222 Eは=B1-A1を書式を「数値」(小数点以下9桁)で表示したものですが、エクセル内部ではこのように結果の数値を出して(保持して)いるはずです。 Fは=9/24+30/(24*60)のように計算したものでA列の時刻 はエクセル内部ではこのように結果の数値を出しているはずです。 Gは=10/24+11/(24*60)のように計算したものでA列の時刻はエクセル内部ではこのように結果の数値を出して(持って)いるはずです。 H列は=G1-F1などで、基本的にE列と一致していることがわかり、本件解説を納得してもらえるでしょう。 H列とE列で一部違っているところがありますが、12時->1時の所ですが、曖昧にせず、細心の注意をもって、13時とか25時とかの表現で、入力することをお勧めします。 エクセルが気を利かしているところがあるようですが、頼らない方が良さそうです。

caby
質問者

お礼

アドバイス誠に有難う御座いました。 まだまだ、エクセルが未熟でわからない事ばっかりです。 参考になりました。 また、ぜひお教えください。 お忙しい所誠に有難う御座いました。

  • yutopapa
  • ベストアンサー率47% (139/295)
回答No.2

もっとスマートな方法があるかもしれませんが・・・。 =(HOUR(B1)*60 + MINUTE(B1))-(HOUR(A1)*60 + MINUTE(A1)) でどうでしょう。

  • sanpin-cha
  • ベストアンサー率48% (533/1095)
回答No.1

C1に数式 =B1-A1 C1の「セルの書式設定」で 「表示形式」タブで   ユーザー定義 を選択 種類の下の部分を [mm] と書き込む。

caby
質問者

補足

アドバイス有難う御座いました。 指示通りやってみたところ、 C1のセルの表示が 01 となってしまっています。 どうしてでしょうか? 大変お忙しい所、誠に申し訳ありませんが、 どうか教えてください。 よろしくお願い申し上げます。

関連するQ&A