OCNのモバイルに新コース登場!キャンペーン続々開催中

エクセル2000を使用しています。例えばA1にタイム(○分○秒)を入力するとします。B1に計算式として、A1が5分を超えた場合-5点とし、以後30秒を超える毎に-5点ずつ減点する式を教えてください。5分10秒なら-5点、5分40秒なら-10点というようにです。

A 回答 (3件)

=-5*MAX(0,ROUNDUP((A1*2880-10),0))


でどうでしょうか?

私のも一応解説しますと、
A1セルの値を24*60*60=86400で掛けると秒になります。
(#1さんの"00:01.00"で割っているのと同じ事だと思います。)

=ROUNDUP((A1*24*60*60-5*60)/30,0)で
5分を引いて30秒で割って小数点以下を切り上げします。
=-5*MAX(0,ROUNDUP((A1*24*60*60-5*60)/30,0))で
それと0を比較し大きい方の値に-5を掛けます。
(5分以下の場合は負の数になるので0が取られます)

後は、計算式を簡単にして上記の式になっています。
(考え方は#1さんと同じで、計算式を簡単にしただけだと思います。)

後で見直したときに分かりにくいので#1さんや私の最後の式の方が、
後々のメンテはしやすいと思います。

後、この数式を入力すると書式設定が「日付」に変わってしまうと思うので
「標準」に直してください。
(私のだけかもしれませんが・・・)
    • good
    • 0

こういう段階型のエントリの値取得のパターンはVLOOKUPのFALSE型が良いでしょう。


(テーブル)
D1:E6に
0:000
5:00-5
5:30-10
6:00-15
6:30-20
7:30-25
を作る。時刻を表す「:」を使ってD列を作ること。
B1に関数式=VLOOKUP(A1,$D$1:$E$6,2,TRUE)を入れる
$をつけること、TRUE型であること、表の最左列について
昇順であること。
表を別シートにも出来ます。
(テスト)
(A列) (B列)
5:01-5
5:35-10
3:000
6:20-15
5:40-10
5:10-5
表の第1列は、エクセルの時刻値で、24時間を1とする
「数値」に過ぎないことを想起して下さい。
HLOOKUPでもテーブル・式は変わるものの、可能でしょう。
    • good
    • 0

A1が時刻だとすると、A1/"00:01.00"が秒に換算した数値になります


ので、それをふまえて
=-5*ROUNDUP((MAX(A1/"00:01.00", 300)-300)/30, 0)
とします。
    • good
    • 0

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


人気Q&Aランキング