- 締切済み
エクセルのIF関数について
A列の時刻表示を、ある条件によって、隣のB列に書き直す計算式について質問します。 A1セルの値が10:00又はそれよりも早いとき(9:45や9:20など)は、B1セルに10:00(ぴったり)と入力されるような計算式。 A1の値が10:00よりも遅い場合(10:13や10:37)は10分の位で切り下げて表示(この場合10:10や10:30等)になるような計算式です。 以下の式を作りましたが、うまく作動しません。 どこが悪いでしょうか? =IF(A1<=10:00,[B1=10:00],[B1=ROUNDDOWN(D3,1)]) 特に最後の(D3,1)の1は時刻表示の10分の位の位置のばあい、何になるのかよく わかりません。 どうぞよろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
こんな方法もあります。 =A1-MOD(A1,"0:10") Floor関数の方がスマートだと思いますが、 こんな方法もあります、という程度です。
FLOOR関数以外では次式でもOKかと。 =IF(A1<"10:00"*1,"10:00"*1,MROUND(A1-"0:4:59","0:10"*1))
=IF(A1<"10:00"*1,"10:00"*1,FLOOR(A1,"0:10"))
- shinkun0114
- ベストアンサー率44% (1553/3474)
#1さんの回答にがすでにありますが、補足だけしておきます。 まず、Excelの時刻形式は、1日=24時間を「1」と考えています。 ですから、10:00は、10/24=0.41667程度になってしまい、 ROUNDDOWN関数を使ってもうまく計算されません。 そこで、FLOOR関数を使います。 FLOORは特定の値で丸めを行うもので、ROUNDなどと異なり、 時刻形式でも丸めを行うことができます。
- shikisaito
- ベストアンサー率52% (257/491)
=IF(A1<=TIMEVALUE("10:00"),TIMEVALUE("10:00"),FLOOR(A1,"00:10"))