• 締切済み

エクセルの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分の位の位置のばあい、何になるのかよく わかりません。 どうぞよろしくお願いします。

みんなの回答

noname#95859
noname#95859
回答No.5

こんな方法もあります。 =A1-MOD(A1,"0:10") Floor関数の方がスマートだと思いますが、 こんな方法もあります、という程度です。

noname#204879
noname#204879
回答No.4

FLOOR関数以外では次式でもOKかと。 =IF(A1<"10:00"*1,"10:00"*1,MROUND(A1-"0:4:59","0:10"*1))

noname#204879
noname#204879
回答No.3

=IF(A1<"10:00"*1,"10:00"*1,FLOOR(A1,"0:10"))

回答No.2

#1さんの回答にがすでにありますが、補足だけしておきます。  まず、Excelの時刻形式は、1日=24時間を「1」と考えています。 ですから、10:00は、10/24=0.41667程度になってしまい、 ROUNDDOWN関数を使ってもうまく計算されません。  そこで、FLOOR関数を使います。  FLOORは特定の値で丸めを行うもので、ROUNDなどと異なり、 時刻形式でも丸めを行うことができます。

回答No.1

=IF(A1<=TIMEVALUE("10:00"),TIMEVALUE("10:00"),FLOOR(A1,"00:10"))

関連するQ&A