プロが教える店舗&オフィスのセキュリティ対策術

よろしくお願いします。非常に困っています。レベルが低くてすいません。

3点あります。


1つは1日の作業時間をエクセルで計算したいのですが、現在前任者から引き継いでいるのですが、
お互いスキルが低くて困っています。

プロジェクトごとと、日にちごと(一日に複数のプロジェクトに時間を割く)に時間を合計したいのです。

現在エクセルの書式は「標準」で、7.45という数字があり、7時間45分という意味だそうです。

例えば1日目に7時間45分(7.45と記載)、2日目に1時間30分(1.30と記載)であり、エクセルで
普通に計算すると

7.45+1.30=8.75

となりますがこれを 8時間75分=9時間15分(75分=1時間と15分)標記は9.15
に自動的に計算できる方法はあるでしょうか。

愚直に全部一度、分に直し(60分*7時間+45分+60分*1時間+30分)=555分

555/60=9.25(時間) 9時間+60*0.25=9時間15分 標記は9.15に直すしかないでしょうか。

②標準労働時間が7時間45分(7.45と標記されている)であり、仮に8時間1分働いた場合(エクセル上では8.01と記載)の場合残業代をエクセルで計算したいのですが、

8.01-7.45をすると0.56となり、56分残業したことになってしまいます。
本当は16分なのですが(7時間45分と8時間の差15分と8時間と8時間1分の差1分の合計16分)
これをエクセルで簡単に計算できるようにできないでしょうか。


1日ごとの作業時間の合計を出したいのですが、

実労働時間が7時間56分(7.56と標記)されており、プロジェクトにかけた時間が

プロジェクトA 0.98(98分)
プロジェクトB 4.80(4時間80分)
プロジェクトC 1.78 (1時間78分)

エクセルで足し算すると 0.98+4.80+1.78=7.56

になりますが、98分を1.38(1時間138分)
4時間80分を5.20(5時間20分)
1時間78分を2.18(2時間18分)

に直すと

1.38+5.20+2.18=8.76

になってしまいます。

上記のような計算を正確に行うにはやはり一度、分単位に直して計算するしかないでしょうか。
(または時間と分を別々に計算する、時間は時間で足し、分は分で足し、分が60を超えるようであれば、60で割って時間と分に分ける)

詳しい方、教えて頂ければと思います。

A 回答 (10件)

別解です。



添附圖參照
式 =TIME(A1,MOD(A1,1)*100,0) を入力したセル C1 を1行したにオートフィル⇒セル C3 に式 =SUM(C1:C2) を入力⇒セル A3 に式 =TEXT(C3,"h.mm")*1 を入力
「エクセルで作業時間数や残業時間の計算をし」の回答画像10
    • good
    • 0
この回答へのお礼

度々の回答ありがとうございます。

よくわかりました!
助かりました。

お礼日時:2020/08/03 17:16

No.4へのコメント拝見しました。


勉強熱心ですね。
ほぼ認識されている内容で合っています。

MOD関数は「余り」を出す関数です。

MOD(A1,1)

は、A1÷1の余り、つまり「整数部分を除外する」ための式になります。
整数部分のみ抜き出すINT関数と逆の事をしてるようなイメージです。

A1=0.98 の場合、

MOD(A1,1)で、 0.98÷1=0 余り 0.98 で、「0.98」が返ります。
小数部分は時間(分)を表しているので、100を掛けて「98分」として抽出します。

TIME関数は、秒や分など、オーバーした分は自動で時間の繰り上げを行うので、98分は「1時間38分」として扱われます。
    • good
    • 0
この回答へのお礼

度々の回答ありがとうございます。

大変勉強になりました。

お礼日時:2020/08/03 17:46

ですが何故、mod(C1×100,100)×60÷10000は10000で割るのでしょうか。


…についてです。

例えば、C1に10.5(10進数)がはいっていたとします。

rounddown(C1×100,100)は10.5の「10」を抜き出しています。
そして、ご質問にあるmod(C1×100,100)×60÷10000は「0.30」を抜き出そうとしています。

つまり、(10.5×100)÷100=10余り50
50×60=3000
3000÷10000=0.3

modを使うために×100したのを戻すために÷100し、小数点以下に分が来るというフォーマットに合わせるために更に÷100しています。

こうする事で10進数の10.5を今回の特殊フォーマットである10.30に変換しました。
    • good
    • 0
この回答へのお礼

度々の回答ありがとうございます。
私はエクセルのレベルが低いですね。
もう少し勉強します。

お礼日時:2020/08/03 17:33

とりあえず、.を:に置換してみては?

    • good
    • 0
この回答へのお礼

回答ありがとうございます。

教えて頂いたことと、書式をユーザー定義で【h:mm:ss】
にすることで解決できました。

お礼日時:2020/07/31 00:15

エクセルの置換を使って、小数点(.)をコロン(:)に変換するのはいかがでしょうか?



書式は小数点だったときの標準から、コロンに変換することでユーザー設定(時間)に自動的に変わります。
時刻の計算になるので、足し算引き算は容易です。

ファイルをコピーして試してみることをおすすめします。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
1,98(1時間98分)を1:98にして書式を「【h】:mm:ss」にしたらきちんと2:38:00になりました。

一番簡単な方法かもしれません。ありがとうございました。

お礼日時:2020/07/31 00:12

添附圖參照


C4: =SUM(INT(A4),INT(MOD(A4,1)/0.6),MOD(MOD(A4,1)/0.6,1)*60/100)

【御願ひ】試用してみて、不具合が在れば御知らせ願ふ
「エクセルで作業時間数や残業時間の計算をし」の回答画像5
    • good
    • 0
この回答へのお礼

回答ありがとうございます。教えて頂いた式で

C4: =SUM(INT(A4),INT(MOD(A4,1)/0.6),MOD(MOD(A4,1)/0.6,1)*60/100)

INT(A4) ⇒8(時間)

INT(MOD(A4,1)(=0.75、分を抽出)/0.6)⇒INT(0.75/0.6)=1
(1時間)

MOD(MOD(A4,1)/0.6,1)*60/100) すいません。ここがわかりませんでした。

MOD(MOD(A4,1)/0.6,1)*60/100⇒MOD(0.75/0.6,1)*60/100
⇒0.25*60/100=0.15

抽出した0.25分に*60/100をするのは何故でしょうか。

計算結果自体は9.15になりました。

お礼日時:2020/07/31 00:05

とりあえず、ですが、


小数表示を時間に変換する式です。

A1に小数入力に時間があるとして
=INT(A1/24)+TIME(MOD(INT(A1),24),MOD(A1,1)*100,0)

合計は、上記の式で時間にしたものをSUM関数でくくるだけです。
残業時間の引き算も普通に計算できるようになります。

時間に関する表示形式は、全てユーザー書式で
[h]:mm
とするのがよいでしょう。

h:mm だと、「24時間1分」の表示が「0:01」になってしまいますが、(日に繰り上がって、時間しか表示されない)
[h]:mm だと、24時間を超えてもそのまま「24:01」と表示されます。
「エクセルで作業時間数や残業時間の計算をし」の回答画像4
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

教えて頂いた式で計算できました。
INT(A1/24)+TIME(MOD(INT(A1),24),MOD(A1,1)*100,0)

の式でMOD(A1,1)*100は何を意味しているのでしょうか。


MOD(A1,1)は0.98/1=0.98 これに100をかけて98、time関数があるので98分が59より大きいので自動的に1時間38分になる

という理解でよいでしょうか

お礼日時:2020/07/30 21:52

過去の蓄積がある分、下手に元の数字を弄れないのですよね…



小数点から上を時間、小数点第二位までを分にしているのに0.98と入力されているのもキツいですね。

例えば、下の例の場合
A1=0.98
B1=4.80

次の式で…の後の値を取る事ができるはずです。
rounddown(B1,0) … 4 小数点以下切り捨て
mod(B1×100,100) … 80 480÷100の余り

これを利用して次のような式に当てはめれば、10進数の値を取得できます。
rounddown(A1,0)+mod(A1×100,100)÷60+rounddown(B1,0)+mod(B1×100,100)÷60

既存のフォーマットのまま表示させたいのでしたら……
携帯からなので一旦ここまでの式をまとめちゃいますね。そのまま式に入れ込んでも同じ結果になります。
C1= rounddown(A1,0)+mod(A1×100,100)÷60+rounddown(B1,0)+mod(B1×100,100)÷60

rounddown(C1.0)+mod(C1×100,100)×60÷10000
これで元の「時間.分」のフォーマットで結果を返せます。

面倒ですね…。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

rounddown(A1,0)+mod(A1×100,100)÷60+rounddown(B1,0)+mod(B1×100,100)÷60

この式はA1、B1を○○時間の単位に直しているのですよね。


rounddown(C1.0)+mod(C1×100,100)×60÷10000

ですが、何故、mod(C1×100,100)×60÷10000は10000で割るのでしょうか。

(C1×100,100)*60はC1の小数点以下(0.△△時間)を分に直すために60をかけていると思うのですが、
10,000で割る意味を教えて頂けますでしょうか。

お礼日時:2020/07/30 21:04

あなたのスキル以前に、


「7:45」を「7.45」で管理してる前任者のスキルが低いか、高いスキルを無駄に使ってるか、そっちの方に問題を感じます。
(まともに処理してなきゃ、給料未払い結構出てそうですが…)

前任者はどういう計算式を使っていたのでしょうか?
単純な合計するだけの式でも見せていただきたいです。
それで、前任者が高スキル保有者かどうかもわかるので。
    • good
    • 0
この回答へのお礼

おそらく 7.45(7時間45分)を60*7+45分に直して分単位で引き算して60で割って時間と分に直していたようです。
回答ありがとうございます。

お礼日時:2020/07/30 20:20

こんばんは、


基本的なところを直せば、理解し易いかと思います。
Excelでは、時間を8.25のように(入力)使用する事は、まずありません。
8:25のような入力します。
色々なケースを説明するのは大変なのでサポートページでご確認ください。

https://support.microsoft.com/ja-jp/help/880980
    • good
    • 0
この回答へのお礼

回答ありがとうございます。とても参考になりました。

お礼日時:2020/07/30 20:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています