業務改善と標準化を同時に実現:MS 365業務システム開発

マイクロソフトFormsでテレワークに対応する簡単な方法【IT勤怠管理】

    
マイクロソフトFormsでテレワークに対応する簡単な方法「IT勤怠管理」
\ この記事を共有 /
マイクロソフトFormsでテレワークに対応する簡単な方法【IT勤怠管理】

今日は最近のテレワーク対策として、マイクロソフトFormsを使った簡単なIT勤怠管理の仕方をご紹介します。フォームの作り方から、集めたデータをピボットテーブルを使っての勤務時間や残業時間の集計の仕方まで紹介しています。

(動画時間:8:59)

マイクロソフト365でのテレワークへの対応を考える

こんにちは、リーンシグマ、ブラックベルトのマイク根上です。
業務改善コンサルをしています。

今日は人事部門の責任者をされている方からご質問と次のコメントを頂きました。

MS Forms 勤怠管理コメント

「ほとんどの企業は、各種業務アプリケーション、勤怠、(承認)ワークフロー、経費精算等を別々で導入していることがほとんどです。それを全て(マイクロソフト)365で使用できるなら非常に画期的です。」

大塚さん、ご質問とコメントありがとうございました。
ご質問にはこの動画の後半でお答えします。

おっしゃる通り、マイクロソフト365を使うと
勤怠、承認ワークフロー、経費精算等は全て実現できます。

最近多くの会社で社員のテレワークへの対応に迫られていますので、
今日はその中の勤怠管理の業務をマイクロソフト365で構築する方法を
皆さんと考えていきたいと思います。

緊急の最小限の問題を直ぐに対処する方法もあるし、
業務システムを作って全体最適化をする事もできます。

今日は従業員が何時から何時まで働き、
給料計算ができる最低限のニーズに答え、
簡単に直ぐに始められるものを考えます。

これだとマイクロソフトFormsだけで実現できるのです。
このマイクロソフトFormsの基本については以前動画を作りました。
⇒「マイクロソフトFormsの基本と便利な使い方【初心者向け】」

 テレワーカーのスマホから出退勤時間を送信する

まずは、対象従業員がマイクロソフト365のライセンスを
皆が持っている場合です。

MS Forms 出退時間提出フォーム

マイクロソフトFormsで上図の様な簡単なフォームを作ります。
画面右上の「共有」をクリックして、そこのリンクを従業員に送り、
リンクを受取った人はそれをクリックすると
このフォームをブラウザーで開けられます。
これはスマホでも利用ができるので便利ですね。(下図参照)

MS Forms 出退時間提出フォーム スマホ版

「出勤」か「退勤」を選択して「送信」のボタンをクリックすると
そのクリックした時間が出退勤時間としてクラウドに保存されます。

その記録を見るには、責任者がこのフォームの作成画面に行き、
「応答」、「Excelで開く」をクリックすると、
全ての記録されたデータをエクセルで出す事ができます。

MS Forms 出退時間提出記録

上図の様に何時に、誰が出勤したのか、退勤したのかの情報を取得できるのです。
C列の完了時間がが出勤や退勤した時間になります。

マイクロソフト365のライセンスをテレワーカー全員に付与できない時

後でこの集計の仕方もお見せしますが、
マイクロソフト365のライセンスがある場合には
ユーザー情報も同時に回収できます。

しかし、全テレワーカーにマイクロソフト365のライセンスを
与えられない会社もありますよね。

マイクロソフトFormsはフォームのリンクをそのような従業員にも送り、
彼らからの情報も取得できるのです。

その時は画面右上の「…」アイコンから、
「設定」を選び「すべてのユーザーが返信可能」を選びます。

しかしこの設定にすると返信したユーザー情報は自動では回収できません。
ユーザー名を入力する質問の追加が必要です。

「+新規追加」をクリックし、「テキスト」を選び、
名前を入力させる質問を作れます。

しかし、ユーザーの入力する手間が増えるし、
名前をいつも全く同じに入力してくれないリスクがあり、
その場合、データの集計の時に問題になります。

ですので「選択肢」型式にした方が良いでしょう。
ちなみに選択肢の入力の時にエクセルから従業員の名前の一覧をコピペして、
簡単に入力する事ができます。

もちろんこのやり方では他の人の名前を間違えて選択し、
送信してしまうリスクがあるのは念頭に入れて下さい。

また、Formsではデータの送信だけで、
ユーザーが自分の勤怠状況を確認したり、
修正をするような機能を付けたい場合は
やっぱりPowerAppsを使ってアプリを作った方が良いでしょう。

回収した出退勤時間からテレワークの勤務時間をもとめる

次に回収した情報をどう集計するかをお見せします。
エクセルVBAを使ってボタン一つで集計するプログラムを作るのが一番良いですが、
今日はピボットテーブルを使う方法をご紹介します。

毎日各テレワーカーから出勤時間と退勤時間の
二行のデータが来る事になります。

C列の「完了時間」が送信した時の時間で、
この列には日付と時間の両方が入っています。(下図参照)

MS Forms 出退時間提出記録 TEXT関数

そのうちの日付だけの列が必要なので
Text関数を使って新しい列(G列)に出力します。

G2セル内
=TEXT(C2,”yyyy/mm/dd”)

このG列の列名を「勤務日」として、
その隣の列(H列)を「勤務時間」として、
下の数式を入れます。

H2セル内
=IF(F2=”出勤”,0,C2-SUMIFS(C:C,E:E,E2,G:G,G2,F:F,”出勤”))

この数式の意味は
「F列が“出勤”の時は0を、そうじゃない時は
完了時間(C列)からSUMIFS関数の結果の時間を引いた値を表示する」です。

このSUMIFS関数でやっている事は
「名前と勤務日が同じで ”出勤” した完了時間を検索」しています。

まとめると、
「出勤の行には0を表示し、退勤の行には
退勤時間から出勤時間を引いた勤務時間を表示」しています。

ちなみにこの表はもうすでにエクセルテーブルになっていますので
数式は自動で全行コピーされます。

ピボットテーブルで各テレワーカーの勤務時間の集計をする

次にピボットテーブルで集計結果を簡単に出しましょう。

このエクセルテーブル内の一つのセルを選んだ状態で、
メニューバーで「挿入」、「ピボットテーブル」で、
次の画面で「既存のワークシート」をクリックして、
エクセルテーブルの右側を選んで「OK」をクリックします。

ここで「名前」を行セクションに、
「勤務日」を列セクションに、
「勤務時間」を値セクションに入れます。

MS Forms 出退時間集計 ピボットテーブル

これで各テレワーカーの勤務時間の合計が出てきて、
全テレワーカーの勤務状態の一覧が見えるわけです。

MS Forms 出退時間集計 ピボットテーブル結果

このファイルをマスタファイルとして保存しておき、
次からはFormsの結果部分をこのテーブルにコピペし、
ピボットテーブル内で右クリックして
「更新」を選んで最新の集計を簡単に得られます。

どうですか、これで差し迫った問題の
テレワーカーの勤怠管理を簡単にできます。

もっと色んな機能が必要かもしれません。
その場合はPowerAppsやエクセルVBAを使って実現可能です。
その時は僕にご連絡下さい。お手伝いできます。
⇒「econoshiftにお問合せ」

テレワーカーの残業時間を集計する

最後に質問者の大塚さんのご質問にお答えします。

「勤怠システムをpower apps で作成した場合、
例えば実働8時間を超えた時間だけを個人別で
抜きだす(csv出力等)ことは可能でしょうか?」

これはおそらく8時間を超えた後の残業時間を出して
給与計算に使いたいのでしょう。
これも一列追加すればできます。
先ほどの例でやってみましょう。

「勤務時間」列(H列)を見て下さい。(下図参照)
エクセルでは1日、つまり24時間で1となります。
すると8時間は24分の8です。

残業時間は勤務時間から8時間を引いた時間ですので、
残業時間」列(I列)を作り、勤務時間-8/24で出てきます。

I2セル内
=H2-8/24

しかし、これだけだとマイナスの行も出てきてしまいますので、
「勤務時間が8/24より小さければ0にする」
という条件式を加えます。

I2セル内
=IF(H2<8/24,0,H2-8/24)

最終的な結果はこうなります。

MS Forms 出退時間提出記録 最終形

これでピボットテーブルを更新し、
「残業時間」のフィールドが加わりますので
それを値セクションに入れます。

列セクションに「値」の項目が出ているのを、
行セクションに移動すると見易くなります。

MS Forms 出退時間集計 ピボットテーブル2

MS Forms 出退時間集計 ピボットテーブル結果2

ご質問ではPowerAppsで作成した場合と言われていますが、
アプリで使っているデータベース内で同じ様に
列を追加すれば良いと思います。

最初の議論に戻りますが、
マイクロソフト365の色んなアプリを組み合わせて使う事により、
社内の多くの業務をデジタル化、自動化する事が可能になります。

「こちらの記事も読まれてます