質問: エクセル関数について エクセル2000を使用しています。例えばa1にタイム(○分○秒)を入力するとします。b1に計算式として、a1が5分を超えた場合-5点とし、以後30秒を超える毎に-5点ずつ減点する式を教えてください。5分10秒なら-5点、5分40秒なら-10点というようにです。
回答: =-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さんや私の最後の式の方が、 後々のメンテはしやすいと思います。 後、この数式を入力すると書式設定が「日付」に変わってしまうと思うので 「標準」に直してください。 (私のだけかもしれませんが・・・)