施設のショートステイの部屋割りをエクセルを使って自動化してみた

介護DX

施設のショートステイの部屋割りをエクセルを使って自動化してみた

「うちのショートステイ受付簿、AIに自動化できませんかね?」

先日、事務職の同僚からそう相談を受けました。話を聞くと、毎月手書きで管理している部屋割り表を見せながら「これ、名前と期間を入れたら自動で空いてる部屋に入れてくれたら助かるんだけど」とのこと。よくある話に聞こえるかもしれませんが、実際に自分でClaudeと一緒にこの手のExcel自動化に取り組んでみると、一番のハードルは技術力ではありませんでした。現場のExcelには、誰も文書化していないルールが山ほど隠れているのです。

今回は、施設のショートステイ部屋割り(ショートステイ受付簿)を実際にClaudeと組んだ過程を、現場目線で振り返ってみます。

最初の一言では、AIは絶対に現場ルールを言い当てられない

ショートステイ受付簿は、A棟6部屋・B棟6部屋の計12部屋の空き状況を管理するファイルです。最初にClaudeへ依頼したときの自分の要望は、正直かなり粗いものでした。「名前・開始日・終了日を入れたら、空いてる部屋に自動で振り分けて」くらいの感覚です。

ところが実際にファイルを見せながら会話を進めていくと、想定していなかった仕様が次々と出てきました。

  • 部屋番号1つにつき3行分セルが使われているのは、手書き時代に罫線で在籍期間を見やすくするための余白でした
  • 「空いてる部屋に若い番号順」では対応できず、同室希望(ペアID)がある利用者は同じ建物内の隣接部屋に配置する必要があります
  • 一番効いたのは監査対応の話で、退所日も「占有日」として扱わないと監査で引っかかるとのことでした(1日1ベッド1人ルール、同日ターンオーバー不可)

この「退所日も占有日」というルールは、こちらから説明しなければAIは一生気づけません。見落としたまま自動配置ロジックを組んでいたら、実運用に乗せたとたん監査指摘を受けるアプリが出来上がっていたと思うと、今更ながらヒヤッとします。

配置は「一括最適化」より「一人ずつ確定」の方が現場に馴染む

当初は全予約者を一度に最適配置するアルゴリズムを考えていましたが、最終的には次の順番に落ち着きました。

  1. 開始日が早い人から順に処理する
  2. 前回配置された部屋があれば優先する(部屋の安定性)
  3. ペア希望があれば隣接部屋を優先する
  4. 退所直後の部屋を優先するベストフィットで埋める

複雑な最適化より、現場の職員が見てすぐ納得できるロジックの方が実用性は高いと判断しました。AIに任せる部分は「計算」であって、「現場が受け入れられるかどうか」の判断は結局こちらがやるしかない、というのが実感です。

見た目の作り込みも地味に時間がかかりました。名前は結合セルではなくセル中央に直接書き込みます(編集しやすさのため)。枠線は一番太い外枠のみ。土日の網掛けは、予約データを書き込んだ後に色を重ねないと予約の上に色が乗ってしまうという描画順序の問題があり、日付ヘッダーの区切り線と土日の色付けを意図的に分離することになりました。この手の見た目のバグは言葉で説明されてもピンとこなくて、スクリーンショットを何往復もやり取りしてようやく直りました。

月をまたぐ予約への対応も細かかったです。実際の日付でクリップして表示し、開いている側の枠線を消すことで「まだ続いている」感を出しています。日次ログ用の別シートも、入所者・退所者を日付ごとに分けてA棟→B棟の順に並び替える仕様に落ち着きました。

月次運用に乗せてから出てきた問題

作って終わりではなく、毎月使う運用に乗せてからも問題は出続けました。

まず、予約を削除しても罫線だけが残るという現象です。予約の表示に合わせて引いた枠線が、値をクリアしただけでは消えずに残ってしまう。改善として、クリア処理を「値だけ削除」から「予約表示に伴って生成された書式もまとめて初期化する」方向へ拡張しました。

名前の折り返し表示でレイアウトが崩れる問題もありました。長い名前がセル内で折り返されると、行の高さが変わって表全体の見た目が崩れてしまいます。それから、前月から継続する予約・翌月へまたがる予約の月初・月末処理も、実際に月を越えて運用してみて初めて動作確認が必要になった部分です。

この手の問題は、開発時のテストではまず出てきません。「1か月使ってみて初めて分かる不具合」があるという前提で、運用開始後もしばらくは手直しの時間を見込んでおくのが現実的だと思います。

現場のExcel自動化で、結局効いてくるもの

ここまでの作業を振り返って思うのは、出来上がりの精度を左右するのは指示の上手さより「現場の暗黙ルールを自分がどれだけ先に言語化できているか」だということです。「いい感じに自動化して」とだけ頼んでも、AIは一般的なロジックしか返せません。監査ルールも、罫線の意味も、誰も書いていない優先順位も、こちらが言葉にして渡した分だけ、出来上がるものの質が変わってきます。

18年間現場にいた人間としては、この言語化のプロセス自体に案外価値があると感じています。AIに自動化を頼む作業は単なる効率化というより、自分たちの仕事のやり方を初めて棚卸しする機会でもあるのだと思います。

開発中、一番こたえた事故

最後に、実際に開発中に起きたトラブルも書いておきます。

一番こたえたのは、VBAのModule1のコードを部分的に差し替えたときに、古いコードが残ったまま新旧が混在してバグるという現象でした。差分だけ渡して「ここだけ直して」とやっていたら、見えないところに前のコードが残っていて、動きがおかしいのに原因が全然分からない時間が続きました。以降は「Module1を差し替えるときは必ずCtrl+A→Delete後に全部貼り直す」を自分ルールにしています。地味な話ですが、AIと一緒にVBAを触る人には割と刺さるのではないかと思います。

もう一つ、Const宣言をモジュール途中に書くとコンパイルエラーになるというVBA特有の制約にも何度か引っかかりました。エラーメッセージだけを見ても原因が分かりづらく、実際に手を動かして試行錯誤しないと出てこない類のものでした。

もし今、現場のExcelをAIで自動化しようとして「思ったのと違うものが出てきた」と感じている方がいたら、一度AIへの依頼を止めて、そのExcelの罫線や余白の意味を紙にでも書き出してみてください。たぶんそこに、AIにはまだ見えていない現場の知恵が眠っています。


AI介護士kaze運営者。介護福祉士・ケアマネジャー・社会福祉士の資格を持ち、介護現場歴18年。現場のリアルな課題感を起点に、AI×介護の実用性を探求・発信しています。

コメント

タイトルとURLをコピーしました