調剤薬局の在庫管理のうち、特に不動在庫や期限切迫在庫の管理は大変です。
GAS剤師
手作業でチェックしていると、見落としやミスも出やすくて、気づいたら無駄なコストがかかってしまうことも。
今回は、Google Apps Script(GAS)を使って、そんな悩みを解決する自動管理システムの作り方をご紹介します。
複数店舗の在庫データを自動でチェックし、不動在庫や期限切迫在庫をすぐに把握できるので、管理がとても楽になります。
GAS剤師
プログラミングが初めての方でもわかりやすいステップで解説していくので、業務の効率化に興味がある方は、ぜひ読んでみてください。
不動在庫・期限切迫在庫とは?
在庫管理において、特に注意が必要なのが「不動在庫」と「期限切迫在庫」です。
これらの在庫を効率的に管理することは、調剤薬局の在庫管理を効率化することができます。
在庫管理の課題
在庫管理には以下のような課題があります。
これらの課題を解決するために、Google Apps Script(GAS)を使った自動化システムを導入することが有効です。
自動化のメリットと導入のコツ
自動化システムを導入することで得られるメリットと、その導入のコツをまとめます。
具体的な方法
在庫管理を効率化するために、以下の手順でGASを使った自動通知システムを作成します。
GAS剤師
初めての方でもわかりやすいように、各ステップを順番に整理しました。
全体の流れ
- Google スプレッドシートの準備
- 各店舗の在庫データをスプレッドシートにまとめる。
- 不動在庫リストと期限切迫在庫リストを別シートに作成する。
- GASの設定
- 「拡張機能」メニューから「Apps Script」を選択し、スクリプトエディタを開く。
- 在庫データとリストを比較するコードを記述し、スクリプトを作成する。
- スクリプトの作成と動作確認
- 在庫データを読み込み、不動在庫や期限切迫在庫をチェックするスクリプトを作成する。
- 作成したスクリプトを手動で実行し、動作を確認する。
- 自動通知システムの設定
- トリガーを設定し、スクリプトを定期的に自動実行させる。
- 通知メールの受信設定を行い、必要な情報を確実に受け取れるようにする。
- テストと微調整
- テストを実施し、スクリプトの動作や通知内容を確認する。
- 必要に応じて、スクリプトや設定を修正・改善する。
各手順の詳しい解説
スプレッドシートの準備
- 在庫データを「Inventory」というシートにまとめます。商品名や在庫数など、必要な情報を入力します。
- 別のシートに「NonMoving」(不動在庫)、「NearExpiry」(期限切迫在庫)という名前でリストを作成し、該当する商品の情報を記載します
GASの設定
- Google スプレッドシートを開き、「拡張機能」メニューから「Apps Script」を選択して、スクリプトエディタを開きます。
- 新しいスクリプトファイルを作成し、以下のコードを入力します
function compareInventory() {
// スプレッドシートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet();
// 各シートを取得
var inventorySheet = sheet.getSheetByName('Inventory');
var nonMovingSheet = sheet.getSheetByName('NonMoving');
var nearExpirySheet = sheet.getSheetByName('NearExpiry');
// 在庫データを取得
var inventoryData = inventorySheet.getDataRange().getValues();
// 不動在庫リストを取得
var nonMovingData = nonMovingSheet.getDataRange().getValues();
// 期限切迫在庫リストを取得
var nearExpiryData = nearExpirySheet.getDataRange().getValues();
// 比較結果を格納する配列
var result = [];
// 在庫データの各行をループ処理
for (var i = 1; i < inventoryData.length; i++) { // インデックス1から始めるのはヘッダーをスキップするため
var item = inventoryData[i][0]; // 商品名などを取得
// 不動在庫リストに該当するか確認
var isNonMoving = nonMovingData.some(function(row) {
return row[0] === item;
});
// 期限切迫在庫リストに該当するか確認
var isNearExpiry = nearExpiryData.some(function(row) {
return row[0] === item;
});
// 不動在庫または期限切迫在庫の場合、結果に追加
if (isNonMoving || isNearExpiry) {
result.push(item);
}
}
// 結果をメールで通知
if (result.length > 0) {
MailApp.sendEmail('your-email@example.com', '在庫警告', '以下の在庫について確認が必要です: ' + result.join(', '));
}
}
スクリプトの作成と動作確認
- コードを入力したら、「保存」ボタンをクリックしてスクリプトを保存します。
- 「▶(実行)」ボタンを押してスクリプトを手動で実行し、エラーがないか確認します。
自動通知システムの設定
- スクリプトエディタの「時計アイコン」から「トリガー」を選択し、compareInventory関数を毎日や週ごとに実行するように設定します。
- 「トリガーを追加」ボタンを押し、「イベントの種類」を「時間主導型」に設定し、実行頻度を選択します。
テストと微調整
- テストメールが正しく送信されるか確認します。受信できていない場合や通知内容に問題がある場合は、スクリプトやメールアドレス設定を確認します。
- 必要に応じて、コードや設定を修正し、最終的なシステムを完成させます。
以上で、調剤薬局の在庫管理を効率化するGASを使った不動在庫・期限切迫在庫管理システムの設定手順が完了です。簡単な操作で業務の効率化を図りましょう!
まとめ
GASを活用した不動在庫・期限切迫在庫管理の自動化システムを導入することで、調剤薬局の在庫管理が大幅に効率化されます。
手動の作業を減らし、正確かつ迅速な在庫管理を実現するために、ぜひこのシステムを導入してみてください。