労働時間や残業時間の合計を、エクセルに自動計算させる方法

労働時間や残業時間の合計を、エクセルに自動計算させる方法

会社などでは「労働時間」や「残業時間」をエクセルで管理している事も多いと思うのですが、時間関係の計算は意外とややこしかったりして自動計算が実装されていなかったりします。
備忘録として、ここに記しておきます。

1
パターン1(労働時間)
1,月合計セルの「セルの書式設定」を変更する。「文字列」→「標準」にする(標準になっていたら、そのまま2へ)

2,「セルの書式設定」を変更したセルに、=SUM(E12:E42) のように月初から月末までのセルを指定して、自動計算させる(12:34みたいな入力前提)

3, これで合計値が表示されるかと思いきや、162時間30分が、なぜか22:30と表示される。これは6日(144時間)+22時間30分と解釈されるため。

4,これを防ぐため、再び「セルの書式設定」を変更する。
具体的には、「標準」→「ユーザー定義」で[h]!h mm!m (24時間以上加算表記)にする。[]を使うと繰り上がりを防げる(!はエスケープ文字)
こうすると、162h 30m と表示される。

2
パターン2(残業時間)
「時間」と「分」が別のセルの場合

1,残業時間合計セルが、セルが2つ(時間と分)に分かれているので、「ホーム」→「セルを結合して中央揃え」でセル結合する(分かれていると無理!)
「セルの書式設定」を、計算式を入力するために「標準」に変更

2,セルの内容を、=SUM(Z12:Z42)*”1:0″+SUM(AA12:AA42)*”0:1″のようにする(「時間」と「分」のセルの合計値を、それぞれ時分に変換(hh:mm)して、時分として合計している)
注釈:
「セルの書式設定」で、”0:1″を掛け算すると、かけた数字を単位で返す。
例. 11*”0:1″ → 00:11
「セルの書式設定」で、”1:0″を掛け算すると、かけた数字を時間単位で返す。
例. 11*”1:0″ → 11:00
3,最後に、「セルの書式設定」を、「ユーザー定義」で [h]!h mm!m に変更して、時分表記にする。

こういう事をしていると、「プログラマの三大美徳」という言葉が浮かぶ。
「怠惰」 = めんどうな事はやりたくない。コンピュータにやらせよう。
「短気」 = こんな馬鹿な事はやりたくない。コンピュータにやらせよう。
「傲慢」 = 誰にも文句を言わせない、良いプログラムを書こう。