🥕「今日夕飯どうする?」で、お世話ログが消える問題
我が家は現在、
- うさぎ6匹(もこ、こじゅ、あきら、しゅうじ、ぼん)
- チンチラ1匹(みん)
を、私含め同居人3人でお世話しています。
毎日やることはかなり多くて、
- ご飯朝
- ご飯夕
- 水
- チモシー
- 散歩
- 掃除
などなど。
しかも同居人3人は生活リズムがバラバラで、家であまり顔を合わせません。
なので連絡はほぼLINE。
でも普通のグループLINEって、
- 「今日夕飯どうする?」
- 「牛乳買ってきて!」
- 「明日休みの人だれ?」
みたいな雑談も大量に流れるんですよね。
その結果……
🫠「え、散歩って誰かやった?」
🫠「チモシー交換したっけ?」
🫠「LINE遡るのめんどくさい」
が毎日起きる。
かといって、
「お世話専用グループLINE」
を作るのもなんか違う。
絶対見なくなる。
そこで、
🐰「じゃあBotに管理させればよくない?」
となり、
Make × LINE Bot × Google Sheets を使って、
「うさぎチンチラ世話管理Bot」
を作りました。
🐇 完成したもの
✅ LINEで完了報告できる
例えば、
#完了 散歩 こじゅ と送ると、
Google Sheetsにうさぎ散歩完了記録がうさぎ1匹分記録されます。
#完了 水 うさちん と送ると、
Google Sheetsに水完了報告がうさぎ5匹、チンチラ1匹分記録されます。
✅ 未完了一覧を確認できる
#確認 と送ると、今日まだ終わっていない項目だけを表示できます。
#確認 もこ とおくると、特定のうさぎの終わっていない項目だけを表示できます。
LINEを遡る必要がなくなりました。
かなり便利。
🛠 使用したもの
| ツール | 用途 |
|---|---|
| Make | 自動化処理 |
| LINE Messaging API | LINE Bot |
| Google Sheets | データ保存 |
| Webhooks | LINEメッセージ受信 |
| Router | 条件分岐 |
うさぎチンチラ7匹と、戦います
⚙️ Makeの構成
⚙️ シナリオの全体の流れ
LINEに送られたメッセージを Webhook で受け取り、内容によって処理を分岐しています。
まず最初に Router を使い、
#完了#確認
の2つのルートに分けています。
📨 ①#完了
#完了 の場合は、まず Text parser を使用して、
#完了 こじゅ 散歩 のような文章を、
- ペット名
- お世話項目
に分解しています。
その後さらに Router を使用し、
- ①-1個別ルート
- ①-2うさぎルート
- ①-3うさちんルート
に分岐し、
それぞれのルートで、分解した内容を Google Sheets の 記録シート に追加し、
「誰の何のお世話が完了したのか」を保存しています。
#完了 こじゅ 散歩 のような個別報告だけでなく、
#完了 うさぎ 水 のように、
- もこ
- こじゅ
- あきら
- しゅうじ
- ぼん
を含むうさぎ5匹全員をまとめて完了報告したり、
#完了 うさちん 掃除 のように、
- うさぎ6匹
- チンチラ1匹
を含めた全員分のお世話完了を、一気に記録できるようにしています。
①-1 個別ルート
①-2 うさぎルート
①-3 うさちんルート

うさぎ6匹、チンチラ1匹(もこ、こじゅ、あきら、しゅうじ、ぼん、みん)を用意
🔍 ②#確認
#確認 の場合は、まず Text parser を使って、
- 全体確認
- 個別確認
を判定しています。
例えば、
#確認 なら全体確認、
#確認 みん なら個別確認になるようにしています。
その後、Router で
②-1 全体
②-2 個別
のルートに分岐し、Google Sheets の Search Rows を使って未完了データを取得しています。
取得した複数行のデータは、Text aggregator を使って1つの文章にまとめています。
最終的に、
【散歩】
・うさぎ
・みん
のような形に整形し、LINEへ返信しています。
②-1 全体
②-2 個別
📄 Google Sheets構成
今回使ったシートは主に4つです。
① マスターシート
「誰に」「どのお世話項目が存在するのか」を一覧化するために、
必要なお世話項目をすべて組み合わせて登録しています。
② 記録シート
完了報告を保存する場所です。
Makeから自動追加しています。
③ 未完了シート
「今日まだ終わっていないもの」を抽出するシート。
A2セルの関数
記録シートに存在しない項目だけを抽出するために、
FILTER と MATCH などを組み合わせました。
=FILTER(
'マスター'!A2:C100,
ISNA(
MATCH(
TRIM('マスター'!A2:A100)&"|"&TRIM('マスター'!C2:C100),
FILTER(
TRIM('記録'!B2:B1000)&"|"&TRIM('記録'!C2:C1000),
TRIM('記録'!B2:B1000)<>""
),
0
)
)
)
④ 圧縮シート
LINE返信用にデータを整形するシートです。
未完了シートの内容を、「項目ごと」にまとめて表示するために、
UNIQUE、COUNTIF、TEXTJOIN などを組み合わせました。
A2セルの関数
=UNIQUE(FILTER('未完了'!C2:C,'未完了'!C2:C<>""))
B2セルの関数
=ARRAYFORMULA(IF(A2:A="","",COUNTIF('未完了'!C:C,A2:A)))
C2セルの関数
=ARRAYFORMULA(
IF(
A2:A="",
"",
IF(
(B2:B=5)*(COUNTIFS('未完了'!C:C,A2:A,'未完了'!B:B,"チンチラ")=0),
"・うさぎ",
IF(
(B2:B=6)*(COUNTIFS('未完了'!C:C,A2:A,'未完了'!B:B,"チンチラ")=1),
"・うさぎ"&CHAR(10)&"・みん",
BYROW(
A2:A,
LAMBDA(r,
TEXTJOIN(
CHAR(10),
TRUE,
FILTER(
"・"&'未完了'!A:A,
'未完了'!C:C=r
)
)
)
)
)
)
)
)
- うさぎ
- 個別名
- 項目ごとの表示
などを整理しています。
また、
- うさぎ全員が未完了なら「・うさぎ」
- うさぎ+チンチラ全員なら「・うさぎ・みん」
のように、“うさぎ圧縮” も実装しました。
😇 うさぎ6匹+チンチラ1匹、想像以上に管理が難しかった
今回いちばん苦労したのはここでした。
最初は単純に、
みたいに未完了一覧を表示していました。
でもこれ、
長い。
圧がすごい。
見づらい。
しかも、うさぎが6匹いるせいで、
同じ内容が大量に並ぶ。
なので途中から、
「全うさぎ未完了なら “うさぎ” に圧縮表示する」
機能を作りました。
さらに難しかったのが、
「一部だけ終わってる場合」
例えば、
- もこ → 完了
- こじゅ → 完了
- あきら → 未完了
みたいな場合。
この判定がかなり難しくて、
Make側でやるか、
Google Sheets側でやるか、
かなり悩みました。
最終的には、
Google Sheetsの関数で圧縮判定を作っています。
完全に、
🐰「うさぎ6匹+チンチラ1匹との戦い」
でした。
🐾 今後やりたいこと
💬 自然文でも反応できるようにしたい
例えば、
うさちんのチモシーやった!
みたいな文章でも認識したいです。
⏰ 最後に世話した時間を確認したい
「最後に水を替えた時間」などを確認できるようにしたいです。
🤝 お願い機能を作りたい
例えば、
うさちんチモシーよろしく
と送ると、
- 誰が依頼したか
- 誰が対応したか
を記録できるようにしたいです。
かなり実用的になりそう。
🗓 項目ごとに頻度を変えたい
今は「今日やったかどうか」で判定していますが、
例えば掃除は、
3日に1回
みたいに、
項目ごとにルールを変えられるようにしたいです。
実生活に合わせてもっと便利にしたい。
🧠 作ってみて思ったこと
今回、
「何を作るか」ではなく、
「自分が本当に困っていること」
から考えたことで、かなり実用的なBotになりました。
最初は、
「LINEの会話が流れて見失う」
という小さい不満だったのですが、
作ってみると、
- 家事分担
- 当番管理
- 仕事のタスク共有
などにも応用できそうだと感じました。
特に今回作った、
「複数人の進捗を圧縮表示する」
という仕組みはかなり便利だと思っています。
🐰 おわりに
最初は、
「Makeって何??」
状態だったのですが、
実際に手を動かして作ることで、
- LINE Bot
- Google Sheets
- Webhook
- 自動化
などをかなり学べました。
そして何より、
「毎日ほんとうに使うBot」
を作れたのが楽しかったです。
うさぎ6匹+チンチラ1匹との戦いは、
まだまだ続きます。🐰















