Moves終了後どうする話です。前回はGPSロガーについてでしたが、この記事では、もう一つの用途、出勤管理用の記録についてです。

たまたま、今の業務がいくつかの居場所をいったりきたりすることが多いため、よって出勤時の打刻をメインの居場所ではできず毎月まとめて修正することが多いです。

moves

このとき、Movesのログがすごくいい感じでわかりやすいのです。修正したい日を選んでササッと何時から何時まで会社で働いていたかがわかる感じでした。大した話じゃないようなのですが、例えば SlientLog など他のアプリも試したのですが、結果がなかなか見やすくならない。細かすぎてノイジーだったりうまく説明しづらいのですが、Movesがすごく良かったのです。

IFTTT-Google SpreadSheet

そこで試したのが IFTTT と Google SpreadSheetの連携です。iPhoneに IFTTT を入れておくとGeoFenceがはれて、「特定の圏内に入ったら」「でたら」といったTriggerが作成できます。そして、それをTriggerにSpreadSheetに、いつ入った、というログを残すのです。居場所ごと、出入りごとに条件を作り、SpreadSheetに記録をしていきました。Triggerの設定には enter/exit/enter or exitが選べますが、今回はin/outで記録する内容を変えたいためにメンドウですが、enter/exitをそれぞれ設定しました。

{{OccurredAt}} ||| in ||| PlaceA |||=IMAGE("{{LocationMapImageUrl}}";1) ||| {{LocationMapUrl}}

列を追加できるので、「in or out」、と「どこか(place)」を加えておきます。

sheet01

こんな感じでどしどしログが取られます。ただよく見ると分かるのですが、きちんと整合性をとって in/out を記録しているわけでないので、 in, inと続いたりすることもあるようです。ここは悩ましい。GeoFenceもそれほど細かくピンポイントでは設定することはできません。もちろん位置情報の精度の問題もあるのでしょう。

多少の難はともかくも、このままだとログにはなっているが、ササッとその日の出勤時間を確認するのは難しいので、Google SpreadSheet上で加工をできるようにしておきます。やったのは、

  • IFTTTが記録するテキストの日時情報 `July 11, 2018 at 12:46PM` を `=SPLIT(A3, "at")`として、 Date/Time にする
  • あまりに小さな出入りを除外したく、フィルタ用のカラムを作る(ここは試行錯誤)

sheet02

下準備をしておいて、隣のシートで、Dateをインデックスに、InとOutでそれぞれのTimeの最小値と最大値で、ピボットテーブルを作ると、

sheet03

こんな感じでできたテーブルで、InのMaxとOutのMinは非表示にしておくことで、各日の出勤・退勤時間がひと目で分かるようになりました(^^)

とりあえずはこれで運用してみようと思います。

あと、もう一つわかった残った課題も共有しておくと、、、会社の近くで飲み会などした場合は、またIn/Outの記録がついちゃうこと(笑)いずれにせよざっくりピボットテーブルで把握しつつも、生ログを見る必要がありますね。

いっその事、今回のIFTTT連携で取れたログを元に、Moves的な表現をトライしたほうが、滞在時間なんかも視覚的に理解できて、良いかもしれません。今度試してみようと思います。生ログが Google SpreadSheet に入るのはいずれにせよいろいろ加工しやすくていい感じですね。GoogleDocsは、Google Action Script(GAS)含めて、いろいろできる(よう)ので、積極的に活用できるようになりたいですね。GAS関連の書籍でも、試しに読んで見ようかな。