この連載では、収支計画から月次損益を作る流れを、データフロープラグインの配布サンプルを使って紹介します。
第1部では、月次損益の対象月と収支計画マスターを組み合わせ、その月の収支計画明細を作ります。異なるアプリの全レコードを組み合わせるための「結合キー」と、作成した明細を1件ずつ識別する「計画明細キー」が設定のポイントです。
目次
サンプルの準備
配布ファイルには、スペーステンプレート、収支計画マスターと月次損益の初期データ、データフロー設定が含まれています。READMEの順に読み込むと、同じ構成を試せます。
フィールド定義(使用項目)¶
| アプリ | 主なフィールド | 役割 |
|---|---|---|
| 月次損益 | 対象月、対象開始日、対象終了日 | 作成する月を指定する |
| 収支計画マスター | 予算計画コード、計画名、損益区分、科目名、初回発生月、周期(月)、終了月、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件が作成されます。同じ月でもう一度実行しても、計画明細キーが同じレコードは増えません。
次回は、作成した収支計画明細から未登録の見込実績だけを追加します。