すぐマク YNxv988 Home | Search | Contents | Gallery | Introduction | Service | Support | What's New!
時間数の合計を求めるには? Click Here! Click Here!
Question 11.1 値の操作 Previous Next
例えば給与計算などを思っていただければよいかと思うのですが、労働時間をサマリーしたいのです。
しかしどうも24:00を越えてしまうと0:00になってしまうようなのですが・・・たとえば13:00+15:00なら28:00という答えが欲しいのですが・・・不可能ですか?
Answer   Copyright (C) 1998.10.9 Yoshioh Nagai
ユーザーが「時間数」のつもりで、セルへ 13:00 と入力しても、エクセルはセルの書式の表示形式を「時刻」として自動設定してしまいます。そのため、質問にある 13:00+15:00の答えが 4:00となってしまいます。つまり、午後1時の15時間後の時刻を、午前4時と答えてくれたことになりますね。
では、どうすれば良いかですが、エクセルは多機能ですから、いろいろな方法が考えられます。ですが、 あまり難しく考えずに自分のやれる範囲で解決することを、お勧めします。

このテーマはマクロを組む程ではないと思います。ワークシートへ式を埋め込むだけで、解決可能です。
ポイントとしては、時刻と時間数の違いを計算し直すために、まず、入力値を基にして「分」を算出します。そして、その「分」の月間トータルを時間数として表示します。

下図の水色ぽい部分、つまり A1:B4セルが入力された実績値とします。
黄色ぽい部分、つまり D1:G4セルに各日別に「分」を計算する式を埋め込み、「分」の月間合計を G5セルに算出します。
緑色部分の A5:B6セルに、「分」の月間合計を時間数と端数の「分」に計算し直して表示し、答えとします。

労働時間集計表  各セルへ入れる式の書き方
   D2セル =HOUR(B2)
   E2セル =D2*60
   F2セル =MINUTE(B2)
   G2セル =E2+F2
   B5セル =ROUNDDOWN($G$5/60,0)
   B6セル =$G$5-ROUNDDOWN($G$5/60,0)*60

 D2:G2をコピーして
 D3:G4へ貼り付ける

式の中にある関数の HOURは時刻を時に変換します。MINUTEは時刻に対応する分を返します。ROUNDDOWNは演算結果を切り捨てします。くわしく知りたければ、エクセルのヘルプのトピックの検索で調べてください。

【参考】 ・上図のシートは、画面表示の関係で3日分しかありません。実際には31日分とかに行を増やしてください
     ・式は、理解しやすいように少しずつ区切ってます。あなたの実力に合せてネストしてください。
     ・実績が入力されたシートに、式を入れることができない場合などは、計算用のシートを別に作り、実績値を
      写して計算させて、答えを実績シートに写せば解決します。
     ・どうしてもマクロで組みたければ、式を組み込む事例が 休日カレンダーから実働日数を計算するには?
      ありますから、参考にして頑張ってください。

時間数の累計を60進法で表すには? Click Here! Click Here!
Question 15.1 値の操作
時間の累計はどのように計算するのですか?
勤怠管理で月及び年間の勤務時間の累計を取りたいのですが・・・ 出来れば、出力結果が60進法(例 10:00)の様に出力したいのです。 現在、累計を行うとセルの書式を時間で行うと24時間で0:00に戻ってしまう。 教えて下さい。
働いた時間数を求めるには?
Question 14.7 値の操作
始めまして、わたくしPCを始めて初心者なのですが、相談する 方も無く困っているのですが、一つだけ教えてくれませんでしょうか? 最初はPCでなく書院のワープロを使っていました。

エクセルは、計算や表が大変簡単に出来るとのことですが、 給料計算の際に、合計を出したり、割り算・掛け算・引き算等 は何とか本を見て出来るようになったのですが、時間を割り出すのは どうプログラムすればいいのですか?
  例: 出勤    退出     働いた時間
    (12:00)  (18:00) ・・・・・・( ? ) 5
    (12:00)  (18:30) ・・・・・・( ? ) 5.5みたいに
上の( )内に時間を入れれば働いた時間が出るようには、エクセルでは、出来ないのでしょうか?

よければ教えてくれませんでしょうか? やっと、インターネットで見つけて、いきなりこのような質問 失礼でしょうが宜しくお願いいたします。
Answer   Copyright (C) 1999.1.27 Yoshioh Nagai
エクセルの一般的な使い方の質問ですネ。
VBAマクロを扱う私のHPの範囲外ですが、たまたま既に関連ページがあるので、お答えします。
セルの書式設定
「セルに入っている値は時刻・時間である」ということを、エクセルにわからせてあげれば、普通の引き算と同じ式で時間数を求めれます。

まず、ワークシートを作る時に、「時刻か時間」を入力または表示したいセルに、書式設定しておきます。

操作方法としては、セルを選択しておいてから、メニューバーの「書式」→「セル」とクリックすると、右図のダイアログが映ります。
図の要領で選択して[OKボタン]を押します。

この書式設定によってエクセルは、「時刻・時間」と認識してくれます。
あなたのイメージで下図のシートを、作ってみました。
時間数計算シート 書式設定するセルは、入力用のA2とB2、答えを表示するC2、控除時間を入力するF1となります。

控除時間とは休憩時間のことです。 あなたの質問の例示では、出勤時刻から退出時刻までの時間数から、休憩時間を差し引いた時間数を「働いた時間」としてますよね。 F1セルには、引くべき時間数を入力しておきます。

以上で準備が整いましたから、「働いた時間」を計算するための式を、下記の要領で準備します。
   1) C2セルへ右記の式を入力します。 …… =B2-A2-$F$1
   2) C2セルをコピーして、C3セルへ(すべて)貼り付けます。
このシートはサンプルですから2行しかありません。必要な行数を下方へ追加してください。

なお、C3セルには5:30と出ています。あなたが5.5にしたい理由が、この後で合計を取りたいためでしたら、0:30(60進法)を0.5(10進法)に、わざわざ変換しておかなくても、かしこいエクセルが正しく計算してくれます。
どうしても0.5にしたい他の理由があるようでしたら、関数を組み合わせて30÷60の計算をして求めることになるでしょう。このページの上方の「時間数の合計を求めるには?」を考え方の参考にし、エクセルのヘルプで文字列、関数、Mid$のあたりからコツコツ調べていけば、できると思います。

あなたが Internet Explorer 4.0と、Excel97または95がインストールされたパソコンで、このHPを見ているのでしたら、ここをクリック すればエクセルが起動して、サンプルブックが開きます。計算式やセルの書式設定を、すぐに見ることができます。
見終ったら、エクセルシートが映っている画面右上角の × をクリックすれば、この画面へもどれます。
http://www.geocities.jp/happy_ngi/ Home | Contents | Gallery | Introduction | Service | Support | What's New!