執筆:EugeneAmnis
在庫管理のForme使用例
今回はThrowawayKeyについて説明する予定でしたが、先に使用例を説明したいと思います。 Formeシリーズが活躍できる場面の一つに在庫管理が上げられます。ここでは簡単な在庫管理の使用例を説明します。
想定例
あるプログラミング会社では各プログラミング言語のリファレンス本を要望のあった社員に配布しており、その発注を各部署毎で行なっていたが、 今回から配布と発注を総務部で一元管理する事になった。
その管理方法にForme(フォーミー)を使用する。尚、条件として以下を満たすようにする。
- Excelを使用する。
- リファレンス本の管理はISBN番号を使用する。
- 在庫状況が分かるようにする。
- 発注書の印刷もする。
説明
主なステップは以下の通りです。
- Anroidアプリ Forme Proの設定(入出庫データ記録用)
- FormeCollector.xlsmでCSVデータベースシートの作成と編集
- 2.の入出庫データの参照マスターデータと在庫状況確認シートの作成
- 発注書用印刷シートの作成
STEP-1 Anroidアプリ Forme Proの設定(入出庫データ記録用)
FormeCollector.xlsmをリファレンス在庫管理と名前を変えて保存する。Forme Proにフォームを設定する為、 シート1に以下のような表を作成し、コピーする。
表の設定ルールはこちらから参照できます
Forme QRCoderにペーストしてQRコード化し、Forme Proで読み込む。
フォームに仮のデータを入力し、共有画面に移動する(紙飛行機のマーク)。
共有画面でファイル名横のIDをオンにする。
共有画面の詳細設定(歯車のマーク)でヘッダー行の追加をオフにする。
仮のCSVデータをリファレンス在庫管理.xlsmのあるPCを送る。(今回はBlueToothを使用。)尚、送付時には数量をマイナス入力にする。
STEP-2 FormeCollector.xlsmでCSVデータベースシートの作成と編集
リファレンス在庫管理.xlsmのFormeタブのCSVデータベースシートを追加 > defaultをクリックする。
STEP1で転送したCSVデータを選択する。次に、読み込んだ後のCSVデータのバックアップフォルダを選択する。 仮のCSVデータを読み込んだCSVデータベースシートが作成される。
CSVデータベースシートのテーブル(以降から入出庫記録テーブルと呼ぶ)を以下のように編集する。
No | ファイル名 | 入力時間 | 入力・送付先 | ISBN番号 | 数量 | 入力者 | 備考 | 図書名 | 発注先 | 状態 |
---|---|---|---|---|---|---|---|---|---|---|
1 |
送付作業を中断した場合の送付状態を確認する為に状態欄に入力規則>リストを選択し、送付準備中、送付済みを設定する。
備考欄まではCSVデータで入力される。原則としてCSVデータベースシートはテーブルに項目の追加、チェックボックスとボタンの位置変更、テーブルデザインの変更 は可能だがその他の編集は推奨しない。
次回からはFormeタブのファイルの監視をクリックする事でCSVデータがあれば、自動的に入力される。
STEP-3 2.の入出庫データの参照マスターデータと在庫状況確認シートの作成
新しくシートを追加し、テーブルを挿入して以下の様にする。(以後、テーブルをマスターデータと呼ぶ)
マスターデータ内に登録されているリファレンスで在庫警報値未満になったものはメッセージと条件付き書式で警告が出る様にする。
発注状態で発注済みを選択(入力規則でリストの設定をしておく)するとメッセージは消える様にする。尚、項目の警告は残す。
まずマスターデータにISBN番号、図書名、発注先、発注数を入力する。次に在庫欄に以下の数式を入力する。 入出庫記録テーブルはSTEP-2のテーブル名を入力する。
=SUMIF(入出庫記録テーブル[ISBN番号],マスターデータのISBN番号のセル番地,入出庫記録テーブル[数量])
マスターデータのISBN番号と入出庫データのISBN番号が一致するレコードの数量が合計される。総入庫数などの各項目もこの応用で入力する。(説明は省略)
メッセージを表示するセルに以下の数式を入力する。
=IF(AND(COUNTIF(マスターデータ[在庫],"<"在庫警報値のセル番地)>0,COUNTIF(マスターデータ[発注状態],"=発注済み")<>COUNTIF(マスターデータ[在庫],"<"在庫警報値のセル番地)),"問題ありません。","発注が必要です。")
在庫が在庫警報値以下のレコードがあり、かつその数と発注済みと入力されたレコード数が違う場合に発注が必要です。と表示される。
次にメッセージを表示するセルの行全体を選択して、条件付き書式>新しいルールを追加>数式を使用して・・・を選択し、以下の数式を入力する。
=メッセージを表示するセル番地="発注が必要です。"
マスターデータを選択し、上記の方法を応用して条件付き書式を設定する。詳しくはこちらで説明
STEP-2の入出庫記録テーブルの図書名、発注先の項目に以下の数式を入力し、項目を表示させる。
図書名=VLOOKUP([@ISBN番号],マスターデータ,2,FALSE)
発注先=VLOOKUP([@ISBN番号],マスターデータ,3,FALSE)
最後に入出庫記録テーブルの仮のレコードを削除する。
次回からは入出庫記録データが更新されると自動的に在庫状況も更新される。
STEP-4 発注書用印刷シートの作成
新しくシートを追加して、以下の様に編集し、印刷範囲を設定する。
各セルに以下の数式を入力する。
H5=today()
B9=formeShadowListValue("マスターデータのあるシート名",3,0)&"様、以下の発注をお願いします。"
B14=formeShadowListValue("マスターデータのあるシート名",1,ROW()-14)
B23までオートフィルを実施。
D14=formeShadowListValue("マスターデータのあるシート名",2,ROW()-14)
D23までオートフィルを実施。
G14=formeShadowListValue("マスターデータのあるシート名",9,ROW()-14)
G23までオートフィルを実施。
formeShadowListValue関数は指定されたシート名のテーブルの指定列番号(1 ~)と指定行番号(0 ~)の値を返す関数です。テーブルのオートフィルタと連動してます。 詳しくはこちらで説明
発注が必要であれば、マスターデータで発注先のみを表示させて発注書を印刷する。印刷後はマスターデータの状態を発注済みに変更する。 複数社ある場合はそれを複数回繰り返す。
入庫された場合は状態を発注済み以外にする。
初期設定
まずマスターデータに各リファレンス情報を入力し、Forme Proのフォームで現状の在庫を入庫として全て入力する。 そのデータをPCへ送り、初期データとして登録する。
運用方法
- 各部署から送付希望が提出または入庫が発生。
- Forme ProのフォームでISBN番号を読み取って各項目の入力を行う。一つの部署から複数種類の送付希望があった場合は複数回入力する。
- データをPCへ転送。(転送タイミングは任意)
- 送付作業を行う。(原則として、2 ~ 4まではワンサイクル作業とする。)
- リファレンス在庫管理.xlsmを起動し、ファイルの監視を実施する。(5 以降は毎回実施する必要はない。)
- 送付作業が未完で日を跨ぐ場合のみ、入出庫記録テーブルの状態欄に送付準備中を入力する。(送付が済んだ場合は送付済みに変更する。)
- マスターデータの在庫状況を確認し、発注が必要であれば発注先のみを表示して発注書を印刷。マスターデータの状態を発注済みにする。 (次回入庫があったら、発注済み以外にする。)
今回は説明のためにかなり簡単な在庫管理業務であり、警告メッセージの表示方法にも大きな問題を孕んでいますが、 一定の作業数がある場合はかなり効果が出てくるのではないでしょうか。
もちろん記録用紙を使っても出来ますが、 長期的な入出庫の傾向を見たり、レポートを提出する際などを鑑みるとこちらの方が効率的だと思います。
FormeCllector.xlsmはForme Pro内に同梱されています。もしよろしければご利用ください。(設定シート共有 メニュー内にあります。) また、有償のサポートも行なっています。FormeCollectorサービスを見る