ポスティングの仕事では、取引先から「このエリアにこのチラシを何部」という依頼書がメールで届きます。ほとんどがExcelの添付ファイルです。
これを毎回開いて、案件名・部数・単価・配布期間を管理表に手で打ち直していました。週に40〜50件。打ち間違いも起きますし、何より誰かが必ずパソコンの前にいなければ仕事が進みません。
この転記作業を、まるごと無くしました。
何が面倒だったのか
作業自体は単純です。メールを開いて、Excelを開いて、必要な項目を見つけて、管理表に打つ。1件あたり3分もかかりません。
問題は「1件3分」ではなく、次の3つでした。
- 取引先ごとにExcelの書式が全然違う。同じ「部数」でも、列の位置も名前もバラバラです
- いつ届くか分からない。夕方に届いた依頼を翌朝まで気づかないと、配布の段取りが1日遅れます
- 打ち間違いに気づけない。単価を1桁間違えても、請求の段階まで誰も気づきません
つまり、時間そのものより「人が張り付いていないと止まる」ことが問題でした。
どうやったか
Google Apps Script(GAS)を使いました。Gmailと Google スプレッドシートを操作できる仕組みで、Googleのサーバー上で動くため、自分のパソコンを開いていなくても勝手に動きます。
大まかな流れはこうです。
- 専用のメールアドレスを1つ用意して、依頼書はそこに転送してもらう
- 15分おきに、そのアドレスの未読メールを確認する
- Excelの添付ファイルがあれば、中身を読む
- 取引先ごとの読み取りルールに従って、案件名・部数・単価・日程を取り出す
- データベースに登録して、メールを既読にする
肝心なのは4番です。ここを取引先ごとに分けたのが、うまくいった理由でした。
「共通の読み取り方」を作ろうとして失敗した
最初は、どんなExcelでも読める汎用的な仕組みを作ろうとしました。「部数」という文字が入っているセルを探して、その隣の数字を取る、というやり方です。
これは早々に破綻しました。
- ある取引先は「部数」、別の取引先は「配布数」、また別の取引先は「数量」
- 単価が
@◯と書かれていたり@◯.◯と全角だったり◯.◯円だったり - 見出し行が1行目のファイルもあれば、5行目から始まるファイルもある
例外が出るたびに条件分岐が増えて、どこを直すと何が壊れるのか分からない状態になりました。
そこで方針を変えて、取引先ごとに読み取り方を1つずつ書くことにしました。コードは長くなりますが、A社の読み取りを直してもB社が壊れません。取引先が増えたら1つ足すだけです。
結果的に、こちらのほうが圧倒的に楽でした。汎用的に作ろうとするより、素直に分けたほうがいい場面があります。
つまずいたところ
実行間隔は「短ければいい」わけではない
最初は15分おきに設定しました。途中で「そんなに急ぐ話でもないか」と12時間おき(朝夕2回)に変えたのですが、これは失敗でした。
夕方に届いた依頼が翌朝まで処理されないと、その日のうちに配布の段取りを組めません。結局15分おきに戻しました。待たされる側の都合で間隔を決めるべきでした。
添付ファイルの読み取りには別の許可がいる
GASからExcelを読むには、Google ドライブ側の機能を有効にする必要があります。ここでしばらく詰まりました。エラーメッセージが「権限がありません」としか出ないので、何の権限か分かるまで時間がかかります。
同じメールを二度処理してしまう
一度処理したメールを既読にする、という作りにしていたのですが、処理の途中でエラーが起きると既読にならないまま残ります。次の実行でまた同じメールを処理して、同じ案件が2件登録される、ということが起きました。
いまは登録前に「同じ案件名・同じ日程のものが既にないか」を確認するようにしています。
やってみて分かったこと
転記作業がなくなったことより、「人が見ていなくても進む」ようになったことのほうが大きかったです。
以前は、担当者が休むとその日の依頼が止まっていました。いまは夜中に届いた依頼も朝には登録されています。作業時間の削減だけを見ていると、この効果は見落とします。
もうひとつ。自動化する前に、その作業を本当に人がやる必要があるのかを疑うのが先だと感じました。今回の場合、そもそも「メールで依頼書を受け取る」こと自体を変えられるなら、そのほうが根本的です。ただ取引先のやり方は変えられないので、こちら側で吸収することにしました。
同じような転記作業でお困りでしたら、AI導入支援・業務効率化のページもご覧ください。まず1業務だけ自動化して効果を確かめる、という進め方をしています。