リフォーム・工務店

工事台帳エクセルの作り方工事ごとの粗利が見える項目と全関数

小さなリフォーム会社が工事ごとの粗利を見るための工事台帳を、Excelで作る手順です。工事一覧と原価明細の項目、実行予算・追加工事・外注費・材料費の持ち方、請求と入金の予定、全部の関数、月に1回見る数字をまとめます。

この記事の結論:工事台帳は、1工事を1行にした「工事一覧」と、原価を1件1行にした「原価明細」の2枚で作ります。いちばん大事なのは、請求書が届いてから入れるのではなく、発注した時点で予定額を入れることです。実際額が空の行は予定額で計算すると、工事の途中でも「見込み粗利」が見えます。月に1回、赤字・目標割れ・追加の請求なし・入金遅れの工事を確かめれば、手を打てるうちに気づけます。関数はこの記事にすべて載せました。計算のライブラリで動かして確かめたもので、ExcelとGoogleスプレッドシートの実物では未実行です。

この記事の内容のご相談は株式会社bundlyzeへbundlyzeのシステム開発について見てみる

この記事は、小さなリフォーム会社の社長に向けて、工事ごとの粗利を見るための社内の工事台帳の作り方を書きます。経理の帳簿の作り方は扱いません。帳簿や税の扱いは専門家に確かめてください。現場の写真をまとめる表は工事写真台帳の作り方の記事に分けています。工事番号を同じにしておくと、金額と写真を同じ番号で探せます。

工事台帳とは、受注金額と原価を工事ごとに並べて粗利を見る表

工事台帳とは、工事ごとに受注した金額とかかった原価を並べ、いくら残るかを見る表です。月の合計だけを見ていると、よかった工事と赤字の工事が混ざり、どの工事で何が起きたのかが分かりません。工事台帳は、その数字を1工事ずつに分けて見るためのものです。

この記事で使う言葉は、次の意味です。どれも社内で判断するための呼び方です。

言葉 この記事での意味
見積金額 最初に施主と決めた工事の金額
追加工事 工事の途中で増えた分の、施主からいただく金額
受注金額 見積金額と追加工事の合計
実行予算 この工事に使う原価の予定の合計
実際額 請求書や社内の記録で確かめた原価の金額
見込み原価 実際額が入った行は実際額、まだの行は予定額で足した合計
見込み粗利 受注金額から見込み原価を引いた金額

粗利が見えなくなる原因は、原価の数字が後から届くこと

工事ごとの粗利が見えない原因は、計算が難しいからではなく、数字がそろう時期が工事よりも遅いからです。外注の請求書は工事の後に届き、完了の翌月に初めて赤字だと分かります。その時点では、追加の請求も、手直しの判断も間に合いません。原因と、この記事の表での手当ては次のとおりです。

見えなくなる原因 起きること この記事の表での手当て
外注の請求書が後から届く 工事が終わるまで原価が低く見える 発注の時点で予定額を入れる
追加工事の原価だけが増える 口頭で頼まれた分を請求し忘れる 明細を「追加」に分け、請求がなければ表示する
自社の職人の手間を入れていない 外注の多い工事より粗利がよく見える 手間を社内の単価で金額にして入れる
まとめ買いの材料が工事に分かれていない どの工事の原価か分からない 請求書1枚を工事ごとの行に分ける
入金を別の表で見ている 追加工事の分が請求の予定に入らない 残金を受注金額から計算する

工事台帳は、工事一覧と原価明細の2枚で作る

工事台帳で手で入力する表は、工事一覧と原価明細の2枚です。1つの表に工事の情報と原価を一緒に書くと、1工事で何行にもなり、工事の数も合計も数えにくくなります。入力する単位が違うものは、シートを分けます。工事番号が、2枚をつなぐ鍵です。

シート 1行の単位 いつ入れるか 何が分かるか
工事一覧 工事1件 見積もりを出したとき、状態が変わったとき、入金があったとき 工事ごとの粗利、判定、入金の予定
原価明細 発注や請求1件 発注したとき、請求書が届いたとき 何にいくらかかったか、予定との差
月の確認 (入力は3か所だけ) 月に1回 会社全体の数字と、表の入力の漏れ

3枚目の「月の確認」は、2枚から計算して見るだけのシートです。手で入れるのは、目標の粗利率、見る月、見る工事番号の3か所です。ファイルは会社に1つで、工事ごとには分けません。工事写真台帳は1工事に1ファイルでしたが、工事台帳は工事を横に並べて見るのが目的だからです。

金額は、税を含まない形か含む形のどちらかに全部そろえます。見積書と請求書で基準が混ざると、粗利がずれます。

工事一覧の項目は32列

工事一覧は、1工事1行で、左から工事の基本、粗利、入金の順に並べます。「式」の列は手で入力しません。色を変えておくと、誤って上書きするのを防げます。

列 項目 入れ方
A 工事番号 R26-012 のように年と通し番号。見積書や工事写真と同じ番号
B 工事名 浴室とトイレの入れ替え
C 施主 名前
D 担当 名前
E 状態 リストから選ぶ(下の表)
F 着工日 日付
G 完了日 日付
H 見積金額 最初に決めた金額
I 追加工事 追加でいただく金額の合計。なければ空
J 受注金額 式
K 実行予算 式
L 確定原価 式。実際額だけの合計
M 見込み原価 式
N 見込み粗利 式
O 見込み粗利率 式
P 予定粗利率 式。実行予算のままで終わったときの粗利率
Q 追加の原価 式
R 粗利の判定 式
S 着手金 金額
T 着手金の予定日 日付
U 着手金の入金日 入金を確かめたら日付
V 中間金 金額。なければ空
W 中間金の予定日 日付
X 中間金の入金日 入金を確かめたら日付
Y 残金 式
Z 残金の予定日 日付
AA 残金の入金日 入金を確かめたら日付
AB 入金済み 式
AC 未入金 式
AD 次の入金日 式
AE 入金の判定 式
AF 番号の確認 式

E列の状態は、次の6つに絞ります。言葉を増やすと、判定の式が合わなくなります。

状態 意味 粗利と入金の判定
見積中 見積もりを出した段階 しない
受注 契約したが、まだ始まっていない する
施工中 工事をしている する
完了 工事は終わったが、原価か入金が残っている する
締め 原価がすべて確かめられ、数字が固まった する
失注 受注しなかった しない

原価明細の項目は11列

原価明細は、発注や請求1件を1行にします。1行に予定額と実際額の両方を持たせるのが、この表の芯です。別々の表にすると、どの請求がどの予定に当たるのかを後から探すことになります。

列 項目 入れ方
A 工事番号 工事一覧と同じ番号
B 区分 材料・外注・手間・その他から選ぶ
C 内容 解体、ユニットバス、大工 6人工
D 取引先 名前。自社の手間は 自社
E 本工事か追加か 本工事 か 追加 を選ぶ
F 予定額 発注の時点で見込んだ金額
G 実際額 請求書や記録で確かめた金額。まだなら空
H 見込み額 式
I 差額 式。実際額から予定額を引いた金額
J 請求書の日 日付
K 確認 式

G列は、まだ分からないなら空にします。値引きなどで原価が本当に0円のときだけ 0 を入れます。空と 0 は意味が違い、空なら予定額が見込みに入り、0 なら0円として計算されます。

見積・追加工事・実行予算・外注費・材料費の持ち方

金額の持ち方は、工事のどの時点で何を入れるかで決めます。見積書の金額をそのまま原価には使いません。

ポイント1. 見積金額は、最初に決めた金額のまま残す

H列の見積金額は、最初に施主と決めた金額のまま書き換えません。増えた分はI列の追加工事に足します。こうすると、最初の見積もりからいくら増えたのかが、1行で分かります。追加の中身は、見積書の控えや打ち合わせの記録に残します。

ポイント2. 実行予算は、着工前に原価明細の予定額で作る

実行予算は別の表を作らず、原価明細のF列に行を入れていきます。着工前に、頼む予定の外注、買う予定の材料、自社の手間を1行ずつ入れると、K列に合計が出ます。F列の金額は、見積書の金額ではなく、取引先の見積もりや過去の工事の金額から入れます。

ポイント3. 外注費は、発注した日に行を足す

外注費は、請求書が届く日ではなく発注した日に、取引先と予定額を入れます。請求書が届いたらG列を埋め、J列に日付を入れます。予定より増えた分はI列に出るので、理由を聞くきっかけになります。

ポイント4. 材料費は、まとめ買いでも工事ごとの行に分ける

材料の請求書は、1枚に複数の工事の分が載ることがあります。請求書の1枚を1行にせず、工事ごとに行を分けます。どの工事にも分けられない少額の消耗品まで追うと続かないので、どこまで分けるかを会社で決めます。

ポイント5. 自社の手間は、人工に社内の単価を掛けて入れる

自社の職人の手間は、区分「手間」の行に金額で入れます。セルに =6*30000 のように、人工と社内で決めた単価の掛け算を書きます。この単価は架空の例で、実際の単価は会社で決めます。外注だけを原価に入れると、自社の職人が多い工事の粗利がよく見えてしまいます。

ポイント6. 追加工事は、原価と金額の両方を入れて初めて完了にする

追加工事の原価の行は、E列を「追加」にします。工事一覧のI列が空のままなら、R列に「追加の請求なし」と出ます。現場で頼まれた作業の原価だけが増え、請求に載らない形を見つけるための表示です。無償で対応すると決めた追加なら、E列を「本工事」にして判断を残します。

ポイント7. 粗利は、予定と見込みの2つを持つ

P列の予定粗利率と、O列の見込み粗利率の2つを見ます。見積もりの時点で低かったのか、工事の途中で下がったのかで、次に直す所が変わります。予定の時点で低いなら、見積もりの出し方の話です。途中で下がったなら、発注や追加工事の話です。

請求と入金の予定は、3回の枠で工事一覧に持つ

請求と入金の予定は、工事一覧の中に着手金、中間金、残金の3回の枠で持ちます。回ごとに金額、予定日、入金日を1組にします。別の表にしないのは、工事の粗利と入金の遅れを同じ1行で見るためです。

残金は手で入れず、受注金額-着手金-中間金 の式で出します。追加工事をI列に足すと、残金が自動で増えるので、追加の分が請求の予定から漏れません。中間金がない工事は、V列を空にします。

入金日は、通帳や入金の記録で確かめてから入れます。請求書を出した日ではありません。入れた回の金額が入金済みに足され、AE列の判定は次のように変わります。

AE列の表示 意味
済 未入金が0
入金遅れ 次の入金の予定日を過ぎた
7日以内 次の入金の予定日が今日から7日以内
日を入れる 次の入金の予定日が空
日を確認 予定日に日付ではない文字が入っている
入金が多い 入金日を入れた金額の合計が受注金額を超えている

ひとつ気をつける形があります。残金の入金日を入れた後で追加工事の金額を足すと、残金も一緒に増え、未入金は0のままです。残金をいただいた後に追加が出たときは、R26-012-2 のように枝番を付けて工事一覧に別の1行を作ります。この動きは「動かして確かめた結果」の節に書きます。

支払いの予定(取引先へいつ払うか)は、この表では持ちません。

Excelで工事台帳を作る手順は、6つ

エクセル(Excel)で工事台帳を作るときは、最初に3枚のシートを名前だけ作り、式は月の確認の設定、原価明細、工事一覧、月の確認の集計の順に入れます。式が別のシートの名前やセルを指すので、この順番で作ると途中でエラーになりません。

ここの式は、表計算のライブラリで計算して確かめたもので、ExcelとGoogleスプレッドシートの実物では未実行です。試した範囲は「動かして確かめた結果」の節に書きます。シート名は、Microsoftのヘルプに合わせて '原価明細'! のように引用符で囲んでいます。

手順1. シートを3枚、名前だけ先に作る

新しいブックに、シートを3枚作ります。名前は左から「工事一覧」「原価明細」「月の確認」です。1文字でも違うと式がエラーになるので、ここで正確に入れます。

手順2. 月の確認のシートに、3つの設定を入れる

工事一覧の判定の式が目標の粗利率を見るので、先に入れます。A列に項目の名前、B列に値を書きます。

セル 項目 入れる値
A1、B1 目標の粗利率 30%(例。自社の数字を入れる)
A2、B2 見る月の初日 2026/10/1
A3、B3 見る月の末日 下の式。表示形式を日付にする
B3(見る月の末日)
=EOMONTH(B2,0)

手順3. 原価明細のシートに式を入れる

1行目に前の節の11列の項目を入れます。H2、I2、K2に次の式を入れ、1001行目までコピーします。工事番号が空の行は空のままなので、先に下までコピーしておけます。

H2(見込み額)
=IF(A2="","",IF(G2="",F2,G2))

I2(差額)
=IF(OR(A2="",F2="",G2=""),"",G2-F2)

K2(確認)
=IF(A2="",IF(COUNTA(B2:G2)>0,"番号を入れる",""),IF(COUNTIF('工事一覧'!$A:$A,A2)=0,"番号なし",IF(AND(B2<>"材料",B2<>"外注",B2<>"手間",B2<>"その他"),"区分を確認",IF(AND(F2="",G2=""),"金額を入れる",IF(OR(AND(F2<>"",NOT(ISNUMBER(F2))),AND(G2<>"",NOT(ISNUMBER(G2)))),"金額を確認","")))))

手順4. 工事一覧のシートに式を入れる

1行目に32列の項目を入れます。2行目の次の15か所に式を入れ、101行目までコピーします。

粗利の式です。

J2(受注金額)
=IF(A2="","",H2+I2)

K2(実行予算)
=IF(A2="","",SUMIFS('原価明細'!$F:$F,'原価明細'!$A:$A,A2))

L2(確定原価)
=IF(A2="","",SUMIFS('原価明細'!$G:$G,'原価明細'!$A:$A,A2))

M2(見込み原価)
=IF(A2="","",SUMIFS('原価明細'!$H:$H,'原価明細'!$A:$A,A2))

N2(見込み粗利)
=IF(A2="","",J2-M2)

O2(見込み粗利率)
=IF(OR(A2="",J2=0),"",N2/J2)

P2(予定粗利率)
=IF(OR(A2="",J2=0,K2=0),"",(J2-K2)/J2)

Q2(追加の原価)
=IF(A2="","",SUMIFS('原価明細'!$H:$H,'原価明細'!$A:$A,A2,'原価明細'!$E:$E,"追加"))

R2(粗利の判定)
=IF(OR(A2="",E2="見積中",E2="失注"),"",IF(K2=0,"予算なし",IF(AND(E2="締め",L2<>M2),"未確定あり",IF(AND(Q2>0,I2=0),"追加の請求なし",IF(N2<0,"赤字",IF(O2<'月の確認'!$B$1,"目標割れ",IF(M2>K2,"予算超え","")))))))

入金の式です。

Y2(残金)
=IF(A2="","",J2-S2-V2)

AB2(入金済み)
=IF(A2="","",IF(U2="",0,S2)+IF(X2="",0,V2)+IF(AA2="",0,Y2))

AC2(未入金)
=IF(A2="","",J2-AB2)

AD2(次の入金日)
=IF(A2="","",IF(AND(S2>0,U2=""),IF(T2="","",T2),IF(AND(V2>0,X2=""),IF(W2="","",W2),IF(AND(Y2>0,AA2=""),IF(Z2="","",Z2),""))))

AE2(入金の判定)
=IF(OR(A2="",E2="見積中",E2="失注"),"",IF(AC2<0,"入金が多い",IF(AC2=0,"済",IF(AD2="","日を入れる",IF(ISERROR(AD2-TODAY()),"日を確認",IF(AD2<TODAY(),"入金遅れ",IF(AD2-TODAY()<=7,"7日以内","")))))))

AF2(番号の確認)
=IF(A2="","",IF(COUNTIF($A:$A,A2)>1,"番号が重複",IF(H2="","見積金額なし","")))

O列とP列の表示形式はパーセント、AD列は日付にします。

手順5. 月の確認のシートに集計の式を入れる

A列の5行目から19行目に、次の式の括弧の中の名前を書き、B列に式を入れます。B9の表示形式はパーセントにします。

B5(施工中の件数)
=COUNTIF('工事一覧'!$E:$E,"施工中")

B6(受注の残)
=SUMIFS('工事一覧'!$J:$J,'工事一覧'!$E:$E,"受注")+SUMIFS('工事一覧'!$J:$J,'工事一覧'!$E:$E,"施工中")

B7(完了した工事の受注金額)
=SUMIFS('工事一覧'!$J:$J,'工事一覧'!$G:$G,">="&$B$2,'工事一覧'!$G:$G,"<="&$B$3)

B8(完了した工事の見込み粗利)
=SUMIFS('工事一覧'!$N:$N,'工事一覧'!$G:$G,">="&$B$2,'工事一覧'!$G:$G,"<="&$B$3)

B9(完了した工事の粗利率)
=IF(B7=0,"",B8/B7)

B10(赤字の件数)
=COUNTIF('工事一覧'!$R:$R,"赤字")

B11(目標割れの件数)
=COUNTIF('工事一覧'!$R:$R,"目標割れ")

B12(追加の請求なしの件数)
=COUNTIF('工事一覧'!$R:$R,"追加の請求なし")

B13(予算超えの件数)
=COUNTIF('工事一覧'!$R:$R,"予算超え")

B14(未確定の原価)
=SUM('工事一覧'!$M:$M)-SUM('工事一覧'!$L:$L)

B15(入金の予定)
=SUMIFS('工事一覧'!$S:$S,'工事一覧'!$T:$T,">="&$B$2,'工事一覧'!$T:$T,"<="&$B$3)+SUMIFS('工事一覧'!$V:$V,'工事一覧'!$W:$W,">="&$B$2,'工事一覧'!$W:$W,"<="&$B$3)+SUMIFS('工事一覧'!$Y:$Y,'工事一覧'!$Z:$Z,">="&$B$2,'工事一覧'!$Z:$Z,"<="&$B$3)

B16(実際の入金)
=SUMIFS('工事一覧'!$S:$S,'工事一覧'!$U:$U,">="&$B$2,'工事一覧'!$U:$U,"<="&$B$3)+SUMIFS('工事一覧'!$V:$V,'工事一覧'!$X:$X,">="&$B$2,'工事一覧'!$X:$X,"<="&$B$3)+SUMIFS('工事一覧'!$Y:$Y,'工事一覧'!$AA:$AA,">="&$B$2,'工事一覧'!$AA:$AA,"<="&$B$3)

B17(入金遅れの件数)
=COUNTIF('工事一覧'!$AE:$AE,"入金遅れ")

B18(明細の確認の件数)
=COUNTIF('原価明細'!$K:$K,"番号*")+COUNTIF('原価明細'!$K:$K,"金額*")+COUNTIF('原価明細'!$K:$K,"区分*")

B19(原価の合計の差)
=SUM('原価明細'!$H:$H)-SUM('工事一覧'!$M:$M)

1工事の内訳を見る欄も作ります。A21に「見る工事番号」、B21に R26-012 を入れます。22行目のA列からE列に「区分」「予定」「実際」「見込み」「差」と書き、A23からA26に「材料」「外注」「手間」「その他」、A27に「合計」と書きます。23行目に次の式を入れ、26行目までコピーします。

B23(予定)
=SUMIFS('原価明細'!$F:$F,'原価明細'!$A:$A,$B$21,'原価明細'!$B:$B,$A23)

C23(実際)
=SUMIFS('原価明細'!$G:$G,'原価明細'!$A:$A,$B$21,'原価明細'!$B:$B,$A23)

D23(見込み)
=SUMIFS('原価明細'!$H:$H,'原価明細'!$A:$A,$B$21,'原価明細'!$B:$B,$A23)

E23(差)
=D23-B23

B27(予定の合計)
=SUM(B23:B26)

C27(実際の合計)
=SUM(C23:C26)

D27(見込みの合計)
=SUM(D23:D26)

E27(差の合計)
=SUM(E23:E26)

手順6. リスト、固定、色を付けて、架空の1工事で試す

「データ」の「データの入力規則」で、次の3列にリストを付けます。式が決まった言葉を見ているので、手で打たせないのが大事です。リストの元の値は、「元の値」の欄に , で区切って直接書きます。

シート 列 リストの値
工事一覧 E 状態 見積中,受注,施工中,完了,締め,失注
原価明細 B 区分 材料,外注,手間,その他
原価明細 E 本工事か追加か 本工事,追加

工事一覧は、C2のセルを選んで「表示」の「ウィンドウ枠の固定」を選ぶと、見出しと工事番号、工事名が残ります。R列とAE列は、「ホーム」の「条件付き書式」で、「赤字」「入金遅れ」の文字に色を付けます。

最後に、架空の1工事と明細を3行ほど入れ、手計算と合うかを確かめます。原価の合計の差(B19)が0であることも見ます。確かめたら架空の行を消し、この空のファイルをひな形として別に保存します。

架空の工事で読むと、判定はこう出る

8件の架空の工事を入れて、ライブラリで計算した結果です。金額はすべて計算を確かめるための架空の数字で、実際の工事の金額ではありません。目標の粗利率は30%にしました。

工事番号 状態 受注金額 実行予算 見込み原価 見込み粗利 見込み率 予定率 粗利の判定 入金の判定
R26-003 締め 800,000 460,000 458,000 342,000 42.8% 42.5% (空欄) 済
R26-009 締め 600,000 300,000 300,000 300,000 50.0% 50.0% 未確定あり 済
R26-012 施工中 3,150,000 2,140,000 2,177,000 973,000 30.9% 32.1% 予算超え 7日以内
R26-015 施工中 2,000,000 1,100,000 1,100,000 900,000 45.0% 45.0% 追加の請求なし 入金遅れ
R26-018 完了 1,800,000 1,730,000 1,930,000 -130,000 -7.2% 3.9% 赤字 入金遅れ
R26-021 施工中 1,000,000 740,000 740,000 260,000 26.0% 26.0% 目標割れ 日を入れる
R26-024 見積中 450,000 200,000 200,000 250,000 55.6% 55.6% (空欄) (空欄)
R26-025 受注 700,000 0 0 700,000 100.0% (空欄) 予算なし 7日以内

R26-012の内訳を、月の確認の欄で見ると次のようになります。

区分 予定 実際 見込み 差
材料 1,130,000 1,130,000 1,130,000 0
外注 770,000 205,000 795,000 25,000
手間 180,000 0 180,000 0
その他 60,000 72,000 72,000 12,000
合計 2,140,000 1,407,000 2,177,000 37,000

この工事は、実際額の入った原価だけなら1,407,000円で、粗利は大きく見えます。発注済みの予定額まで入れると見込み原価は2,177,000円で、粗利率は30.9%です。解体と廃材の処分で合わせて37,000円増え、予定の32.1%より下がったことも分かります。

月に1回見る数字は、月の確認のシートの順に読む

月に1回見る数字は、まず表が正しいかを確かめ、次に手を打つ工事を選び、最後に会社全体を見る順で読みます。表に入力の漏れがあるまま数字を読んでも、判断を間違えるからです。月初にB2の見る月を変えて、上の順で見ます。例の値は、前の節の8件で10月を見たときのものです。

順 見る数字 セル 例の値 見て何をするか
1 原価の合計の差 B19 0 0でなければ、工事番号の合わない明細を探す
2 明細の確認の件数 B18 0 原価明細のK列で絞り、直す
3 未確定の原価 B14 2,200,000 届いていない請求書を取引先に確かめる。見積中と失注の工事の予定額も入る
4 追加の請求なしの件数 B12 1 請求するか、無償と決めて「本工事」に直す
5 赤字の件数 B10 1 原因を原価明細で見て、次の見積もりに直す
6 目標割れの件数 B11 1 施工中なら、残りの発注を見直す
7 予算超えの件数 B13 1 増えた行の理由を担当に聞く
8 入金遅れの件数 B17 2 施主への連絡を担当と決める
9 入金の予定 B15 3,860,000 実際の入金(B16)と見比べる
10 実際の入金 B16 1,800,000 通帳の入金と合うかを確かめる
11 完了した工事の受注金額 B7 1,800,000 月の完成の量を見る
12 完了した工事の粗利率 B9 -7.2% 目標と見比べる
13 受注の残 B6 6,850,000 これからの仕事の量を見る
14 施工中の件数 B5 3 現場の重なりを見る

全部を毎月深く読む必要はありません。最初の8つは手を打つための数字で、残りは流れを見るための数字です。

赤字が見える線は、3本引く

赤字が見える線は、見込み粗利が0を割る線、目標の粗利率を割る線、実行予算を超える線の3本です。赤字になってから気づくのではなく、手前の線で気づくようにします。R列の判定は、この3本と入力の漏れを、先に手を打つものから1つだけ出します。

順 R列の表示 条件 打つ手
1 予算なし 受注後なのに原価明細に予定額がない 実行予算を入れる。入れるまで粗利は読めない
2 未確定あり 締めなのに実際額の空の行がある 請求書を確かめ、締めを取り消すか実際額を入れる
3 追加の請求なし 追加の原価があるのに追加工事が空 請求するか、無償と決める
4 赤字 見込み粗利が0より少ない 原因を見て、残りの発注と次の見積もりを直す
5 目標割れ 見込み粗利率が目標より低い 残りの発注を見直す
6 予算超え 見込み原価が実行予算を超えたが、目標は保っている 増えた理由を確かめる

目標を守るために使える原価は、受注金額に 1-目標の粗利率 を掛けて出せます。R26-012なら、3,150,000円×0.7=2,205,000円が線です。見込み原価は2,177,000円なので、あと28,000円を超えて増えると目標を割ります。施工中はこの残りの額を見て、発注を決めます。

目標の粗利率の30%は計算の例で、目安ではありません。自社の締めた工事を数件入れて粗利率を出し、そこから決めます。

スプレッドシートで作るときに変える所

Googleスプレッドシートでも、シートの分け方と式は同じです。主な関数のSUMIFS、COUNTIF、EOMONTH、ISERRORは、Googleのヘルプに同じ名前で載っています。変わるのは、画面の操作と、共有の仕方です。社長と事務と現場担当が同時に見るなら、スプレッドシートのほうが1つのファイルを保ちやすくなります。

変える所 Excel Googleスプレッドシート
入力のリスト 「データ」の「データの入力規則」 「データ」の「データの入力規則」のプルダウン
見出しの固定 「表示」の「ウィンドウ枠の固定」 「表示」の「固定」で行数と列数を選ぶ
文字に色を付ける 「ホーム」の「条件付き書式」 「表示形式」の「条件付き書式」
式の上書きを防ぐ 色を変えて分ける 「データ」の「シートと範囲を保護」も使える
保存先 1か所に置き、回さない 共有先を必要な人だけに絞る

スプレッドシートの保護は、誤って式を消すのを防ぐためのものです。Googleのヘルプも、セキュリティ対策ではないと書いています。原価と粗利を見せたくない人がいるなら、ファイルを共有しないでください。

動かして確かめた結果

この記事の式は、2026年11月1日に、Node.js 24.22.1 の上で HyperFormula 3.5.0 を使って計算しました。HyperFormula は表計算の関数を計算するライブラリで、ExcelやGoogleスプレッドシートそのものではありません。Python 3.9.6 の openpyxl 3.1.5 で実際の .xlsx ファイルを作り、そこから入力と式を読んで計算しました。

架空の工事30件と明細300行を用意し、式を使わずにPythonで別に書いた計算と比べました。工事一覧の15列、月の確認の集計、明細の3列、合わせて1,373セルで不一致は0です。式を入れた空の行は、どの列も空のままでした。工事と明細の入力の順を混ぜて作り直しても、工事ごとの結果と月の確認の値は変わりませんでした。ただし、これは順を変えたファイルを計算したもので、Excelの並べ替えの機能を使ったものではありません。

判定の境目は、受注金額1,000,000円の工事で次のようになりました。

見込み原価 見込み粗利率 R列の表示
700,000 30.0% (空欄)
701,000 29.9% 目標割れ
1,000,000 0.0% 目標割れ
1,000,001 -0.0001% 赤字

入金の判定は、未入金のある工事で、予定日を変えて次のようになりました。

次の入金の予定日 AE列の表示
昨日 入金遅れ
今日 7日以内
7日後 7日以内
8日後 (空欄)
空 日を入れる
11月末 という文字 日を確認

動かす中で分かった、ずれやすい所は次のとおりです。

起きること 結果 この記事での手当て
明細の工事番号の最後に空白が入った(R26-012 ) その行の205,000円が工事の原価から抜け、確認に「番号なし」、原価の合計の差が205,000 リストや貼り付けで番号を入れ、B19を毎月見る
工事番号のハイフンが全角になった 同じく「番号なし」 同上
明細の工事番号が空で、金額はある 原価から抜け、確認に「番号を入れる」。原価の合計の差は0のまま B19だけでなくB18も見る
実際額に 12万 と文字で入れた 見込みの合計から抜け、確認に「金額を確認」、差額はエラー 金額は数字だけで入れる
実際額を空でなく 0 にした 予定額でなく0円で計算された まだ分からないなら空にする
区分を 外注費 と入れた 確認に「区分を確認」、内訳の合計が工事一覧より少なくなった リストから選ぶ
工事番号が2行で同じになった 確認に「番号が重複」、原価の合計の差が0でなくなった 番号は通しで1回だけ使う
追加工事を100,000円足した 受注金額と残金、未入金が同じ額だけ増えた 残金を手で書き換えない
残金の入金日を入れた後で追加工事を足した 残金が増え、未入金は0、判定は「済」のまま。増えた分の請求が見えなくなる 枝番で別の行を作る
着手金が受注金額を超え、残金が負になった 着手金の入金日だけを入れると、未入金が負で「入金が多い」。入金日が空のときや、残金の入金日まで入れたときは、この表示は出ない 金額を確かめる

動かせなかった所もあります。ExcelとGoogleスプレッドシートの実物では動かしていません。引用符付きのシート名、* を使ったCOUNTIF、空のセルの比べ方、日付の形をした文字が入ったときの動きは、実物で変わることがあります。手順6の入力規則、ウィンドウ枠の固定、条件付き書式は、ファイルに入れておらず試していません。式の下へのコピーはプログラムで再現したもので、手では試していません。式を1,000行より増やしたときの速さも測っていません。金額はすべて架空です。使う前に、架空の1工事で手計算と合うことを確かめてください。

やってはいけないこと

工事台帳で、数字を信じられなくなる失敗です。

ポイント1. 請求書が届いてから明細を入れる

発注の時点で入れないと、工事の途中の粗利はよく見えたままです。見込みの計算が意味を持つのは、予定額が先に入っているときだけです。

ポイント2. 式の列に金額を手で打つ

J列やY列に数字を打つと、以後は原価や追加工事を変えても動きません。式の列は色を変え、合わない金額があっても原価明細か入力の列で直します。

ポイント3. 工事番号を人によって書き換える

R26-012 と R26012 は別の工事として扱われ、原価がその工事に入りません。番号は工事一覧で1回だけ作り、ほかはそこからコピーするかリストで選びます。

ポイント4. 自社の手間を入れずに粗利を比べる

外注の多い工事と自社の職人の多い工事を、同じ物差しで比べられなくなります。社内の単価は粗くてもよいので、全部の工事に同じ単価を入れます。

ポイント5. 締めた工事の数字を後から書き換える

後から届いた請求があれば、締めを「完了」に戻してから直します。黙って数字だけを変えると、前の月に見た数字と合わなくなります。

Excelでは足りなくなる線

Excelやスプレッドシートから仕組みへ移す線は、行の数より、数字が遅れるかどうかで決めます。工事台帳の価値は、工事の途中で数字が見えることです。入力が遅れて見込みが古くなるなら、表は残っていても役目を果たしていません。

起きていること なぜ表では足りないか 次の手
発注の入力が月末にたまり、見込みが古い 発注と入力が別の作業になっている 発注するときの画面から予定額が入る形にする
見積書、発注書、請求書に同じ内容を打ち直している 同じ数字を複数の場所で持っている 見積もりの項目から実行予算の行を作る
入金が4回以上に分かれる工事、残金の後の追加が多い 3回の枠と枝番では追えない 請求と入金を別の記録にして、工事番号でつなぐ
現場には明細を入れてほしいが、粗利は見せたくない 同じファイルでは見える範囲を分けにくい 人ごとに見せる範囲を分ける
複数の人が同時に入れて、行のずれや上書きが起きる 1つの表を同時に書き換えている 1件ずつ保存される形にする
工事の種類や担当ごとの粗利を何年分も見たい 工事一覧の列が足りず、集計を毎回作っている 過去の工事を1つの記録に集める

1つ当てはまっても、全部を作り直す必要はありません。手で作るか開発するかの分かれ目は、ノーコードと開発の分かれ目の記事に条件を分けて書いています。

工事台帳を仕組みへ移す手順は、5つ

工事台帳を仕組みへ移すときは、表の全部を一度に置き換えず、数字が遅れている入口から順に移します。表の形がきれいなら、移す手間は小さくなります。今の表を整えることが、そのまま準備になります。

手順1. 工事番号を、見積もりから請求まで同じにする

見積書、発注書、工事写真、請求書のすべてに同じ工事番号を入れます。番号がそろっていれば、移した後に過去の記録もつなげます。

手順2. 表の決まりを言葉にして書き出す

状態の6つの意味、締める条件、手間の単価、まとめ買いの分け方、残金の後の追加の扱いを、紙1枚に書きます。今は人の頭の中にある決まりが、仕組みの仕様になります。

手順3. 最初に移す場所を1つ選ぶ

いちばん遅れている入口を選びます。この表なら、発注と請求書の入力が最初の候補です。粗利の計算は、この入力がそろえば後から作れます。

手順4. 過去の工事は、締めた行から移す

工事一覧の「締め」の行と、その原価明細を移します。全部を移すか、最近の数年だけにするかを先に決めます。表の内容を移す手順はExcelから業務システムへのデータ移行の記事に書いています。

手順5. 1か月は並べて、数字を照合する

入力は新しい仕組みだけにして、月の確認と同じ数字を両方で出して見比べます。受注の残、未確定の原価、入金遅れの件数が合えば、表を閉じて書き換えられない形で残します。

工事台帳を使い始める前のチェックリスト

工事台帳を使い始める前に、次の項目を確かめます。

  • 工事番号の付け方を決め、見積書や工事写真と同じ番号にした
  • シートを3枚、名前のとおりに作った
  • 原価明細と工事一覧の式を下の行までコピーした
  • 式の列の色を変えた
  • 状態、区分、本工事か追加かにリストを付けた
  • 手間の社内の単価を決めた
  • 目標の粗利率を、自社の締めた工事から決めた
  • 明細の金額の基準を、見積書と同じ1つにそろえた
  • 誰がいつ原価明細を入れるかを決めた
  • 発注の時点で予定額を入れる決まりを、担当に伝えた
  • 架空の1工事で手計算と合うことを確かめた
  • 月に1回、月の確認を見る日を決めた

自社でやる場合と、任せる場合

自社でやる場合は、この記事の項目と式でひな形を作ります。続けるのに要るのは、発注した担当が予定額を入れること、事務が請求書と入金を入れること、社長が月に1回見ることの3つです。どの工事を赤字と見るか、目標の粗利率を何にするか、追加工事をどこまで請求するかは、任せる場合でも会社の側でしか決められません。

任せる場合、株式会社bundlyzeは、Web・システムのことは何でも対応できます。ホームページ制作と業務システム開発を受けています。工事台帳を仕組みに移す相談はシステム開発の案内ページから、ホームページの相談はホームページ制作のご案内から受け付けています。

出典(一次情報)

ExcelとGoogleスプレッドシートの機能についての説明は、次の公式の資料に基づいています。確認日はどれも2026年11月1日です。ヘルプは更新されることがあるので、作業の前に最新のものを確かめてください。

2枚の表の分け方、32列と11列の項目、状態の6つ、判定の言葉と順番、3回の入金の枠、枝番の扱い、手間の入れ方、月に見る数字の順、赤字が見える3本の線、足りなくなる線の表、仕組みへ移す手順は、この記事で決めた進め方で、上の資料が示した手順ではありません。動かした結果は架空のデータによるもので、実際の工事の数字ではありません。

よくある質問

工事台帳とは何ですか?

工事ごとに、受注した金額とかかった原価を並べて、いくら残るかを見る表です。この記事では、社長と現場が工事の粗利を見るための社内の表として扱います。1工事を1行にした工事一覧と、原価を1件1行にした原価明細の2枚で作ると、工事の途中でも粗利の見込みが分かります。

工事台帳はエクセルで作れますか?

作れます。工事一覧と原価明細の2枚に、SUMIFSなどの関数を入れ、月に1回見る数字を別のシートにまとめます。この記事の関数は計算のライブラリで動かして確かめたもので、ExcelとGoogleスプレッドシートの実物では未実行です。使う前に架空の1工事を入れて、手計算と合うかを確かめてください。

工事台帳と工事写真台帳は違うものですか?

違うものです。工事台帳は金額を見る表で、工事写真台帳は工事の場面の写真をまとめた書類です。工事番号を同じにしておくと、金額と写真を同じ番号で探せます。工事写真台帳の作り方は別の記事に書いています。

請求書がまだ届いていない原価は、どう入れますか?

発注した時点で、原価明細に予定額を入れます。実際額が空の行は予定額で見込みに入り、請求書が届いて実際額を入れると、その金額に置き換わります。こうすると、請求書を待たずに工事の途中で粗利の見込みが分かります。

目標の粗利率は何パーセントにすればよいですか?

自社の締めた工事の数字から決めます。この記事の30%は計算の例で、目安ではありません。まず過去の工事を数件入れて粗利率を出し、会社を回すのに要る粗利から逆に考えて決めます。

この記事の書き方と確認の方針