プロが教えるわが家の防犯対策術!

前月 
(1)0:02:14 
(2)0:14:05
(3)-0:00:03

今月
(1)0:02:44 
(2)0:14:05
(3)-0:00:12

今月対前月の差分
(1)+30秒
(2)±0
(3)-9秒

となった時、今月対前月差分の多いもの順に

+30秒を1位、±0を2位、-9秒を3位

というようにRANK付けをしたいのですが出来ません・・・・

誰か、ご存知の方はいらっしゃいませんでしょうか??

A 回答 (4件)

負の時間が扱えないのは、Windowsに移植するときにLotus 1-2-3と


の互換性を最優先したために抱え込んだ不具合です。だからといっ
て無理矢理文字列にしちゃったらどうしようもないですね。「±」
が一番大きくて、「-」、「+」と小さくなります。

「1904年から計算する」設定にしちゃえば簡単なんですが、後日混
乱することを恐れて「1904年から計算する」設定にしない前提であ
れば、imogasiさんやfujillinさんも回答しているように、文字列は
表示用と割り切って計算用の列を用意するしかないでしょう。
    • good
    • 0

思いつきで煮詰めていませんが


例データ
A列   B列  C列     D列
0:02:140:00:030.0015162 2
0:14:050:02:040.0083449 1
0:00:030:00:04-0.0000116 3
A,B列は時刻書式
C列は「数値」書式を設定。こういうRANK用の数値の列を余分に作ればどうでしょう。
C列の表示が気に食わなければ、非表示にする。
ーーー
マイナス時間への対策
一方見た目が常識的な時刻表示の列は別にして
式は=IF(A1>B1,A1-B1,"-"&TEXT(B1-A1,"hh:mm:ss"))とする。
一部(または全部が)文字列になるので、計算には使わないことにする。
ーー
C1は式=A1-B1,
C2,C3には式を複写。
ーー
RANKは
D1は=RANK(C1,$C$1:$C$3)
D2,D3には式を複写
    • good
    • 0

なんの時間かわかりませんが、負の時間がうまく計算できないのなら、表示用(上記の-9秒)とは別に、ダミーの時間(例えば1時間)を増し

た差を出しておき(-9秒は0:59:51になる)比較はこちらの数値で行えばよいのでは?
    • good
    • 0

「できません」じゃなくて、何をどうしてどうなっちゃったか書き


ましょう。差分が計算してあればrank関数で一発なんだから、うま
くいかない原因を突き止めるにはあなたが何をやらかしたかの情報
が必要ですよ。

で、チェックポイントその1
負の時刻が使えるのは「1904年から計算する」設定になっている場
合に限ります。その場合でも「-0:00:12」を直接入力しようとすれ
ばエラーになるし、ペーストすると文字列になっちゃって計算でき
ません。どうやって-9秒って差分を計算しましたか。

この回答への補足

言葉少なく申し訳ありません。。

-9秒の計算式は

「=IF(G22-R23<0,TEXT(ABS(G22-R23),"-"&"h:mm:ss"),TEXT(G22-R23,"h:mm:ss"))」

とし、文字列として算出しました。
この文字列を「TIMEVALUE」でシリアル値に変換すると、
+の差分は表示されますが-表示が「#VALUE!」となります。

-数値を表示させるにはどのようにしたら良いでしょうか?

補足日時:2008/05/20 17:59
    • good
    • 0

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