[[20070320235759]] 『マイナス時間入力について2』(eva) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マイナス時間入力について2』(eva)

 前回、マイナス時間入力について(#REF!MAN)さんに下記の関数をご教授頂き
 解決にいたったのですが、この場合だと答えのA3のように14:40だと
 そのまま14:40とセルに表示されますが
 14:05のような場合、セルに14:5と表示されます。14:05のように表示したいのですが
 どうすればよろしいのでしょうか?ご教授宜しくお願い致します。

******************************************************************

 '-10:00
 のように頭に'をつけて入力できます。
 合計は、このような数式で処理できます。        (#REF!MAN)

    A 
1  -15:30
2   30:10
3   14:40
   ↑
 =SUBSTITUTE(TEXT(SUMPRODUCT(SUBSTITUTE(TEXT(A1:A2,"[h]:mm")&"/60",":"," ")
 +0),"0!:00/60"),"/60",)

******************************************************************


 =SUBSTITUTE(TEXT(SUMPRODUCT(SUBSTITUTE(TEXT(A1:A2,"[h]:mm")&"/60",":"," ")
 +0),"0!:00/60"),"/60",)
 こちらの数式では、そのようには、ならないのでは、ないでしょうか?

 =SUBSTITUTE(TEXT(SUMPRODUCT(SUBSTITUTE(TEXT(A1:A2,"[h]:mm")&"/60",":"," ")
 +0),"0!:0/60"),"/60",)
 というものをいったん掲載しましたが、すぐ訂正させていただきました。
 再度、ご確認下さるようお願いします。                    (#REF!MAN)

******************************************************************

(#REF!MAN)さん、早速の返信ありがとうございます!
今回の数式で、またまた解決できました。ありがとうございました!!

前回、教えて頂いた数式を自分でも解読出来れば手直し出来たのですが
まだまだ、そのレベルになっておらず、自分には呪文のように見えます。
少しずつ勉強してレベルアップしていきたいと思いますので、また
わからない事がありましたら、ご教授下さいませ。


 すこしだけ、解説させていただきます。

 =SUBSTITUTE(TEXT(SUMPRODUCT(SUBSTITUTE(TEXT(A1:A2,"[h]:mm")&"/60",":"," ")
 +0),"0!:00/60"),"/60",)

 この数式は、文字列、または、数値の時間:分を分数に変換して合計させるものです。
 数式を分解して、説明しますと、このような構造で試作されています。

    A      B          C          D		
 1  -15:30   -15:30/60      -15 30/60		
 2    30:10  30:10/60      30 10/60		
 3  14:40				
 4         ↑			
 5       =TEXT(A1,"[h]:mm")&"/60"			
 6                    ↑		
 7                   =SUBSTITUTE(B1,":"," ")		
 8					
 9        14.66666667     14:40/60       14:40	
10         ↑			
11        =SUMPRODUCT(C1:C2+0)			
12                    ↑		
13                   =TEXT(B9,"0!:00/60")		
14                              ↑	
15                            =SUBSTITUTE(C9,"/60",)

 A1:A3のセルの表示形式を[h]:mmとして、A1に'-15:30と文字列、A2に30:10と数値で入力。
 B1に=TEXT(A1,"[h]:mm")&"/60"として、A2にフィルドラッグ。
 =TEXT(A1,"[h]:mm")は、文字列は、そのままで、数値は時間:分に変換し、
 &/60で、後ろに/60をつけます。各、-15:30/60、30:10/60となります。
 補足ですが、未入力セルは、0:00/60となり、合計可能ですが、
 =""は、/60を戻しますので、この数式では、後にエラーとなります。

 C1に=SUBSTITUTE(B1,":"," ")として、C2にフィルドラッグ。
 ここで、:をSPACEに置換え帯分数とします。各、-15 30/60、30 10/60となります。

 B9に=SUMPRODUCT(C1:C2+0)とします。
 これは、C1:C2の範囲にそれぞれ+0とし数値化した配列を合計しています。
 14.66666667が、戻ります。

 C9に=TEXT(B9,"0!:00/60")とします。14:40/60を戻します。
 これは、B9の値を60を分母とする帯分数に変換しています。整数部と分数部の区切りは、
 MSの仕様では、SPACEですが、このように他の文字列も使用できるようです。

 D9に=SUBSTITUTE(C9,"/60",)として/60を削除しています。14:40が戻ります。(#REF!MAN)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.