ブログ

kintoneで予実集計を自動化 第1部:収支計画マスターから収支計画明細を作る

この連載では、収支計画から月次損益を作る流れを、データフロープラグインの配布サンプルを使って紹介します。

第1部では、月次損益の対象月と収支計画マスターを組み合わせ、その月の収支計画明細を作ります。異なるアプリの全レコードを組み合わせるための「結合キー」と、作成した明細を1件ずつ識別する「計画明細キー」が設定のポイントです。

目次

サンプルの準備

配布ファイルには、スペーステンプレート、収支計画マスターと月次損益の初期データ、データフロー設定が含まれています。READMEの順に読み込むと、同じ構成を試せます。

「月次損益アプリ」のスペーステンプレートをダウンロード

フィールド定義(使用項目)

アプリ 主なフィールド 役割
月次損益 対象月、対象開始日、対象終了日 作成する月を指定する
収支計画マスター 予算計画コード、計画名、損益区分、科目名、初回発生月、周期(月)、終了月、1回あたり計画額、状態 繰り返し使う計画を管理する
収支計画明細 計画明細キー、対象月、計画コード、計画名、損益区分、科目名、計画額、調整額、最終計画額 月ごとの計画を保持する

処理の流れ

 

①〜③の番号と説明を入れた「収支計画明細を生成」フロー全体
①〜③の番号と説明を入れた「収支計画明細を生成」フロー全体

 

  1. 月次損益と収支計画マスターへ、同じ固定値を持つ結合キーを追加します。
  2. 結合キーを使い、対象月1件と収支計画マスターの全件を結合します。
  3. 対象月に該当する計画を抽出し、計画明細キーを付けて収支計画明細へ保存します。

1.固定キーを追加して全件を結合する

月次損益と収支計画マスターには、そのままでは共通する結合キーがありません。そこで、両方のデータへ一時的な「結合キー」を追加し、同じ固定値を設定します。

損益キー追加

まず、月次損益の後ろにある「損益キー追加」を開き、次のように設定します。

フィールド名 結合キー
フィールドタイプ 文字列(1行)
値 1
「損益キー追加」の設定画面。結合キー、文字列(1行)、固定値1が読める状態
「損益キー追加」の設定画面。結合キー、文字列(1行)、固定値1が読める状態

計画キー追加

次に、収支計画マスターの後ろにある「計画キー追加」にも、同じ内容を設定します。フィールド名、値のすべてをそろえることが重要です。

「計画キー追加」の設定画面。結合キー、文字列(1行)、固定値1が読める状態
「計画キー追加」の設定画面。結合キー、文字列(1行)、固定値1が読める状態

計画と対象月結合

「計画と対象月結合」では、左右の結合キーに「結合キー」を指定し、結合方法に「内部結合」を選びます。すべてのレコードが同じ値「1」を持つため、月次損益の対象月1件に対して、収支計画マスターの全件が結合されます。

「計画と対象月結合」の設定画面。内部結合と左右の結合キーが読める状態
「計画と対象月結合」の設定画面。内部結合と左右の結合キーが読める状態

2.対象月に該当する計画を抽出する

結合後のデータには、収支計画マスターの各行へ「対象月」「対象開始日」「対象終了日」が付いています。「対象月計画抽出」では、初回発生月、終了月、発生区分、周期(月)を確認し、対象月に発生する計画だけを残します。

たとえば、毎月発生する計画は対象月ごとに残り、単発の計画は初回発生月と対象月が一致した場合だけ残ります。

「対象月計画抽出」では、次の数式を使って、対象月に実際に発生する計画だけを残します。


AND(
  VALUE(first_month) <= VALUE(target_month),
  IF(
    end_month = "",
    TRUE(),
    VALUE(end_month) >= VALUE(target_month)
  ),
  OR(
    AND(
      occurrence_type = "単発",
      first_month = target_month
    ),
    AND(
      occurrence_type = "定期",
      MOD(
        (VALUE(LEFT(target_month, 4)) * 12 + VALUE(RIGHT(target_month, 2))) -
        (VALUE(LEFT(first_month, 4)) * 12 + VALUE(RIGHT(first_month, 2))),
        IF(interval_months = "", 1, interval_months)
      ) = 0
    )
  )
)

この式では、初回発生月と終了月の範囲を確認したうえで、「単発」と「定期」を分けて判定します。単発の計画は初回発生月と対象月が一致した場合だけ残し、定期の計画は初回発生月からの経過月数が周期(月)で割り切れる場合だけ残します。周期が空欄の場合は、毎月発生する計画として扱います。

たとえば、サンプルデータの水道光熱費は、初回発生月が2026年4月、周期が2カ月です。そのため、4月、6月、8月、10月、12月……が対象となり、5月、7月、9月、11月……は除外されます。

対象月 初回発生月からの経過月数 抽出結果
2026年4月 0カ月 対象
2026年5月 1カ月 対象外
2026年6月 2カ月 対象
2026年7月 3カ月 対象外
2026年8月 4カ月 対象

ポイント:偶数月を直接判定しているのではなく、初回発生月を起点に周期を計算しています。初回発生月が5月なら、5月、7月、9月……が対象になります。

3.計画明細キーを作成する

「計画明細キー作成」では、「対象月」と「計画コード」をハイフンで連結し、収支計画明細を識別するキーを作ります。

変換するフィールド 新規フィールドを作成
新規フィールド名 計画明細キー
変換方法 数式
数式 CONCAT(target_month, "-", plan_code)
「計画明細キー作成」の設定画面。新規フィールド名と数式が読める状態
「計画明細キー作成」の設定画面。新規フィールド名と数式が読める状態

たとえば、対象月が「202610」、計画コードが「PLAN-001」の場合、計画明細キーは「202610-PLAN-001」になります。同じ計画でも対象月が変われば別の明細として識別できます。

4.収支計画明細へ保存する

最後に「収支計画明細」の出力ノードを開き、出力先アプリに「収支計画明細」を指定します。出力方法は「更新および追加」を選び、入力側の「計画明細キー」を出力先の「計画明細キー」へ対応付けて、更新キーに設定します。ほかの項目も対応付けたら、設定を保存します。

「収支計画明細」の出力設定。出力方法「更新および追加」、計画明細キーの対応付け、更新キーのチェックが読める状態
「収支計画明細」の出力設定。出力方法「更新および追加」、計画明細キーの対応付け、更新キーのチェックが読める状態

実行結果

2026年10月の月次損益レコードから実行すると、サンプルでは収支計画マスター11件から収支計画明細11件が作成されます。同じ月でもう一度実行しても、計画明細キーが同じレコードは増えません。

2026年10月の収支計画明細11件生成
2026年10月の収支計画明細11件生成
2026年10月の収支計画明細11件。計画明細キーを一覧に表示する
2026年10月の収支計画明細11件

次回は、作成した収支計画明細から未登録の見込実績だけを追加します。

ブログ一覧に戻る