Googleスプレッドシートを用いた注文ノートの電子化とSlackとの連携

「私のちょっとした実験ハック」というお題をいただきましたが、私自身が実験ベンチから離れてしばらく時間が経ってしまっており、また、当研究室で使ってきた実験手法についてはいくつかメソッド論文も出版しているため、今回は、以前こちらでも少し書いたことがある、研究室の注文ノートの電子化についてご紹介してみたいと思います。

私達の研究室でも、8年ほど前まではずっと紙の注文ノートを使っていましたが、

  • 過去の注文履歴をたどる(探す)のが大変
  • 毎回書くのが面倒
  • 何をどの業者さんから買うべきかが分かりにくい
  • 納入価や割引率などを把握できない

と言うような問題がありました。そこで、Googleスプレッドシートを使って、注文表を電子化することにしました。電子注文表のメリットとしては、

  • (発注履歴があれば)簡単に再注文できる
  • 過去の注文履歴や納入価などを簡単に検索できる
  • PCがあればどこからでも発注可能
  • 発注・納品の有無、納品予定日もオンラインで確認可能
  • 発注情報の共有化
  • 自動バックアップ

などが挙げられます。

当研究室の電子注文表は、大きく分けて左側にメーカー・品番・品名などの発注情報を各研究室メンバーが入力し、そして右側に受注日・納品日を業者の方が入力する形になっています。

スプレッドシートですので、元々備わっている検索機能を使えば、過去の注文を簡単に検索できますし、Google Apps Script (GAS)を使って、簡単に再注文ができる(過去の注文の行を選択した上で、メニューから「再注文」を実行すると、注文内容が新しい行にコピーされる)しくみになっています。また、チューブ・プレート・手袋・培地・PCR試薬など、発注頻度の高い消耗品は、注文表の最上部に業者さんごとにリスト化されているため、すぐに再注文が可能です。さらに、業者さんごとにセルが自動的に色分けされ、納品が完了したものはその色が消えるように「条件付き書式」を設定することで、何がどの業者に発注されたのか、そして納品の状況はどうなっているのかを一覧して確認できるようになっています。

注文表のスプレッドシートは、実際には「内部用」と「外部用」の2つが存在しており、発注情報は内部用注文表から、受注日・納品日などは外部用注文表からのみ入力が可能となるように権限が設定されています。そして、それらの内容をIMPORTRANGEという関数を用いて相互に同期させています。基本的に、内部用注文表は研究室メンバーが各自のコンピュータから、そして外部用注文表は研究室内に設置した業者さん専用のコンピュータからアクセス可能ですが、パンデミック以降、それぞれの業者さんのオフィスからも遠隔で閲覧・入力ができるようにしました。また、内部用注文表には、納入価格や割引率、さらに、割引率をもとにどのメーカーのものはどの業者さんから買うのが良いのか、主要な試薬類がどこにストックされているのか、などの情報がまとめられていますが、外部用注文表からはこれらの情報を見ることができません。このようにして、研究室メンバーと業者さんの双方が、必要な情報を安全にリアルタイムで共有しながら閲覧・入力を行い、発注・受注をスムーズに行えるしくみになっています。

さらに、GASを使うことによって、以下の様に注文表スプレッドシートとSlackを相互に連携させています。

  • 注文表スプレッドシートに入力された発注内容を、その都度Slackの #order チャンネルに自動通知する
  • Slackのスラッシュコマンド(/order)を使って、Slack上のフォームから発注内容を入力し、それを注文表スプレッドシートに反映させる
  • Slackのスラッシュコマンド(/supplysearch)を使って、Slack上から注文表スプレッドシート内にある発注頻度の高い消耗品を検索し、見つかったものの中から別のスラッシュコマンド(/supply)で再発注を行う(注文表スプレッドシートに反映させる)
  • 月初めに、前月の注文一覧(納入価格やその合計を含む)をPDF化し、Slackの #members チャンネルに自動通知する
  • 一定間隔で注文スプレッドシートのバックアップを取る

これにより、コンピュータからでもスマホ等からでも、(再)注文の作業や発注情報の確認が簡単にできるようになっています。

また、注文表だけではなく、ラボセミナーの予定表や、掃除当番表、ラボのイベント、RIの使用量記録などもSlackと連携させ、種々の情報ができるだけSlack上に集約されるようにしています。

以上のようなしくみが他の研究室でも使えるように、汎用性を持たせた上でどこかで公開できれば良いのですが、古い旅館の建て増しのようにアドホックかつハードコーディングで構築を繰り返してきてしまっているのと、使っているGASのコードやSlackとの連携のしくみがとても古く、すでにobsoleteになってしまっている部分が多いという状況です。また、所詮私個人の趣味の範疇でやってきたので、どうすれば汎用的なパッケージにできるのかは現時点で見当が付かない、というのが正直なところです。ですが、上でご紹介したような考え方は、注文ノートの電子化やSlackの活用などに役立つと思いますので、もし汎用的なものを作ってみたいという方がいらっしゃればドンドン進めていただきたいですし、ご連絡いただければ全力で協力させていただきます。

謝辞: 当研究室の泉奈津子さんが令和5年度定量生命科学研究所第1回技術職員セミナーのために作られた図を活用させていただきました。この場を借りて感謝いたします。