kintoneの標準機能(計算フィールド・ルックアップ・サブテーブル)で、原価計算はある程度組めます。材料や工程をサブテーブルに並べてSUM関数で合計する、部品の単価を別アプリからルックアップで引く、という1段階の積み上げなら標準機能で足ります。詰まるのは、部品がさらに部品を持つ多段の部品表(BOM)を、何段遡っても自動で積み上げたい場合です。
材料費・工程費を1段階で集計するなら、標準機能で足りる
サブテーブルに部品や工程の行を並べ、各行の単価×数量を計算フィールドで小計にし、テーブルの外でSUM(小計)を使えば、1レコード分の原価合計は作れます。部品の単価は、部品マスターのアプリにルックアップを設定すればキーで引いてコピーできます。材料と外注費だけ、工程も1種類だけという単純な製品なら、これで完成します。


部品がさらに部品を持つ多段のBOMでは、標準機能だけでは積み上げられない
子部品がさらに社内製で、その子部品にも構成(BOM)がある、という何段もの階層を自動で遡って計算する仕組みは標準機能にはありません。
理由は2つです。1つは、ルックアップは参照元のレコードが変わっても自動更新されないこと。公式ヘルプにも「ルックアップで取得済みの値はそのまま維持されます。自動的に最新の値にはなりません」とあり、再度「取得」を押すまで古い値のままです。もう1つは、ルックアップの「コピー元のフィールド」にテーブル内のフィールドを指定できない制限です。
末端の部品の原価を直しても、上の親・さらに上の孫には伝わりません。段ごとに手でルックアップを再取得し、下から上へ順番に回す必要があります。順番を間違えると古い原価が積み上がったまま気づきません。構成が自分自身に戻る循環(A→B→Cの先がAに戻る、など)を検出する仕組みもありません。2段までで原価もあまり変わらないなら手動更新で回りますが、3段以上・変更が頻繁だと詰まります。
原価を段階で見ていくと、数字だけでは見えない無駄が出てくる
以前、ある町工場の立て直しで、毎日の手配記録を分解して見ていったことがあります。社内でできるはずの加工が、当たり前のように外注に出ていました。社内の人件費は仕事があってもなくても払っているため、外に出すとその分だけ二重にかかります。手配の記録を1件ずつ見ていくまで、この二重払いは合計の数字に埋もれていました。 詳細: https://note.com/plugbits/n/nffcd9c3e3f56
合計の数字だけ見ていると、どの段でコストが膨らんでいるかは見えません。段階ごとに積み上げて初めて、無駄のある場所が分かります。
標準で足りるかどうかの分かれ目
部品表が1〜2段で変更の頻度も低いなら、計算フィールドとルックアップとサブテーブルの組み合わせで運用できます。部品がさらに部品を持ち、原価がよく変わる、何段も遡って自動で積み上げたいという場合は、標準機能の外に出る話になります。まずは今の部品表が何段あるか、単価の変わる頻度を数えてみてください。


