教えて!HELPDESK      Excel     Word      Outlook      Power Point      Windows   IE

 

 

Excel:100時間以上ならA、そうでなければB

 

 


 

 

 

下記の表で、残業時間が100時間以上ならA、そうでなければB、という 条件で判定結果を返すとします。

時間のセルはhh:mmといった形で入力さ れていますが実際はシリアル値として格納されています。なので IF(B2 >=100, "A" , "B" ) では「シリアル値が100より大きい場合」という式になってしまい、正しい結果が出せません。

このような場合は数値(100)をシリアル値に変換 すればいいのです。

 

ここで多くの方がB2>=TIME(100,0,0)としがちですがこれでは正しい解答はでません。TIME関数は"時"の部分は0〜23までで、それ以上は0に戻ります。

つまりTIME(100,0,0)では4:00という数値が返ってしまいます。

 

数値をシリアル値として返すには、24で割ります。(24Hでシリアル値1なので。)

100(時間)÷24=4.16666… となり、これが100:00のシリアル値です。

  •  IF (B2 >=100/24, "A","B") 


◆◆◆ 補足 ◆◆◆

条件が24時間より小さい(23:59まで)のであれば、TIME関数を使うこともできます。(TIME(時,分,秒)で時間を指定する。)

◎ 例 : 20時間以上なら…
→ IF (B2 >= TIME(20,0,0) , "A" , "B")

TIME関数では、24時間以上の場合は0:00に戻ってしまう為、正しいシリアル値での計算はできません。
例えば26時間をTIME(26,0,0)とすると、2:00が返ります。よって >= TIME(26,0,0)の式を作っても、「2時間以上の場合は…」となってしまうのです。
同様に、100時間以上を>=TIME(100,0,0)としてしまうと、4:00以上の場合…となってしまいます。

なので、通常の数値をシリアル値に変換する為には÷24とすることを覚えておくといいでしょう。

 

 


関連 Q&A

 

 

 

教えて!HELPDESK      Excel     Word      Outlook      Power Point      Windows   IE