詳細検索

    キャリア・職場このトピを見た人は、こんなトピも見ています
    こんなトピも
    読まれています

    エクセルで教えて下さい

    お気に入り追加
    レス9
    (トピ主1
    Twitterでシェア facebookでシェア LINEでシェア はてなブログでシェア
    🐱
    428
    仕事
    トピを開いて頂きありがとうございます。
    私の会社はタイムカードが無く全て手書きで勤務時間を計算します。

    そこでエクセルを使って、計算しようと思ってますが一つ躓いてしまったので詳しい方教えて頂けませんか?

    勤務時間が9時間の場合、8時間と1時間に分けたいのです。8時間以内、8時間以上と分けなければならないのです。

    関数の本を読んでも答えが見つけれません。
    宜しくお願いします。

    トピ内ID:2999684133

    これポチに投票しよう!

    ランキング
    • 0 面白い
    • 0 びっくり
    • 0 涙ぽろり
    • 0 エール
    • 0 なるほど

    レス

    レス数9

    レスする
    • レス一覧
    • トピ主のみ (1)
    このトピックはレスの投稿受け付けを終了しました
    並び順:古い順

    それはきっと

    しおりをつける
    blank
    ひるあんどん
    男性です。

    トピ主は勤怠管理等で、定時内の稼働時間と時間外の稼働時間を分けて計算したいと考えているのですよね?

    手元にExcelがないので具体的な方法は調べて貰う必要がありますが、仮に総時間数が入力されたセルをA1とします。B1にはIIF()関数で8時間以内であればA1の値をそのまま、8時間を超える場合は8をセットするようにします。C1も同じようにIIF()関数で8時間以内であれば0(ゼロ)を8時間を超える場合には総時間数から8を引いた時間をセットするようにすれば、お求めの答えは出るはずです。

    もっと良い方法があるかもしれませんが、トピ主のようにExcelやマクロ・プログラミングに不慣れな方の場合、先ずは考え方を単純化しそれを関数化して繋ぎ合わせることを考えた方がよいと思います。

    トピ内ID:5771736488

    閉じる× 閉じる×

    残業時間を求めたいってことですよね?

    しおりをつける
    blank
    レヒニッツ
    詳しくはありませんが。

    8時間を越える時間数を求めたいだけと仮定します。

    D列に勤務時間数が記録されており、F列が残業時間数とすると、たとえば今5行目を処理するならば、F列に "=if(D5>8,D5-8,0)" と入れれば良いのでは?

    ifは負の残業時間がF列に入らないために書いてるだけで、特別な関数は不要だと思います。MOD関数を使ってしまうと、まかり間違って16時間以上勤務した場合に、変な結果が返ってしまいます。

    ↑のような問題ではないのでしょうか?

    トピ内ID:0763221415

    閉じる× 閉じる×

    こうです

    しおりをつける
    akiron
    時間を記入するセルに対して、8時間枠のセルには

    =IF(A2<=8,A2,8)
    の様に書きます

    9時間枠のセルには
    =IF(A3>8,A3-8,0)
    の様に書きます

    適当に応用して下さい

    トピ内ID:3493823968

    閉じる× 閉じる×

    勤務時間から時間が集計されてるのなら

    しおりをつける
    😑
    あらら
    集計されたセルがA1とすれば
    =if(round(A1<8,A1,A1-8) ※もしA1が8未満ならA1の値を、そうでなければA1-8の値を
    という式を8時間以上のセルに書けば良いのでは?

    トピ内ID:1598976238

    閉じる× 閉じる×

    修正

    しおりをつける
    😑
    あらら
    =if(A1<8,0,A1-8) ※もしA1セルが8未満なら0をそうでなければA1セル-8の値を でした

    トピ内ID:1598976238

    閉じる× 閉じる×

    小町より

    しおりをつける
    🙂
    coco
    ここよりもmougで検索するか、質問するのがいいかも。

    トピ内ID:0930960091

    閉じる× 閉じる×

    これで良いのかな?

    しおりをつける
    blank
    アイス
    以下のような結果を得たいということでしょうか?
    A列に勤務時間が入っていて、B列に8時間以下の分、C列に8時間を超過した分。

    A列  B列  C列
    1 8.9  8    0.9
    2 9.1  8    1.1
    3 7.3  7.3   0
    4 6.2  6.2   0



    これでしたら、B1セルに次の行を入力します。
    =IF((A1<=8.0),A1,8.0)
    C1セルには次の行を入力します。
    =IF((A1>8.0),A1-8.0,0.0)

    B2以下のセルはB1をコピーして、C2以下のセルはC1をコピーします。

    ご存知だとは思いますが、縦列へのコピーはセルの右下の角をダブルクリックするだけで出来ます。

    トピ内ID:5410869913

    閉じる× 閉じる×

    簡単にIF関数だけで。

    しおりをつける
    🐱
    匿名さん
    出退勤の時刻の記録が要らないなら、


    A1に 実働時間 を直接入力
    B1に =IF(A1>8,8,A1) と関数入力。
    C1に =IF(B1=8,A1-B1,"") と関数入力。

    実際には1行目は項目名にしますから、2行目以降に関数をに入力しますが。

    B列は8時間を超えるなら8、そうでない(8時間以下)なら実働時間が入り、

    C列は8時間以上の実働時間の場合の8時間を超える時間数が入ります。

    ※ここでC列が『8時間を超える』実働時間条件でないのは、ぴったり8時間働いたときに『8時間超は0分』と明確にするためです。

    トピ内ID:9244480159

    閉じる× 閉じる×

    出来ました!

    しおりをつける
    🐱
    428
    今、エクセルでif関数を使い、望み通りの勤怠管理表が作れました!

    皆様、このような初歩的な質問に回答して頂きありがとうございました!!

    mougというサイトも初めて知りました。ックマークさせて頂きました。

    同僚も手書きで苦労していたので、総時間の計算位なら私でも作れたのですが、皆様のおかげでより良いモノが作れた事を感謝致します!!

    トピ内ID:2999684133

    閉じる× 閉じる×
    並び順:古い順
    • レス一覧
    • トピ主のみ (1)

    あなたも書いてみませんか?

    • 他人への誹謗中傷は禁止しているので安心
    • 不愉快・いかがわしい表現掲載されません
    • 匿名で楽しめるので、特定されません
    [詳しいルールを確認する]