見出し画像

Ex1 簡易版タイムカード・出勤簿をつくる(一部有料)/ITド素人がGoogle無料アプリで業務管理システムを作る!


前回まで作ってきたのは課税が不要な収入額の施設の利用者用です。
社員やバイトの方は給与明細をイチから作る必要はないので(まともな会社なら給与計算ソフトがあるはず)タイムカードフォームと出勤簿だけを作って運用しています。

利用者用のやつをアレンジした簡易的なものですが、弊事業所ではこれで用が足りているのでOKとしています。

【やったこと】

  • 出勤退勤の時間を決める

  • 通勤手段を選択する/備考欄を設ける

  • 出勤簿テンプレートを作り、フォームと紐付ける

  • [data][date]シートを作り、データ加工の関数を書く

  • テンプレートに関数・数式・PDF化GASを書き込む

【どういう感じでやったか】

出退勤の時間を決める

  1. 時間をきっかり決めて(60分単位など)時間選択制にするか

  2. タイムカードが打たれた時間をそのまま勤務時間にするか

の2通りの方法がありましたが、弊事業所は細かい時間での計算はしていないので始業時間と終業時間の時間選択制にしました。

通勤手段を選択する/備考欄を設ける

自家用車・電車などの手段を選択する項目を作りました。
また、予定外の車での通勤距離や電車賃、有給などの備考を記入する自由記入欄を設けておきます。

出勤簿テンプレートを作り、テンプレートを紐づける

利用者用より必要情報が少ないのでシンプルになりました。

[data][date]シートを作り、データ加工の関数を書く

基本的には#4で作成したものとほぼ同じです。

【date】
【data】

固有ID付ける関数と、打刻時間を HH:MM 表記で取り出す関数を追加。

=if(B2="","",C2&ROUNDDOWN(B2,0)&D2)
=if(B2="","",text(B2,"hh:mm"))

テンプレートに関数・数式・GASを書き込む

基本的には#4で作成したものとほぼ同じです。
参照セルが違うとか検索キーの文言が違うとかその程度。
気をつけるのはセルの表示形式くらい?
(滞在時間と勤務時間の形式は経過時間など)

=IFERROR(IF(VLOOKUP($G$3&$A6&C$5,data!$A:$I,5,FALSE)="遅刻",VLOOKUP($G$3&$A6&C$5,data!$A:$I,9,FALSE),VLOOKUP($G$3&$A6&C$5,data!$A:$I,5,FALSE)),"")
=IFERROR(IF(VLOOKUP($G$3&$A6&D$5,data!$A:$I,6,FALSE)="早退/残業",VLOOKUP($G$3&$A6&D$5,data!$A:$I,9,FALSE),VLOOKUP($G$3&$A6&D$5,data!$A:$I,6,FALSE)),"")
=if(D6="","",(D6-C6))
IF(D6="","",(IF(E6>0.1667,"1:00","")))
=IF(D6="","",(E6-F6))
=IFERROR(XLOOKUP($G$3&$A6&D$5,data!$A:$A,data!$G:$H),"")

滞在時間と休憩時間はちょっと邪魔なので非表示にします。

PDF化のGASを書いて、ボタンは会社ロゴにしました。

スクリプト割り当て

GASの挙動を確認したらシートを人数分複製して終了です。

【実際に書いたスクリプト】以下有料

PDF化するGAS。
これも#4の有料部分で公開したものとほぼ同じです。

ここから先は

2,031字

¥ 100

この記事が参加している募集

この記事が気に入ったらチップで応援してみませんか?