DX

配車システムの自作:Excel・kintone・Pythonで作れる範囲とパッケージへの切り替え基準

流通系システムが業界にもたらす影響

配車システムの自作は、Excelの配車表を作り込む、kintoneなどのノーコードツールで組む、PythonとOR-Toolsで配車を計算させる、の3つの方法に分かれます。どれも始めるのは難しくありません。問題は、車両が増えたり制約が複雑になったりしたときに、どこで止まるかです。この記事では3つの作り方を手順とコード例つきで示し、車両台数・制約条件・連携先の3軸で、自作を続けるか、配車システムのパッケージか受託開発に切り替えるかを判断できるように整理しました。

まとめ:配車システムの自作で届く範囲と、パッケージへ切り替える条件

自作で無理なく作れるのは、配車表の作成と、車両・ドライバーの二重割当や積載量超過のチェックまでです。Excelなら数式と入力規則、kintoneならアプリ間の関連付けで実現できます。配車そのものを自動で計算させたいなら、PythonとOR-Toolsで積載量や時間指定を制約にした計算も組めます。

自作が止まるのは、次の3つのどれかが起きたときです。配車係が2人以上になり同時に編集する、荷主ごとの独自条件や拘束時間の上限を制約として持たせる必要が出る、受注・請求・動態管理とデータを連携させる必要が出る。1つ目だけならkintoneで受けられますが、2つ目と3つ目が重なったら自作は打ち切り、パッケージか受託開発に移ります。

判断の分かれ目は「作った人がいなくなっても配車が回るか」です。自作の配車システムは作った担当者1人が保守していることが多く、その人の異動で止まる体制なら、規模にかかわらず自作は続けません。

配車システムの自作とは|Excel・ノーコード・プログラミングの3つの作り方

配車システムの自作は、既製の配車管理システムを買わずに、自社の担当者が手元のツールで配車の仕組みを組むことを指します。配車業務の流れや配車計画の組み方そのものは配車とは?物流の配車業務の流れと配車計画の組み方・属人化の解き方で扱っているため、ここでは作り方の選択肢に絞ります。

自作の3手段の比較|作れる機能・初期費用・作り手に要るスキルの違い

3つの手段は、作れる機能の上限と、作り手に求めるスキルが大きく違います。

手段 作れる範囲 費用の目安 作り手
Excel・スプレッドシート 配車表と重複チェック 既存ライセンス内 関数を書ける事務担当
kintoneなどノーコード 複数人の入力と一覧表示 10人で月1.8万円から 業務を分かる担当者
Python+OR-Tools 配車の自動計算 ライブラリは無償 プログラムを書ける人

実務で最初に検討するのはExcelです。すでに配車表をExcelで作っている会社が大半で、作り直しではなく作り込みから始められます。kintoneの費用は2026年10月時点のスタンダードコースの料金で、詳しくは後の章で扱います。

自作する前に決める範囲|配車表・マスタ・運行実績のどこまでを作るか

配車システムの機能は、配車表の作成、車両・ドライバー・納品先のマスタ管理、運行実績の記録の3層に分けられます。機能の全体像は配車管理システムとは?運送業の配車計画・運行計画の機能と費用・導入判断で整理しています。

自作では、最初から3層すべてを作ろうとしないことです。まず配車表とマスタだけを作り、運行実績は日報の集計で足りるうちは手を付けません。運行実績までExcelで取ろうとすると、ドライバーの入力手段が無いため、事務所で日報を転記する作業が新たに生まれます。

Excel・スプレッドシートで配車表を自作する手順|シート設計と数式

Excelの配車表は、1枚のシートに全部を書き込む作り方から抜け出すだけで、ミスが目に見えて減ります。Googleスプレッドシートでも関数はほぼ同じです。

配車表を4シートに分ける設計|受注・車両・ドライバー・配車結果の持ち方

シートは役割ごとに4枚へ分け、配車結果のシートからほかの3枚を参照する形にします。

  1. 受注シート:日付・荷主・納品先・荷量・時間指定を1行1件で並べる
  2. 車両シート:車番・車格・最大積載量・使えない曜日を並べる
  3. ドライバーシート:氏名・運転できる車格・前日の終業時刻を並べる
  4. 配車結果シート:日付・便・車番・ドライバー・受注番号を並べ、残りの項目は他シートから関数で引く

配車結果シートに車格や積載量を手で打たないことが肝心です。車両シートから引けば、車両を入れ替えたときに1か所直すだけで済みます。車番やドライバー名はデータの入力規則でリストから選ばせ、表記ゆれを防ぎます。

二重割当と拘束時間の超過を防ぐ数式|COUNTIFSとSUMIFSの使い所

配車表の自作で最も効くのは、同じ日の同じ便に同じ車両を2回割り当てていないかを数式で検出することです。配車結果シートのA列を日付、B列を便、C列を車番、D列をドライバー、G列をその運行の拘束時間(時間)とした場合の例を示します。

二重割当の検出(H2に入れて下へコピー。TRUEなら重複)
=COUNTIFS($A:$A,A2,$B:$B,B2,$C:$C,C2)>1

当月1日からその日までの、ドライバー別の拘束時間の累計(I2)
=SUMIFS($G:$G,$D:$D,D2,$A:$A,">="&EOMONTH(A2,-1)+1,$A:$A,"<="&A2)

H列には条件付き書式で赤を付け、I列は260時間を超えたら黄色にしておきます。トラック運転者の1か月の拘束時間は、厚生労働省のトラック運転者の改善基準告示で原則284時間以内とされているため(2026年10月時点の掲載内容)、手前で気づける余裕を持たせる設定です。告示の数値をシステムの判定条件に落とす考え方は改善基準告示とは:拘束時間・休息期間の上限を運行管理システムの判定要件に翻訳するで扱っています。

Excel配車表の自作を止める目安|マクロの保守者が1人しかいない状態

Excelの配車表が回らなくなる兆候は、同時編集できない、組み替えの履歴が残らない、日報や請求書へ転記している、などです。兆候の一覧は配車とはの記事にまとめているので、自作に固有の止め時だけを足します。

それは、VBAのマクロで割当や帳票出力を自動化し、そのマクロを直せる人が社内に1人しかいない状態です。ファイルが壊れた日やその人が休んだ日に、配車表が作れなくなります。マクロが数百行を超えたら、Excelで作り込むのはそこで止めてください。

kintoneなどノーコードで配車管理を自作する構成|アプリ設計と料金

配車係が2人以上になり、営業所や外出先から同時に入力したいなら、Excelよりノーコードツールが向いています。ここでは運送業での事例が多いkintoneを例にします。

kintoneで作る配車管理の構成|車両・ドライバー・配車予定の3アプリ

kintoneでは、Excelの4シートに当たるものをアプリとして作ります。車両マスタとドライバーマスタを別アプリにし、配車予定アプリからルックアップで車番とドライバーを選ぶ構成が基本です。受注は配車予定アプリの1レコードに含めても足ります。

配車予定アプリの一覧をカレンダー形式で表示すれば、日ごとの割当が画面で見えます。車両マスタ側には関連レコード一覧を置き、その車両に割り当てた予定を車両の画面から確認できるようにしておくと、空き車両を探す手間が減るはずです。スマートフォンから閲覧・入力ができるため、ドライバーに当日の配車を見せる用途にも使えます。

kintoneの料金とコース選び|ライトでは外部連携とカスタマイズ不可

kintoneの料金ページでは、1ユーザーあたり月額(税抜)がライトコース1,000円、スタンダードコース1,800円、ワイドコース3,000円で、ライトとスタンダードは最小10ユーザーからです(2026年10月時点)。配車係と事務員、ドライバーの一部で10人なら、スタンダードで月18,000円になります。

配車管理で選ぶのはスタンダードです。ライトコースでは、JavaScriptでのカスタマイズ、プラグイン、外部サービスとのAPI連携が使えません。後で二重割当のチェックや地図表示を足したくなったとき、ライトのままでは手段がなくなります。

ノーコード自作が詰まる箇所|自動割当とルート計算は標準機能に無い

kintoneの標準機能で作れるのは、入力・一覧・集計までです。どの車両にどの荷物を載せるかを自動で決める計算や、地図上での配送ルートの計算は、標準機能にはありません。プラグインやJavaScriptで補うことになり、その時点で「ノーコード」ではなくなります。

この段階で外部の手を借りる場合、kintoneのアプリ設計から入るならkintone導入支援のような支援を使う方法があります。割当の自動計算まで求めるなら、次の章のPythonか、自動配車エンジンを持つ製品が選択肢になります。

Pythonで配車計算を自作する方法|OR-Toolsで積載量の制約を解く例

配車の自動計算は、数学では配送計画問題(VRP)と呼ばれ、Googleが公開している無償のライブラリOR-Toolsで解けます。自動配車システムが内部で何を計算しているかは自動配車システムとは?AI配車の仕組みと導入条件・受託開発の判断で解説しています。

OR-Toolsで積載量の制約つきの配車を解くコード例|距離表と車両容量

OR-ToolsはPyPIから pip install ortools で入れられます。2026年10月時点の版は9.15系で、Python 3.9以上が対象です。次の例は、公式ドキュメントのCapacity Constraintsと同じAPIで、車庫1か所・納品先4件・8トン車2台の配車を計算します。

# pip install ortools
from ortools.constraint_solver import pywrapcp, routing_enums_pb2

# 0番を車庫、1〜4番を納品先とした距離表(km)
distance = [
    [0, 12, 18, 25, 9],
    [12, 0, 8, 20, 14],
    [18, 8, 0, 11, 21],
    [25, 20, 11, 0, 17],
    [9, 14, 21, 17, 0],
]
demand = [0, 3, 4, 2, 5]   # 納品先ごとの荷量(トン)
capacity = [8, 8]          # 車両2台の最大積載量(トン)

manager = pywrapcp.RoutingIndexManager(len(distance), len(capacity), 0)
routing = pywrapcp.RoutingModel(manager)

def dist_cb(i, j):
    return distance[manager.IndexToNode(i)][manager.IndexToNode(j)]

transit = routing.RegisterTransitCallback(dist_cb)
routing.SetArcCostEvaluatorOfAllVehicles(transit)

def demand_cb(i):
    return demand[manager.IndexToNode(i)]

dem = routing.RegisterUnaryTransitCallback(demand_cb)
routing.AddDimensionWithVehicleCapacity(dem, 0, capacity, True, "Capacity")

params = pywrapcp.DefaultRoutingSearchParameters()
params.first_solution_strategy = (
    routing_enums_pb2.FirstSolutionStrategy.PATH_CHEAPEST_ARC)
params.time_limit.FromSeconds(1)

solution = routing.SolveWithParameters(params)
for v in range(len(capacity)):
    idx, route = routing.Start(v), []
    while not routing.IsEnd(idx):
        route.append(manager.IndexToNode(idx))
        idx = solution.Value(routing.NextVar(idx))
    print(f"車両{v + 1}: {route + [0]}")

出力は、車両ごとに車庫から回る納品先の順番です。荷量の合計14トンを、どちらの車両も8トンを超えない組み合わせで2台に振り分けます。実務では距離表を納品先の住所から作り、荷量を受注シートから読み込む部分を足します。

時間指定と拘束時間を加えるときの考え方|時間の次元と車両別の上限

時間指定を入れるには、距離の代わりに移動時間の表を渡し、AddDimensionで時間の次元を作ります。公式のVehicle Routing Problem with Time Windowsでは、各地点での待ち時間の上限と、1台あたりの合計時間の上限をこの関数の引数で渡し、納品先ごとの受付時間をCumulVar(index).SetRange(開始, 終了)で縛る例が示されています。

拘束時間の上限は、この「1台あたりの合計時間」に当たります。ただし前日の終業時刻から休息期間を確保する条件や、ドライバーごとに運転できる車格の違いは、サンプルにはありません。自社の条件を1つずつ制約として書き足す作業が、Python自作の本体になります。

Python自作で残る作業|距離データ・画面・保守を誰が担うか

計算部分が動いても、配車システムとして使うにはさらに3つの作業が残ります。納品先間の距離や移動時間を地図サービスのAPIから取る仕組み、配車係が結果を確かめて手で直す画面、そして制約を追加・変更し続ける保守です。

この3つのうち、最も重いのは保守です。荷主が増えるたびに制約を書き足すことになり、プログラムを書ける人が社内にいなくなると更新が止まります。計算の検証用に自作するのは有効ですが、本番の配車をPythonの自作だけで回す判断は、開発担当を常に置ける会社に限ってください。

自作・パッケージ・受託開発の選び分け|車両台数・制約条件・連携先

自作を続けるかどうかは、車両台数、制約条件の複雑さ、連携先の数の3軸で決めます。どれか1つではなく、重なり方で判断します。

自作で続けてよい条件|車両10台前後・固定ルート中心・連携先が少ない

保有車両が10台前後で、運行の大半が固定ルート、配車データを渡す先が請求書の作成くらいなら、自作で続けて問題ありません。Excelの4シート設計と二重割当の数式で、属人化と転記ミスの大半は防げます。

配車係が2〜3人に増えても、制約が積載量と時間指定に収まるならkintoneへの移行で受けられます。この範囲でパッケージを入れても、月額費用に見合う削減時間はなかなか出ません。

パッケージに切り替える条件|制約が標準設定に収まり、作り手が1人の場合

車両が30台を超え、スポット案件や傭車が日常的に入るようになったら、配車システムのパッケージを検討します。特に、自作のマクロやアプリを直せる人が1人しかいないなら、制約が製品の標準設定に収まる限りパッケージに移る方が安全です。製品タイプごとの選び方は配車管理システムの比較|3タイプの選び方と費用・受託開発の判断基準にまとめています。

切り替えるときは、自作で作ったマスタがそのまま資産になります。車両・ドライバー・納品先の一覧と、納品先ごとの受付時間をCSVで出せる形に整えておけば、パッケージへの初期登録はその取り込みで済みます。

受託開発を選ぶ条件|独自の制約と基幹システムとの連携を作り込む場合

受託開発に進むのは、荷主ごとの独自の運賃計算、オーダーの分割と再統合、共同配送の按分、既存の受注・請求システムとの連携のように、パッケージの設定では表せない処理が配車の成否を決めている場合です。自作で書き出した制約の一覧と数式は、そのまま要件定義の材料になります。

自作の段階で詰まった箇所は、作り込みが必要な箇所でもあります。自作のExcelやkintoneを起点に、必要な部分だけを作る進め方は物流システム開発でご相談いただけます。

自作を見送るべき場面|作った担当者の異動で配車が止まる体制の会社

規模が小さくても自作を見送るべきなのは、作った担当者の異動や退職で配車が止まる体制の会社です。仕様書が無く、数式やマクロの意図を本人しか知らない状態は、パッケージ導入の失敗と同じ結果を招きます。導入が定着しない典型は配車システムの失敗:定着しない5つの典型と成功させる要件定義の詰め方で扱っています。

もう1つは、拘束時間の上限超過が毎月起きている会社です。自作の数式で警告を出せても、警告を見て配車を直す運用が回っていなければ意味がありません。この場合は作り込みより先に、配車段階で上限を確かめる手順を決めてください。

よくある質問

配車システムの自作について、検討の段階でよく出る質問をまとめました。

配車システムはExcelで自作できますか?

配車表の作成と、二重割当や拘束時間の累計のチェックまでならExcelで作れます。受注・車両・ドライバー・配車結果の4シートに分け、COUNTIFSやSUMIFSで検出する形が基本です。一方、複数人での同時編集、組み替えの履歴の保存、配車の自動計算はExcelの苦手な領域で、ここが必要になったら別の手段を検討します。

配車システムの自作とパッケージはどちらが安いですか?

車両10台前後で固定ルートが中心なら、既存のExcelを作り込む自作の方が安く済みます。ただし自作の費用には、作った担当者の作業時間と保守の時間が含まれます。マクロの修正や制約の追加に毎月時間を取られているなら、パッケージの月額と比べ直してください。

kintoneで配車管理はできますか?

車両・ドライバーのマスタと配車予定をアプリとして作り、カレンダー形式で一覧表示する構成で配車管理ができます。複数人の同時入力やスマートフォンからの閲覧に向いている構成です。自動割当や地図上のルート計算は標準機能に無いため、プラグインやJavaScriptが使えるスタンダードコース以上を選んでおくと後で拡張できます。

配車の自動計算を無料で試す方法はありますか?

GoogleのOR-Toolsは無償で公開されているライブラリで、Pythonから配送計画問題を解けます。距離表と荷量、車両の最大積載量を渡すと、車両ごとの回る順番を返す仕組みです。自社の過去の受注データで計算させ、配車係の組んだ配車表と比べると、自動計算がどこまで使えるかの見当が付きます。

自作の配車システムからパッケージへ移るとき、データは引き継げますか?

車両・ドライバー・納品先のマスタと、納品先ごとの受付時間はCSVで出せれば引き継げます。CSVやExcelの取り込みは、多くのパッケージが標準で備える機能です。移行前に、表記ゆれや重複した納品先を整理しておくと、取り込み後の手直しが減ります。

関連記事

お気に入りに入れた記事の一覧

資料請求

今日のトレンド記事 直近 24 時間で、いつもより多く読まれている記事

  1. 2026.10.23 テックブログ Renta!不正アクセスでサービス停止:再開未定の現状と運営側の停止判断・証拠保全・段階的再開
  2. 2026.07.09 テックブログ Muse Imageとは?Metaの画像生成AIの使い方・API料金(1枚0.01ドル)と日本での提供状況【2026年10月】
  3. 2025.01.09 コラム アドレサブルCM(Addressable CM)とは?フジテレビで出る表示の意味・仕組みと視聴データの扱い
  4. 2025.12.10 コラム 今の50代は何世代?バブル世代・団塊ジュニア・氷河期の境目と特徴
  5. 2026.10.21 テックブログ ふるさとチョイス不正アクセスで445万件流出:パスワード変更・対象確認と再開時期(10月23日第2報まで)

RELATED POSTS 関連記事

目次