医療法人の集計業務では、予約、問い合わせ、広告、売上、提出物、院別実績などのデータが複数のCSVやスプレッドシートに分かれ、毎週・毎月の転記に時間がかかることがあります。GoogleスプレッドシートとGoogle Apps Script(GAS)を使うと、データの取り込み、整形、集計、通知、PDF出力などを自動化できます。
ただし、先にコードを書き始めると、元データの形式変更、担当者の退職、権限切れ、例外データによって止まりやすくなります。最初に決めるべきなのは、自動化の処理ではなく、入力・出力・判断・運用・エラー対応です。
最初に自動化しやすい業務
最初は、人の判断をほとんど必要とせず、同じルールで繰り返す作業を選びます。
- CSVを指定フォルダから取り込み、列名を揃える
- 院別・施術別・担当別に集計する
- 問い合わせフォームの内容を一覧へ追記する
- 新しい行が追加されたらGmailやGoogle Chatへ通知する
- 週次・月次レポート用の表を更新する
- 決まった形式でPDFを作成し、Driveへ保存する
- 期限超過や未対応ステータスを担当者へ通知する
例外が多く、毎回人が解釈する作業は、先に入力ルールやマスタを整えてから自動化します。
自動化前に決める5つの要件
| 要件 | 決める内容 |
|---|---|
| 入力 | どのファイル・フォーム・システムから、いつデータが入るか |
| 変換 | 列名、日付、金額、院名、担当者名をどう揃えるか |
| 出力 | 誰が、どの頻度で、何を見るための表・PDF・通知か |
| 例外 | 欠損、重複、形式変更、未知の院名・施術名をどう扱うか |
| 運用 | 管理者、実行アカウント、修正担当、停止時の連絡先 |
「毎月のレポートを自動化したい」だけでは要件として不足します。元データ、締め日、除外条件、更新時刻、出力先、確認者まで決めます。
スプレッドシートの基本構成
| シート | 役割 |
|---|---|
| raw_取込 | 元データを加工せず保存する |
| master | 院、施術、担当者、媒体などの表記を統一する |
| config | フォルダID、通知先、締め日、処理条件を管理する |
| processed | 整形・名寄せ後のデータを保存する |
| dashboard | 会議や確認で使う集計結果を表示する |
| log | 実行日時、処理件数、エラー内容、対象ファイルを記録する |
元データと集計結果を同じシートで上書きすると、再計算や検証が難しくなります。raw、加工後、表示用を分け、問題発生時に元データから再実行できる構成にします。
GASの処理は小さく分ける
一つの長い関数にすべてを入れず、役割ごとに分けます。
- 対象ファイルを取得する
- CSVやシートを読み込む
- 列名とデータ形式を検証する
- マスタで表記を揃える
- 集計・出力する
- ログを残す
- 成功またはエラーを通知する
処理単位を分けると、形式変更が起きた場所を特定しやすく、テストも行いやすくなります。
トリガー設計で注意すること
GASには、時刻、編集、フォーム送信などをきっかけに処理を動かすインストール型トリガーがあります。便利ですが、実行者と権限を明確にする必要があります。
- インストール型トリガーは、原則として作成者の権限で実行される
- 作成者のアカウント停止や権限変更で処理が止まる可能性がある
- 同じ処理を複数人がトリガー登録し、重複実行しないようにする
- 定時処理は実行時間が多少前後する前提で設計する
- フォーム送信・編集・時刻など、目的に合うトリガーを選ぶ
個人アカウントだけに依存させず、管理用アカウント、権限移管手順、トリガー一覧を記録します。
権限とファイルの置き場所
チームで継続して使うファイルは、共有ドライブや組織管理下の場所を検討します。共有ドライブ内のファイルは個人ではなくチームに属するため、担当者が退職しても残しやすくなります。
- 管理者、編集者、閲覧者を業務に必要な範囲で分ける
- 外部委託先には対象フォルダ・ファイルだけを共有する
- 通知先メールやChatスペースの管理者を複数にする
- スクリプト、スプレッドシート、参照フォルダの権限を一覧化する
- 退職・異動時に権限とトリガーを確認する手順を作る
エラーで止まらないための設計
- 想定する列名が存在するか処理前に確認する
- 日付・金額・IDが変換できない行を別シートへ出す
- 同じファイルや同じ行を二重処理しない識別子を持つ
- 処理件数と対象期間をログに残す
- エラー時に担当者へ通知し、再実行方法を記載する
- 途中失敗で元データや前回結果を消さない
- テスト用データと本番データを分ける
自動化は、正常時の処理よりも、形式変更や欠損が起きたときに状況を説明できるかが重要です。
患者情報・機密情報を扱うときの注意
患者個人を直接特定できる情報や、診療に関わる機微な情報を安易にスプレッドシートへ集約しないでください。業務目的に必要なデータだけを扱い、匿名化・ID化、共有範囲、保存期間、ダウンロード可否、外部共有の設定を確認します。
自動化のために実データが不要な場合は、サンプルデータや匿名化データで開発・テストします。個別の法令・契約・院内規程については、情報管理責任者や専門家の確認を前提にしてください。
構成例:問い合わせを一覧・通知へつなぐ
- WordPressフォームから必要項目を受け取る
- GASのWebアプリまたは連携処理でスプレッドシートへ記録する
- 受付日時、問い合わせ種別、ステータス、担当者を付与する
- GmailやGoogle Chatへ新規問い合わせを通知する
- 担当者がステータスと次回対応日を更新する
- 未対応・期限超過を定時トリガーで通知する
- 週次で件数・対応状況・流入元を集計する
メール通知だけに依存すると、迷惑メールや担当者の見落としで対応が止まる可能性があります。シートへの記録、通知、ステータス管理を分けて設計します。
GoogleスプレッドシートとGASが向かないケース
- データ量や処理頻度が大きく、実行時間やシート上限に近い
- 複雑な同時更新や厳密なトランザクションが必要
- システム間でリアルタイム性や高い可用性が求められる
- アクセス制御・監査・データ保管要件がスプレッドシートでは満たせない
- 業務ルールが決まっておらず、例外処理が毎回変わる
この場合は、データベース、BI、業務システム、クラウド基盤を含めて検討します。GASは万能な置き換えではなく、目的と規模に合う範囲で使います。
導入の進め方
- 棚卸し:毎週・毎月の転記、集計、通知作業を一覧化する
- 選定:判断を伴わず、頻度が高く、ミスが起きやすい作業を一つ選ぶ
- 要件定義:入力・変換・出力・例外・運用を決める
- 小規模テスト:匿名化したデータで一部期間を処理する
- 並行運用:手作業結果と自動化結果を照合する
- 本番化:権限、トリガー、ログ、通知、復旧手順を整える
- 定期確認:元データ形式、実行アカウント、エラー履歴を確認する
まとめ
医療法人の集計業務をGoogleスプレッドシートとGASで自動化する場合は、コードより先に入力・出力・例外・権限・運用を決めます。最初は、転記、集計、通知など判断を伴わない一つの業務から始め、ログと再実行方法を含めて設計します。
リットエイドのGoogle Workspace / GAS自動化支援では、業務棚卸し、スプレッドシート設計、GAS実装、Gmail・Google Chat通知、権限・運用ルールまで一体で整理しています。
集計・GAS自動化を相談する クリニックDX化チェックリストを見る
参考にした公式情報
- Google Apps Script 公式:Googleスプレッドシートの拡張
- Google Apps Script 公式:インストール型トリガー
- Google Workspace 公式:共有ドライブのアクセス権限
本記事は一般的な業務設計・自動化の情報です。患者情報や機密情報を扱う場合は、組織の規程、契約、法令、セキュリティ要件を個別に確認してください。