[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マイナス時間入力について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.