概要
本記事では、kintone上の予算と実績を自動で集計する予実管理の自動化ワークフローの構築方法を解説します。
多くの現場では、kintoneに蓄積されたデータを一度CSVで書き出し、ExcelでVLOOKUPやピボットテーブルを駆使して予実管理表を作成しています。本ワークフローを導入することで、TROCCOとGoogle BigQueryがその作業を代行。ユーザーはkintoneのダッシュボードを開くだけで、最新の達成率を把握できるようになります。
ワークフロー導入の主なメリット
集計作業の自動化
決まったスケジュールでワークフローが自動実行され、最新のデータが予実管理に反映されます。これにより、CSVの書き出しやExcelでの手集計が不要になります。kintoneの「入力のしやすさ」をそのまま活用
現場のユーザーは、kintoneに受注情報を入力するだけ。集計のために複雑な入力ルールは必要ありません。データの鮮度と経営判断を直結
BigQueryで計算された最新の達成率がkintoneに自動的に反映されるため、マネージャーはkintoneを開くだけで、常に最新の状況を確認できます。
ワークフロー実装のポイント
必要な環境:
kintoneアプリ(目標管理、受注管理、予実管理)
Google BigQueryのテーブル(目標管理、受注管理、予実管理)
※本記事ではBigQueryを前提としていますが、他のDWHでも実装可能です。
連携キーの設計:
予実管理アプリのデータを更新するために、「部署コード+年月」を組み合わせた連携キー(例:
CODE_202602)を生成します。これにより、データの二重登録を防ぎ、データ更新の自動化を実現します。
使用するTROCCOの機能:
データ転送:kintoneとBigQuery間のデータの転送に使用
データマート:BigQuery上でデータの集計を行うために使用
ワークフロー:データ転送とデータマートの実行順序の制御に使用
ワークフローの設定手順
STEP 1:kintoneアプリの準備
以下の3つのアプリを作成し、フィールドコードを設定します。
①目標管理アプリ(予算)
各部署の売上目標を入力するアプリです。
| 項目名 | フィールド型 | フィールドコード | 備考 |
| 対象月 | 日付 | target_month | 原則として「各月1日」を入力します。 |
| 部署コード | 文字列(1行) | dept_code | 予実管理アプリの挿入先のキーとしても使用します。 |
| 部署名 | 文字列(1行) | department | |
| 目標金額 | 数値 | budget_amount |
②受注管理アプリ(実績)
営業担当者が日々の受注結果を入力するアプリです。
| 項目名 | フィールド型 | フィールドコード | 備考 |
| 受注日 | 日付 | sales_date | |
| 部署コード | 文字列(1行) | dept_code | |
| 部署名 | 文字列(1行) | department | |
| 顧客名 | 文字列(1行) | customer_name | |
| 受注金額 | 数値 | amount | |
| 受注詳細 | 文字列(1行) | order_detail |
③予実管理アプリ
月ごとの実績を格納するアプリです。TROCCO経由でBigQueryで計算した結果を出力します。
| 項目名 | フィールド型 | フィールドコード | 備考 |
| 連携キー | 文字列(1行) | unique_key | 「値の重複を禁止する」にチェックを入れます。「部署コード+年月」の連携キーを入力します。 |
| 対象月 | 日付 | target_date | 原則として「各月1日」を入力します。 |
| 部署コード | 文字列(1行) | dept_code | |
| 部署名 | 文字列(1行) | department | |
| 目標金額 | 数値 | budget_amount | 目標管理アプリから取得した数値です。 |
| 実績金額合計 | 数値 | actual_amount | 受注管理アプリを月次集計した合計値です。 |
| 達成率 | 数値 | achievement_rate | 実績金額 / 目標金額 × 100 の計算結果です。 |
STEP 2:kintoneからBigQueryへのデータ転送設定
転送設定を2つ作成し、kintoneに蓄積された予算と実績のデータをBigQueryのそれぞれのテーブルにデータ転送します。
kintone: 目標管理アプリ -> BigQuery: 目標管理のテーブル(例:
raw_plan)kintone: 受注管理アプリ -> BigQuery: 受注管理のテーブル(例:
raw_results)
転送設定作成のポイント:
STEP1の転送元kintoneの設定のフィールド
未設定のままSTEP2に進み自動データ設定を実行しますと、自動的に取得可能なフィールドが設定されます。転送が不要なフィールドがある場合は、STEP1に戻りフィールドを削除し、再度自動データ設定を実行することで、効率よくフィールドを設定することができます。STEP1の転送先Google BigQueryの設定の転送モード
kintoneから全レコードを転送し最新のデータをテーブルに同期するため、「全件洗い替え (REPLACE)」を設定します。STEP2のカラム定義
自動的に定義されたカラム定義の場合、$idと$revisionというカラムが存在します。$から始めるカラムはBigQueryに作成できないため、カラム名の修正が必要です。転送が不要な場合はカラムの削除します。
転送設定を作成後は、次のSTEPでデータマート定義を作成するため、データ転送を実行してデータを転送したテーブルを作成します。
STEP 3:データマート(SQL)による集計定義
BigQueryに目標管理テーブルと受注管理テーブルのデータを統合し、達成率を算出して予実管理のテーブルに出力します。TROCCOのデータマート機能でSQLクエリを実行してデータを作成します。
データマート作成のポイント:
- データ取得設定
- クエリ実行モード:データ転送モード
- 書き込みモード:全件洗い替え
- クエリ設定
- 出力先データセット・出力先テーブル:予実管理のデータを出力するテーブルを指定
【SQLクエリのサンプル】
日々の受注明細を月ごとに集計し、予算データと結合して達成率を算出します。
WITH actual_summary AS (
-- 受注実績を月単位かつ部署コード別に集計
SELECT
DATE_TRUNC(CAST(sales_date AS DATE), MONTH) AS target_month,
dept_code,
SUM(amount) AS actual_amount
FROM
`your_project.your_dataset.raw_results`
GROUP BY
1, 2
)
SELECT
-- 予算データをベースに、実績データを紐付け
CAST(b.target_month AS DATE) AS target_date,
b.dept_code,
b.department,
b.budget_amount,
COALESCE(a.actual_amount, 0) AS actual_amount,
-- 達成率の計算(0除算エラーを回避)
ROUND(SAFE_DIVIDE(COALESCE(a.actual_amount, 0), b.budget_amount) * 100, 1) AS achievement_rate,
-- kintoneへの書き戻し用キーを生成(部署コード_年月)
CONCAT(b.dept_code, '_', FORMAT_DATE('%Y%m', CAST(b.target_month AS DATE))) AS unique_key
FROM
`your_project.your_dataset.raw_plan` AS b
LEFT JOIN
actual_summary AS a
ON
CAST(b.target_month AS DATE) = a.target_month
AND b.dept_code = a.dept_codeサンプルクエリのポイント:
LEFT JOIN
まだ受注がない部署も目標管理のデータを残すためにLEFT JOINを行います。COALESCE関数
受注がない(NULL)場合に0とみなした数値をkintoneへ戻します。target_dateの生成
月別の集計の基準となる対象月の日付です。DATE型のカラムに各月の1日(例:2026-02-01)を設定します。unique_keyの生成
部署コードと年月を使って連携キーを作成します(例:CODE_202602)。連携キーを使って、次のSTEPでkintone上の更新先のレコードを特定します。
データマート定義を作成後は、次のSTEPで転送設定を作成するため、データマートを実行してテーブルを作成します。
STEP 4:BigQueryから予実管理アプリ(kintone)へのデータ転送
データマートで計算された最新の集計値を、kintoneの予実管理アプリへ書き戻します。
転送設定作成のポイント:
STEP1の転送先kintoneの設定の転送モード
転送モードはupsertを選択し、アップデートキーにはunique_keyを設定します。これにより、転送先のunique_keyを参照し、すでに同じ連携キーがある場合はレコードを上書き、ない場合は新規にレコードを挿入します。STEP2のカラム定義の設定
target_monthのデータ型がtimestamp型に設定されていると、2026-02-01 00:00:00 UTCのような形式のデータとなり、日付の項目に転送できません。データ型をstring型に変更することで、2026-02-01の形式のデータになります。データ型の変更後は、「変更をプレビュー」を実施してデータをご確認ください。
STEP 5:ワークフローによる自動化の設定
これまでに作成したTROCCOの3つの工程を、ワークフロー機能で一つの処理としてまとめます。これにより、ワークフローの実行のみで一連のデータの処理を制御することができます。
ワークフローの作成手順:
TROCCO転送ジョブの追加
STEP2で作成した転送設定を追加し、STARTからそれぞれのタスクに接続します。TROCCOデータマートジョブの追加
STEP3で作成したデータマート定義を追加し、手順「1.」で配置したタスクから接続します。TROCCO転送ジョブの追加
STEP4で作成した転送設定を追加し、手順「2.」で配置したタスクから接続します。
ワークフロー作成のポイント:
ワークフロー全体設定
タスク同時実行上限数を2に設定することで、2つあるkintoneからBigQueryへの転送ジョブタスクを並行して処理できます。これにより、ワークフロー全体の処理時間の短縮できます。スケジュール設定
スケジュールを設定することで、定期的にワークフローを実行することができます。例えば、毎週日曜日に実行するように設定することで、週明けの月曜日には最新の予実管理のデータを参照することができます。
コメント
0件のコメント
記事コメントは受け付けていません。