• 締切済み

エクセル(時間計算)教えてください

エクセルの時間計算を教えてください 8:00以下の入力なら、8:00とでてほしくて、8:00以上の入力ならその時間がでるようにしたいのです。 (労働時間のセルB2~B5に実際の労働時間を入力すると、所定時間セルC2~C5にでるようにしたい) IFかと思うのですが、時間だとうまくいかなくて。。。 教えてください。宜しくお願いします。         A     B        C 1           労働時間  所定時間 2      Aさん  8:00     8:00 3      Bさん  6:00     8:00 4      Cさん     8:10     8:10 5      Dさん     12:30     12:30

みんなの回答

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.7

>IFかと思うのですが、時間だとうまくいかなくて。。。 B列に入力した値は文字列でしょうか? Excelで時刻や時間を扱うときキーボードから 8:00 のように入力すると1未満の数値になります。 但し、セルの表示形式を文字列にしてある場合や先頭に`(シングルクォーティション)を付けると文字列として入力されます。 あなたが扱っているデータの状態によって関数式の使い方を考えなければなりません。 B列の値が文字列と数値の混在でもC列の値を数値にする数式を下記のように提言します。 C2=IF(OR(ISBLANK(B2),ISNA(B2)),"",MAX("8:00"*1,B2*1)) この数式でIF関数はB列に入力された値が数値でなく、然もブランクのときC列が空欄になるようにするものです。 MAX関数は本来の目的の8:00以下のとき8:00とし、8:00を超えるときはB列の値にするための数式です。 尚、"8:00"*1及びB2*1は対象が文字列のとき数値に置き換えるための計算です。 貼付画像はExcel 2013で検証した結果ですがExcel 2007以降のバージョンで同様の結果が得られます。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.6

C2 =IF(B2="","",MAX(B2,8/24)) でコピー 時間を比較する場合は "8:00"*1 TIME(8,0,0) 8/24 のいずれかを使用になります。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.2です。 一番大事な >8:00以下の入力なら、8:00とでてほしくて を見逃していました。 C2セルの表示形式はユーザー定義から [h]:mm としておいて(h:mm でも構わないと思いますが、「時刻」ではなく「時間」だというコトなので) 数式を =IF(B2<"8:00"*1,"8:00"*1,B2) としてください。 どうも失礼しました。m(_ _)m

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

C2には =IF(B2="","",MAX(B2,"8:0")) として、時間の表示形式を付けておけばOKです。

  • RandenSai
  • ベストアンサー率54% (305/561)
回答No.3

すでに回答が出ていますが、別案としてTIMEVALUE関数を使う方法もあります。 =IF(B2>TIMEVALUE("8:00"),B2,TIMEVALUE("8:00")) TIMEVALUE関数は見たまんまで、時間形式の文字列を時間のシリアル値に変換する働きをします。実はVALUE関数でも同じ結果になったりするんですけど、TIMEVALUEの方が時間であることが明示されているので何かと安全です。 また勤務というか稼働時間を示す場合は時間形式より、10進数値の方がよく使われると思います。稼働時間は最小15分単位という会社が多いため、10進数の方が解りやすいというか扱いやすい。実働7時間30分だと表記は7.5、実働10時間45分なら10.75とする、みたいなやり方ですね。もしこれが10分単位や5分単位な会社だと、端数がいっぱい付くのでめんどくさくなりますが。 時刻のシリアル値を時刻形式ではなくG/標準で表示した場合は、24:00:00と言うか一日が1になります。つまり時刻のシリアル値を10進数に変換するには、24倍すれば良いと言うことになります。例えば、 =TIMEVALUE("12:00") --->0.5 =TIMEVALUE("12:00")*24 ---> 12.0 となります。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! C2セル(セルの表示形式は「時刻」にしておく)に =IF(B2>="8:00"*1,B2,"") という数式を入れフィルハンドルで下へコピーしてみてください。 ※ "8:00"*1 とすることで、小数点以下の数値にすることができます。m(_ _)m

  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.1

Excelにおける日付・時間計算は、「シリアル値」で行われています。 「シリアル値」とは何かというと、1日を数字の1.0とし、1900年1月1日からの経過日数を、小数点つきの数値で表したものになります。 時刻のみのセルの場合、数値的には、0~0.999…の値が、記録されています。 1時間は、1/24=0.041666… という、小数点の値です。 ですからifの条件式では、数値と比較してください。"8:00"と書くと、文字列になってしまうので、比較できません。 以上を理解したうえで式を書くと、 (C3) =if(B3<8/24, 8/24, B3) こうなります。(C列の書式設定を「時刻」にするのをお忘れなく。) なお、「8/24」は、約分すれば1/3だし、計算すれば0.333…ですから、そう書いてもいいんですが、人が見たときにすぐに「24時間中の8時間」と読み取ることができるので、あえて24を分母とする分数の形式で書きました。