1つのシートならなんとかなる
中小製造業で「Excelでちゃんと管理してくれ」と言われたとき、まず作るのはだいたい1つのシートにまとめた一覧表になる。
在庫一覧、受注一覧、発注一覧。品番、数量、日付を並べて、フィルターで絞り込んで、SUMで合計を出す。これは特別なスキルがなくてもできるし、実際これだけで回る業務も多い。
問題はここから先。
「2つのデータをつなげる」瞬間に壁が来る
業務が進むと、1つのシートでは収まらない場面が出てくる。
- 発注したものが届いたかどうか確認したい → 発注データと入荷データを突合する必要がある
- 在庫から出荷した分を引きたい → 在庫データと出荷データをつなげる必要がある
- 見積もりと実際の原価を比べたい → 見積データと実績データを並べる必要がある
どれも「2つのデータを共通のキー(品番や注文番号)でつなげて、比較する」という同じ構造の問題になる。
ここでVLOOKUPやSUMIFSを使ってみる。品番をキーにして別シートから数字を引っ張ってくる。「入庫合計 − 出庫合計 = 現在の在庫数」をSUMIFSで出す。ここまではなんとかなる。
しかし、実際の業務ではこれだけでは足りなくなる。
関数の守備範囲
SUMIFSで「品番Aの入庫合計は300、出庫合計は200、だから在庫は100」と計算できる。しかし業務で必要になるのは、その先の話になる。
- 発注と入荷の消し込み。 合計の差は出せるが「どの発注の、どの分が未入荷なのか」までは追えない
- 在庫の引当。 在庫が足りないとき、どの注文を優先するか判断して確保する。「計算」ではなく「状態を変える」作業になる
- 出荷済みの消し込み。 出荷データと突合してステータスを変える。関数で判定はできても、それを反映し続ける仕組みは作りにくい
「見る」と「処理する」の境界
ここまでの例に共通しているのは、関数でできるのは 「見る」 ことであって、 「処理する」 ことではないという点になる。
- 見る: 今の在庫数を計算する、合計と合計の差を出す、条件に合うデータを探す
- 処理する: 発注に対して入荷を紐づける、在庫を引き当てる、ステータスを変更する
1つのシートで完結する業務は「見る」だけで回る。品番ごとの合計を出す、一覧を並べ替える、条件に合うものを抽出する。これは全部「見る」の範囲になる。
2つのデータをつなげる業務には「処理する」が入ってくる。AのデータとBのデータを照合して、結果に応じて状態を変える。この「状態を変える」部分が、関数にはできない。関数は与えられたデータから答えを計算するだけで、データそのものを書き換えることはしない。
1シートで止まるのは、能力の問題ではなく、関数という道具の限界になる。
この壁を超えるには
「処理する」をExcelの中でやろうとすると、VBA(マクロ)が必要になる。VBAなら、データを読んで、条件を判断して、別のシートに書き込む、という一連の処理を自動化できる。
以前の記事で、Excelでも業務の仕組みは作れると書いた。あの記事で言う「シートの役割を分離して、VBAで制御する」というやり方は、まさにこの「処理する」壁を超えるための方法になる。
ただし、VBAを書く前にやるべきことがある。データの持ち方を整えることになる。
発注データと入荷データを突合するには、両方に共通のキー(発注番号など)が入っている必要がある。在庫の入出庫を追いかけるには、入庫と出庫が同じ品番コードで記録されている必要がある。VBAで処理を書く以前に、つなげるためのデータの形が揃っていなければ、何も始まらない。
以前の記事で「Excelのデータはいつでもデータベースに移せる形で持つ」と書いた。あの「データの文法」の話は、実はこの壁を超えるための準備でもある。1行1レコード、列は固定、共通キーを持つ。この形になっていれば、VBAでもデータベースでも、次のステップに進める。
まず「何と何をつなげたいか」を整理する
VBAが書けなくても、今すぐできることがある。
「何と何をつなげたいか」を書き出すこと。
- 発注データと入荷データをつなげて、未入荷を把握したい
- 見積もりと実績原価をつなげて、ズレを見たい
- 受注データと出荷データをつなげて、未出荷を管理したい
つなげたいデータの組み合わせと、それぞれの共通キー(発注番号、見積番号、受注番号)を整理する。これだけで、今の業務のどこに「処理する」壁があるかが明確になる。
その上で、VBAを自分で覚えるか、できる人に相談するか、業者に頼むか。選択肢はいくつかあるが、何をつなげたいかが整理できていれば、どの選択肢を取っても話が早い。 逆に、ここが整理できていないまま「なんとかしてほしい」と頼むと、業者に頼んでもうまくいかない。以前の記事で「自分たちで理解できていないことは、正しく外注もできない」と書いた通りになる。
→ 中小製造業の内製DXと外注の線引き ──「自社固有」か「汎用」かで決める
このシリーズの他の記事: