LoginSignup
1
0

More than 1 year has passed since last update.

勤怠時間が1日に複数列ある #CSV を使って #GoogleSheets で日単位・月単位の合計時間を計算する例 ( 勤怠管理 ) (稼働時間の計算) ( #エクセル の参考にもどうぞ )

Last updated at Posted at 2019-09-02

まとめ

列を二個使って、次のように行ごとに計算する。

列番号はあくまで例。

H列

=INDIRECT(CONCATENATE("C",ROW())) - INDIRECT(CONCATENATE("B",ROW())) + INDIRECT(CONCATENATE("E",ROW())) - INDIRECT(CONCATENATE("D",ROW())) + INDIRECT(CONCATENATE("G",ROW())) - INDIRECT(CONCATENATE("F",ROW()))

I列

=SUM(H2:INDIRECT(CONCATENATE("H",ROW())))

CSV

  • 次のようなCSVがあるとする。
  • 1日あたりの開始時間と終了時間のペアが複数個あり、それぞれに列が分かれている。
月日,開始時間(1),終了時間(1),開始時間(2),終了時間(2),開始時間(3),終了時間(3)
2019/08/01,6:45,15:45,18:20,20:20,,
2019/08/02,6:55,15:25,17:05,19:20,,
2019/08/03,,,,,,
2019/08/04,,,,,,
2019/08/05,6:45,10:45,12:00,14:45,16:35,18:40
2019/08/06,6:45,10:45,13:00,19:55,,
2019/08/07,6:40,10:45,11:40,14:00,16:45,19:40
2019/08/08,7:15,17:20,,,,
2019/08/09,10:15,13:00,14:00,21:20,,
2019/08/10,,,,,,
2019/08/11,,,,,,
2019/08/12,,,,,,
2019/08/13,6:45,12:10,14:40,17:00,,
2019/08/14,10:00,11:10,13:00,16:50,,
2019/08/15,7:20,11:55,12:15,15:00,16:35,17:20
2019/08/16,6:55,12:35,14:10,18:35,,
2019/08/17,,,,,,
2019/08/18,,,,,,
2019/08/19,6:50,12:15,15:10,19:25,,
2019/08/20,10:05,14:20,17:00,19:00,,
2019/08/21,18:35,20:25,,,,
2019/08/22,8:55,11:55,14:05,14:50,,
2019/08/23,7:10,9:40,11:30,17:35,,
2019/08/24,6:45,9:15,10:55,13:40,,
2019/08/25,7:10,10:15,11:50,16:10,18:50,20:20
2019/08/26,6:45,9:50,10:50,13:15,,
2019/08/27,6:50,12:40,14:15,19:35,,
2019/08/28,6:50,10:25,11:45,15:00,16:25,19:05
2019/08/29,6:45,11:00,12:35,16:20,17:50,19:30
2019/08/30,6:50,10:05,11:30,14:50,16:40,19:40
2019/08/31,6:45,10:20,11:55,15:30,17:55,18:50

Google Sheets

これを Google Sheets に取り込む

ファイル > 開く > アップロード

image

Google Sheets にインポートされる

image

表示形式

余っている列 H を選んで、表示形式を変更しておく。

表示形式 > 数字 > 経過時間

image

カスタム数値形式を入力しても可能。エクセルの場合も、こちらでいけるかも。

[h]:mm; @

image

1日の稼働時間を合計する

  • 開始時間1 から 終了時間 1 を引いて、時間帯1の稼働時間を得る
  • 開始時間2 から 終了時間2 を引いて、時間帯2の稼働時間を得る
  • 開始時間3 から 終了時間3 を引いて、時間帯3の稼働時間を得る
  • 全ての時間帯の稼働時間を合計する

ということをしたい。

まずは1行分だけ計算してみる。

=(C2-B2)+(E2-D2)+(G2-F2)

image

image

全ての行で自動計算する

1行ずつ入力するのは大変なので、現在行に対して、自動計算するようにする。

=INDIRECT(CONCATENATE("C",ROW())) - INDIRECT(CONCATENATE("B",ROW())) + INDIRECT(CONCATENATE("E",ROW())) - INDIRECT(CONCATENATE("D",ROW())) + INDIRECT(CONCATENATE("G",ROW())) - INDIRECT(CONCATENATE("F",ROW()))

image

これを全ての行にコピー&ペーストする。

image

稼働時間合計

稼働時間の列 H を元に、合計稼働時間を出したい。

新しい列 I を使う。こちらも表示形式を 表示形式 > 数字 > 経過時間 に変更しておく。

これで24時間以上の合算が可能になる。

=SUM(H2:H2)
=SUM(H2:H3)
=SUM(H2:H4)

のようなことがしたいので、こちらも全ての行で現在行が自動設定されるように、次の式を入力して、全ての行にコピー&ペーストする。

=SUM(H2:INDIRECT(CONCATENATE("H",ROW())))

image

月末の稼働時間合計

これで月末には稼働時間の合計が算出される。

image

ダウンロードする場合

image

エクセル 形式で表示可能?

Macの Preview / Numbers で見たところ、ちゃんと表示されなかった。

image

image

CSV形式でダウンロードして Mac の Numbers で表示した例

CSV形式でダウンロードしておくのが良いかもしれない。

image

Original by Github issue

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

Twitter

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0