14
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LITALICOAdvent Calendar 2024

Day 23

GoogleMeetの出席レポート機能を使って、定例会議の出欠状況を集計してみた

Last updated at Posted at 2024-12-22

この記事は🎄LITALICO Engineers Advent Calendar 2024🎄 シリーズ4の23日目の記事です。

はじめに

LITALICO@negi です。

約1年前にJinjineer(ジンジニア)になりました。
2C向けのプロダクト開発をメインに扱うエンジニア組織のHRBP(人材開発、組織開発)的な役割を担っています。

GoogleMeetの出席レポートに関するtipsがあまり多くなく、集計の際に困ったことと、その対応について書いてみました。

きっかけ

部内で実施されている定例会議(任意参加)の出欠状況をモニタリングしたいというのがきっかけです。

任意参加と言えども、毎回会議に参加できない人がいたとすると、組織内で情報の非対称性が生まれてしまうので、
何か欠席の事情があるのか、別会議と時間が被っていないか、など、HRやマネージャーから能動的にアクションを起こせる状態にしたいと思いました。

やったこと

はじめは、GoogleMeetの参加者一覧を目視確認で対応

在宅でオンラインで働く方、出社してオフラインで働く方、状況が人それぞれなので、働く場所を意識せず会議ができるよう、基本はGoogleMeetを使っています。

初手としては、GoogleMeetの参加者一覧を目視確認して、スプレッドシートに出欠状況を入力していました。

Meet_-_デイリースタンドアップ_🔊.png

ここで困ったのが下記です。

  • 自分が参加できないときに出欠記録が取れない
    • 目視作業は、誰かに依頼するのも気が引ける面倒くささ…
  • 会議に遅れて参加したり途中で抜けたりと、人の出入りがある
    • 「この人さっき居たはずなのに、今見たらいない…」
  • 毎回出席してるけど実は参加時間が短い人、を把握できない
    • 「別の会議と被っていて、いつも前半しか参加できない」

GoogleMeetの出席レポート機能活用

もっとモニタリングコストを下げられないか探していたところ、GoogleMeetの出席レポート機能に辿り着きました。

Google Meet ヘルプ「出欠状況の確認とライブ配信に関するレポートの表示」
※ GoogleWorkspaceの特定のプランの契約が必要です

出席レポートの機能をオンにする手順は2つ

1. GoogleMeetのオプション設定で「主催者」もしくは「共同主催者」になる
  • カレンダーの予定を開く
  • GoogleMeetの⚙️マークから「ビデオ通話オプション」の設定へ
    • 株式会社LITALICO_-カレンダー-_予定の詳細.png
  • 「ゲスト」タブから、共同主催者を追加
    • 株式会社LITALICO_-カレンダー-_予定の詳細.png
2. 「主催者用ボタン」タブから、「出欠状況の確認」をオンにする
  • 株式会社LITALICO_-カレンダー-_予定の詳細.png

出席レポートで出力される項目は下記です。

名
姓
メールアドレス
参加した日時
退出した日時
所要時間

PE部事例共有会__高崎の会__-2024_12_04_12_58_JST-出席-_Google_スプレッドシート.png

新たな課題

この情報があれば、人の出入りのタイミングや、参加時間までわかるから、万事解決!と思ったのも束の間、次の課題が出てきました。

  • 「所要時間」の表記形式が扱いづらい
    • 1時間未満だと「分」形式ですが、1時間超えると「X時間Y分」形式になる
    • スプレッドシートの「経過時間」形式(H:mm:ss)だったらいいのに
  • 出席レポートから集計用のスプレッドシートに毎回データをコピペするのが面倒
    • 人 × 開催日ごとにいい感じに集計したい

集計シート作成

先に完成形をお見せするとこちら。

集計シート
事例共有会_出欠表_-_Google_スプレッドシート.png

人単位で、平均参加時間と累積参加回数を算出。
算出元のデータはI列より右側に、日付ごとの参加時間を人単位で列挙してあります。

作成過程は下記の通り。

1. 出席レポートに「参加時間」列を追加

「X時間Y分」形式だと非常に扱いづらいので、仕方なく手動で列追加です。
出席レポートの表の最右列に下記の関数で時間を算出します。

VALUE(F2-E2)*24*60

PE部事例共有会__高崎の会__-2024_12_04_12_58_JST-出席-_Google_スプレッドシート.png

2. 集計用シートでデータ参照する準備

あとは集計先のスプレッドシートで importrange すれば終わりですが、
会議の度に新しい出席レポート(スプシ)が生成されるので、出席レポートのURLを転記する場所を作っておきます。(GASを使えばここも自動化できそうですが、今回は見送り)

出席レポートのURL格納用シート
事例共有会_出欠表_-_Google_スプレッドシート.png

A列を開催日の日付、B列に日付に対応する出席レポートのURLを転記。

ポイントはC列で、 importrange で別スプレッドシートを参照するために、アクセス権限の許可を実行する必要があります。
許可の操作を自動化することはできないようなので、URLを転記すると同時に、アクセス権限を許可するポップアップが出るように関数を仕込みます。

MAP(B2:B,LAMBDA(v,if(v="",,IMPORTRANGE(v,"'参加者'!$G$1"))))

事例共有会_出欠表_-_Google_スプレッドシート.png

  • Googleから出力される出席レポートのデフォルトのシート名は「参加者」
  • 適当なセルを importrange できればOK
  • map 関数で繰り返し実行できるので、C1セルに関数を書くだけでOK
    • map 関数は arrayformula に似ていますが、importrange には適用できません

これで、URLを転記するだけでアクセス権確認が出るようになりました。手動で許可ボタンを押します。
事例共有会_出欠表_-_Google_スプレッドシート.png

3. 集計シートでデータを参照する

完成形はこちら

arrayformula(iferror(vlookup($C2:$C,IMPORTRANGE(VLOOKUP(I$1,'出欠シートURL一覧'!$A$2:$B,2,false),"'参加者'!$C$2:$G"),5,false),0))

事例共有会_出欠表_-_Google_スプレッドシート.png

  • VLOOKUP(I$1,'出欠シートURL一覧'!$A$2:$B,2,false)
    • 2で列挙した出席レポートのURLを格納しているシートから、該当日付(I1セル)の出席レポートのURLを探す
  • IMPORTRANGE(上記式,"'参加者'!$C$2:$G")
    • 取得した出席レポートのデータを取り込み
    • 取り込みたいのは、メールアドレス と 手動で追加した 参加時間
  • iferror(vlookup($C2:$C,上記式,5,false),0)
    • 社員を特定できるキーがメールアドレスしかないので、事前に社員のメールアドレスは列挙しておく(C 列)
    • C 列のメールアドレスをキーにして、該当する 参加時間 (今回は G 列を取得
    • 欠席者がいると参照先のデータがない(出席レポートに出てこない)ので、iferrorでエラーハンドリング(今回はゼロ分を返すようにした)
  • 列で数式を繰り返したいので arrayformula を使う
    • 前項の vlookup の第一引数が $C2:$C になっているのは arrayformula を使うため

おわりに

会議のモニタリングは継続的に行うものなので、初期コストをかけても運用コストを下げたかったのですが、会議終了後の作業は、ほぼURL転記のみになったので目的は果たせました。

また、vlookup 関数の引数に importrange をとることで、抽出したデータを一度シートに出力することなく参照できるので、ブラウザのメモリ消費も抑えられる 1 ようです。

  1. https://note.com/mir4545/n/nb42644e72ea9#29596002-3a4d-42b0-8ae1-88de54eef55e

14
1
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
14
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?