Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7全般 : Excel 2010)
時間の計算について
投稿日時: 18/06/04 09:31:23
投稿者: kamado

時間の計算をしたいです。一時間40分なら1:40の表示です。
書式設定、ユーザー定義でh:mmで足し算はできるのですが、引き算ができないです。
どなたかいい方法教えていただけないでしょうか

回答
投稿日時: 18/06/04 10:09:07
投稿者: WinArrow
投稿者のウェブサイトに移動

書式は、見え方(見せ方)ですので、計算そのものに影響を与えるものではありません。
   
時刻(時間)の「値」はシリアル値という「数値」です。
 従って、加算も減算も可能です。
 書式設定で計算ができなくなるわけではありませんが、
マイナスの表示に制約があります。
つまりマイナス表示ができません。
  
一つの方法として
=IF((B1-A1)<0,TEXT((B1-A1)*-1,"▲hh:mm"),B1-A1)
のような手段もあります。
  
「1904年から計算する」を有効にする
 という方法もありますが、当該項目でけでなく、
 他の日付にも影響するので注意が必要です。
 
もう一つの対応は
計算結果は、普通の数値(単位を"分")にして、・・・集計などにしょうする
隣のセルに見せるだけの数式で表示する・・・こちらは楸瑛などには使用しない。
 
 
 

回答
投稿日時: 18/06/04 11:10:49
投稿者: ゆーたん

「引き算ができない」をよかったらもうちょっと詳しく教えてください。(^_^;)
1:具体的にどういう引き算の式なのか。
2:結果が、合わないのか、「#####」と表示されるのか。
 
※WinArrowさんの回答で解決なら、無視してくださってもけっこうです。(^_^)

投稿日時: 18/06/04 12:03:35
投稿者: kamado

WinArrow様、ゆーたん様 ありがとうございます
残業時間のみを計算するワークシートです。出勤退勤時間から計算するものではないです
で上から2:30(二時間30分)、1:30とか入れると計に4:00と表示されます。
これは書式でh:mmを指定するとできました
で残業調整とかありまして-3:00とか入れることがあるのです
でも書式でh:mmを指定しているせいか-3:00とか入れると##############となるか入力できません
したがって計算もできません。WinArrow様が教えてくださったように別に参照する表を作って
−1をかけようかなと思って自分なりにやってました。
ご教示お願いします

回答
投稿日時: 18/06/04 12:16:49
投稿者: んなっと

具体例を添えて質問するようにしてください。
 
すべて0以上の数で統一し、見た目だけ負の時間を混ぜる方法です。
右隣に作業列(下の例ではD列とF列)を設け、必ず絶対値と符号のペアで処理していきます。
 
   A   B    C  D   E  F
1 予定 実際 過不足    合計  
2 2:00 2:30  0:30  1 -2:20 -1
3 3:50 2:00  -1:50 -1      
4 5:00 7:00  2:00  1      
5 7:00 4:00  -3:00 -1      
 
C2
=ABS(B2-A2)
条件付き書式:数式が▼
=D2<0
書式(F)...
-[h]:mm
下方向・↓
 
D2
=SIGN(B2-A2)
下方向・↓
 
E2
=ABS(SUMPRODUCT(C2:C6,D2:D6))
 
F2
=SIGN(SUMPRODUCT(C2:C6,D2:D6))
 
C2を「書式のコピー」でE2に貼り付け

回答
投稿日時: 18/06/04 14:57:20
投稿者: ゆーたん

一案で、文字列で入力して配列数式案です。(^_^;)

	A
1	1:00
2	-1:00
3	2:00
4	-2:00
5	2
6	-2
7	25:00
8	
9	牛丼
10	0
11	合計↓
12	25:00
A1:A10の表示形式を「文字列」、
そして文字列で時刻を入力しなおします。
A12の表示形式を「ユーザー定義」で、種類を、
 
[h]:mm
 
OK。A12セルに、
 
=SUMPRODUCT(TEXT(SUBSTITUTE(A1:A10,"-",),"標準;;0;!0")*TEXT(A1:A10,"1;!-!1;1;!-!1"))
 
でどうかしら?
※A1:A10セルは文字列なので、他の数式から参照すると、
数式がうまくいかない可能性があります。
あくまでこの部分で完結して使ったほうがいいかも。

回答
投稿日時: 18/06/04 15:05:11
投稿者: WinArrow
投稿者のウェブサイトに移動

-3:00
と入力しようとすることに無理があります
 
普通に
3:00
と入力させ
隣のセルに
マイナスとして扱うように
例えば、▲と入力させれば・・・・
 

A1:3:00
B1:▲
C1:5:00
 
D1:=C1+A1*IF(B1="▲",-1,1)
 
但し、計算結果がマイナスになると具合が悪いよね?
 

投稿日時: 18/06/04 15:31:52
投稿者: kamado

んなっと様、ゆーたん様、WinArrow様、ありがとうございます。
一つの列で解決することはあきらめて作っておりましたが、ゆーたん様の数式すごいですね
皆様のおかげでできそうです。助かりました、本当にありがとうございました。