この記事は約15分で読めます。
.png&w=3840&q=75)
監督者:白澤光純
株式会社コンクルー 代表取締役CEO
この投稿をシェアする
見積書の小計がずれる、工事台帳の集計を電卓でやっている、出面表から人工代を毎月手計算している——。実際にExcelで動作確認した30個の関数を、コピペできる数式とセル範囲つきで紹介します。見積書・工事台帳・出面表、帳票ごとに必要な関数がすぐ見つかります。
AI搭載
コンクルーAI
中小建設会社のためのAIオールインワン業務管理ツール
顧客管理・見積作成・原価管理・電子受発注・請求支払いなど全ての業務がコンクルーAIひとつで完結


見積書の小計が、明細を1行足しただけで合わなくなる。工事台帳の費目集計を、電卓で拾って手打ちしている。出面表から人工代を集計するのに、毎月同じ計算を繰り返している——。Excelで自社の帳票を作っている建設会社なら、一度はぶつかる悩みですよね。
「関数を使えば楽になる」というのは、なんとなく分かっている。でも検索して出てくる解説は、営業成績表や在庫管理表の例ばかりで、自分の見積書のどのセルに何を書けばいいのかまでは、なかなかたどり着けません。
この記事では、建設業の実務でそのまま使える30個のExcel関数を、見積書・工事台帳・出面表という3つの帳票に分けて紹介します。すべての数式は、実際にExcelで動作を確認したものだけを載せています(本文に出てくる金額・数量・社名・人名はすべて説明用の架空の例です)。コピペして、セル範囲だけ自分の帳票に合わせれば、そのまま使えるはずです。
見積書・工事台帳・出面表でよく使う場面から、実用頻度で30個の関数を選びました。まず全体を一覧で見てから、気になる帳票の章に読み進めてください。
関数名 | 主な用途 | 登場する帳票 |
|---|---|---|
ROUND | 消費税額の端数処理 | 見積書 |
ROUNDUP | 材料の必要数量を切り上げ | 見積書 |
SUMIFS | 内訳行を除いた小計の集計 | 見積書 |
SUBTOTAL | 絞り込み表示中だけの小計 | 見積書 |
VLOOKUP | 単価マスタから単価を参照 | 見積書 |
XLOOKUP | 単価マスタから単価を参照(新版) | 見積書 |
IFERROR | 品番が見つからない時のエラー処理 | 見積書 |
IF | 見積の有効期限切れを判定 | 見積書 |
TEXT | 日付を「◯年◯月◯日」で表示 | 見積書 |
EDATE | 発行日から有効期限を計算 | 見積書 |
SUMIF | 工事番号ごとの原価集計 | 工事台帳 |
COUNTIFS | 支払期日超過・未入金の件数 | 工事台帳 |
AVERAGEIFS | 工事×費目の平均支出額 | 工事台帳 |
EOMONTH | 支払期日(翌月末)の自動計算 | 工事台帳 |
MONTH | 月次集計用のキーを取り出す | 工事台帳 |
IFS | 粗利率を3段階で判定 | 工事台帳 |
MAXIFS | 費目内の最大支出を検出 | 工事台帳 |
MINIFS | 費目内の最小支出を検出 | 工事台帳 |
RANK | 工事別の粗利ランキング | 工事台帳 |
TODAY | 支払期日までの残日数 | 工事台帳 |
COUNTA | 出勤記録の総件数 | 出面表 |
COUNTIF | 現場別の出勤日数集計 | 出面表 |
NETWORKDAYS | 土日を除いた稼働日数 | 出面表 |
WEEKDAY | 休日出勤の判定 | 出面表 |
SUMPRODUCT | 人工×日当の一括集計 | 出面表 |
AVERAGEIF | 職人ごとの平均日当 | 出面表 |
DATEDIF | 勤続年数の計算 | 出面表 |
TEXTJOIN | 担当現場を1セルにまとめる | 出面表 |
MAX | 日当単価の最高値を確認 | 出面表 |
ROUNDDOWN | 時給精算の端数切り捨て | 出面表 |

見積書まわりでは、内訳のある明細の集計、単価マスタからの単価参照、端数処理、有効期限の管理という4つの場面で関数を使います(登場する10個は冒頭の一覧表を参照してください)。内装工事の見積書そのものの構成や書き方を先に整理したい方は、内装工事の見積書の書き方とは?基本構成や費用の内訳、注意点を解説もあわせてご覧ください。
「外壁塗装工事一式 350,000円」の下に、内訳として「内 材料費 80,000円」「内 労務費 225,000円」「内 諸経費 45,000円」と書く見積、よく見かけますよね。これをそのまま`=SUM(G10:G15)`で合計すると、350,000円の内訳をもう一度足してしまい、金額が二重に膨らみます。内訳の行にだけ「内」フラグを立てておき、`=SUMIFS(G10:G15,C10:C15,"<>内")`(フラグ列C10:C15が「内」以外の行だけを合計)とすれば、内訳を除いた小計だけが出ます。この例では476,000円が正しい小計です。ありがちな失敗は、フラグ列を作らずに目で見て手計算し、行の増減のたびに合計がずれることです。
小計に消費税10%をかけると、端数が出て割り切れないことがあります。`=ROUND(G32*0.1,0)`(G32=税抜小計)で、円未満を四捨五入します。この例では、税抜小計590,719円に対して消費税は59,072円になります。なお、インボイス制度では消費税額の端数処理は1つの請求書につき税率ごとに1回、と決まっています。明細行1つずつで端数処理をしてから合計するのではなく、小計に対して1回だけROUNDをかけてください(出典:国税庁「No.6371 端数計算」)。
塗装面積120.4m²を、1缶で8m²塗れる塗料で見積もると、120.4÷8=15.05缶と割り切れない数量になります。`=ROUNDUP(B28/B29,0)`(B28=面積、B29=1缶あたりの施工可能面積)で切り上げれば16缶です。ROUNDで四捨五入すると15缶になり、現場で1缶足りなくなります。材料の必要数量は、常に切り上げで安全側に見積もるのが基本です。
品番ごとの単価を「単価マスタ」シートに一元管理しておけば、見積書側では品番を入力するだけで単価が自動で入ります。古いExcelでも使えるのがVLOOKUPで、`=VLOOKUP(B20,単価マスタ!$A$2:$D$9,4,FALSE)`(品番B20を単価マスタの1列目で探し、4列目の単価を返す)と書きます。新しいExcelならXLOOKUPのほうが書きやすく、`=XLOOKUP(B20,単価マスタ!$A$2:$A$9,単価マスタ!$D$2:$D$9,"要確認")`のように、見つからなかった時に表示する値(第4引数)を関数の中で直接指定できます。VLOOKUPには見つからなかった時の指定がないので、`=IFERROR(VLOOKUP(B20,単価マスタ!$A$2:$D$9,4,FALSE),"要確認")`のようにIFERRORで包み、単価マスタにまだ登録していない品番のときに#N/Aで数式が止まるのを防ぎます。ありがちな失敗は、VLOOKUPの最後の引数「FALSE」を書き忘れることです。省略すると近似一致になり、似た品番の単価を誤って拾うことがあります。
材料明細をオートフィルタで品番ごとに絞り込んだとき、`=SUM(G20:G24)`は非表示になった行も含めて合計してしまいます。`=SUBTOTAL(109,G20:G24)`にしておけば、フィルタで隠れた行を除いた、画面に見えている行だけの小計が自動で出ます。集計方法の番号「109」は、フィルタと手動での非表示の両方を除外する設定です。SUMのまま運用していて、絞り込んだ小計の数字を信じて発注し、あとで数量が合わなかった、という失敗はよくあります。
見積書の発行日を起点に、有効期限を自動で出しておくと便利です。`=EDATE(B3,1)`(B3=発行日)で、1か月後の日付を計算します。年をまたぐ月でも正しく計算されるのがEDATEの利点です。さらに`=IF(TODAY()>B4,"期限切れ","有効")`(B4=有効期限)を横に置いておけば、見積書を開くたびに、今日の時点で有効かどうかが自動で表示されます。有効期限を毎回手で数え直して書き換えている場合は、ここを自動化するだけでも入力ミスが減ります。
セルの日付は、そのままだと「2026/8/10」のような表示になりがちです。`=TEXT(B3,"yyyy年m月d日")`とすれば、「2026年8月10日」という、お客様に出す書類らしい表記に変えられます。書式記号を"yyyy/mm/dd"に変えれば、逆にスラッシュ区切りにそろえることもできます。TEXTで変換した結果は文字列になるので、あとから日数計算に使いたいセルにはこの結果を使わない、というのがありがちな失敗への対策です。

工事台帳は、工事ごとにかかったお金と、請求・入金の状況をまとめて管理する台帳です。工事台帳そのものの位置づけや保存期間について知りたい方は工事台帳は建設業法で作成義務あり?保存期間や項目、目的を徹底解説を、原価の上限をあらかじめ決めておく実行予算については建設業における実行予算とは?内訳や作成する目的、注意点を徹底解説をあわせてご覧ください。ここでは、日々の原価明細から工事台帳を組み立てる関数を10個、紹介します(登場する関数は冒頭の一覧表を参照してください)。
材料費・外注費・労務費・経費を、支払いが発生するたびに「原価明細」シートへ1行ずつ記録していく運用にしておくと、工事番号ごとの原価計は`=SUMIF(原価明細!$B$2:$B$23,A3,原価明細!$E$2:$E$23)`(A3=工事台帳側の工事番号、原価明細のB列を条件に、E列の金額を合計)で自動集計できます。ある工事の例では、材料費・労務費・経費の3件が合計され、原価計は460,000円になります。工事台帳に金額を直接手入力していると、原価明細との数字がいつの間にかずれます。原価は常に原価明細から拾う、という順番を崩さないのがコツです。
請求日から「翌月末払い」の支払期日を出すには、`=EOMONTH(D23,1)`(D23=請求日)を使います。6月30日に請求すれば、EOMONTHが7月31日を自動で返します。入金日が空欄のまま支払期日を過ぎている請求書を数えるには、`=COUNTIFS(G23:G28,"",F23:F28,"<"&TODAY())`(入金日が空欄、かつ支払期日が今日より前の行を数える)とします。個々の請求書について「支払期日まであと何日か」を見たいときは、`=F23-TODAY()`(支払期日−今日)で残日数が出ます。マイナスなら、その分だけ期日を過ぎているという意味です。入金確認を月末にまとめてやっていると、期日超過に気づくのが遅れがちです。この3つを並べておけば、督促すべき請求書が数字で浮かび上がります。
原価明細の日付から`=MONTH(A2)`で月の数字だけを取り出しておくと、この列を条件にSUMIFやSUMIFSで「6月の原価計」「7月の原価計」のような月次集計がすぐに組めます。日付をそのまま条件にすると、同じ月でも日が違うたびに一致しなくなるので、月だけを取り出した列を1本用意しておくのがポイントです。
同じ工事・同じ費目の支出が、いつもと比べて高すぎないかを確認したいときは、`=AVERAGEIFS(原価明細!$E$2:$E$23,原価明細!$B$2:$B$23,"K-002",原価明細!$D$2:$D$23,"材料費")`(工事番号と費目、2つの条件で平均を出す)が使えます。この例では347,500円になります。費目全体で見て一番高額だった支払いは`=MAXIFS(原価明細!$E$2:$E$23,原価明細!$D$2:$D$23,"材料費")`、逆に一番安かった支払いは`=MINIFS(原価明細!$E$2:$E$23,原価明細!$D$2:$D$23,"材料費")`で検出できます。相見積もりを取った外注費が、実際に一番安いところに発注できているかの確認にも使えます。MAXIFS・MINIFSはExcel 2019以降の関数なので、バージョンの注意点は後述の「よくある質問」にまとめました。
粗利率(粗利÷請負金額)を計算したら、`=IFS(G3>=0.3,"優良",G3>=0.15,"標準",TRUE,"要注意")`(G3=粗利率)のように、3段階で自動判定できます。最後の条件をTRUEにしておくと、どの条件にも当てはまらなかった行が漏れずに「要注意」に入るので安全です。工事同士を粗利の大きさで比べたいときは`=RANK(F3,$F$3:$F$8)`(F3=粗利、$F$3:$F$8=比較対象の範囲)で、儲かった順に順位がつきます。IFSも新しめの関数なので、古いExcelではIFのネスト(`=IF(G3>=0.3,"優良",IF(G3>=0.15,"標準","要注意"))`)で代用してください。

出面表は、誰がどの現場に何日入ったかを記録する表です。作業日報と役割が近いので、両方の違いや使い分けを整理したい方は建設業の作業日報の目的や記載内容、テンプレート、効率化の方法とはもあわせてご覧ください。ここでは、出面の記録から人工代の集計までをつなげる関数を10個、紹介します(登場する関数は冒頭の一覧表を参照してください)。
出面を「日付・職人名・現場名・人工数・日当単価」を1行ずつ並べた表で記録していくと、`=COUNTA(B3:B22)`(職人名の列で、空欄でないセルを数える)で、記録済みの総件数がすぐ分かります。入力漏れのチェックにも使えます。特定の現場に何日分の記録があるかは、`=COUNTIF(C3:C22,"A現場")`で数えられます。この例ではA現場が12件です。表への入力が増えるほど、こうした集計を手で数え直すのは現実的でなくなるので、早めに関数任せにしておくと楽です。
ある期間の実働日数(土日を除く)を知りたいときは、`=NETWORKDAYS(B26,D26)`(B26=開始日、D26=終了日)を使います。7月1日〜10日の10日間なら、土日を除いた8日が返ります。第3引数に祝日の日付範囲を渡せば、祝日も除外できます。個々の出勤記録が休日にあたるかどうかは、`=IF(WEEKDAY(A3,2)>=6,"休日出勤","平日")`で判定します。WEEKDAYの第2引数を2にすると、月曜=1〜日曜=7という並びになるので、6以上なら土日、という単純な条件で判定できます。休日出勤の割増賃金を計算する下準備としても使えます。
出面表に「金額」の列をわざわざ作らなくても、`=SUMPRODUCT(D3:D22,E3:E22)`(D列=人工数、E列=日当単価)とすれば、行ごとの人工数×日当単価を掛け合わせてから合計まで、1つの数式で終わります。この例では労務費の総額は434,000円です。SUMPRODUCTは配列同士をそのまま掛け算できるので、特殊な入力方法もいりません。行を追加・削除しても、範囲さえ合わせておけば集計は自動で追随します。
特殊な作業がある日だけ日当を上げている場合など、職人ごとの平均日当を見たいときは`=AVERAGEIF(B3:B22,"山田",E3:E22)`(職人名が「山田」の行だけを対象に、日当単価の平均を出す)が使えます。全体の中で一番高い日当単価を確認したいときは`=MAX(E3:E22)`です(この例では28,000円)。予算オーバーの兆候を早めにつかむのに使えます。名前の表記が「山田」と「山田さん」のように揺れていると、AVERAGEIFが別人として扱ってしまうので、名簿の表記は統一しておいてください。
入社日から今日までの満年数は、`=DATEDIF(B33,TODAY(),"Y")`(B33=入社日、"Y"=満年数だけを返す)で計算できます。複数の現場をかけもちしている職人の担当先を1セルにまとめて見せたいときは、`=TEXTJOIN("・",TRUE,D33:F33)`(区切り文字「・」、TRUE=空欄を無視する)が便利です。担当現場が2つしか埋まっていなくても、TRUEの指定で空欄を自動的に読み飛ばし、「A現場・B現場」のようにきれいにつながります。
半日勤務や時間単位の精算で、時給1,850円×6.5時間=12,025円のように端数が出ることがあります。`=ROUNDDOWN(B39*B40,-1)`(B39=時給、B40=稼働時間、桁数を-1にして10円未満を切り捨て)とすれば、支給額は12,020円になります。切り捨てにするか四捨五入にするかは会社ごとのルール次第ですが、あとで揉めないよう、どちらの方式かを就業規則や取り決めに明記しておくと安心です。
ここまでの30個は、土台になるシートの作り方が崩れていると、かえってエラーの温床になります。自社で配布しているテンプレートでも徹底している、3つの原則を最後に共有します。
ここまでの数式を、自分で1から組む時間がない場合は、すでに数式を組み込んだテンプレートを使う方法もあります。建設業の見積書テンプレート【無料・登録不要】原価・粗利まで見えるエクセルには、見積書と単価マスタの参照、原価・粗利の計算がすでに組んであります。工事ごとの原価と粗利をまとめて管理したい場合は、建設業の工事台帳テンプレート【無料・登録不要】原価・粗利まで見えるエクセルが、この記事の工事台帳の考え方をそのまま形にしたものです。どちらも登録不要・無料でダウンロードできます。
ここまでの30個を使えば、見積書・工事台帳・出面表の集計や検索は、かなりの部分を自動化できます。ただし、関数だけでは埋まらない手間も残ります。見積書で確定した金額を、工事台帳にもう一度入力する。工事台帳の原価を、請求書にまた転記する。ファイルが現場ごと・月ごとに増えていって、どれが最新か分からなくなる——といった「転記」と「ファイル管理」の手間です。
株式会社コンクルーが提供する建設業向け業務管理クラウド「コンクルーAI」は、見積で確定した内容が原価管理や請求までそのままつながる仕組みで、この転記の手間を減らします。ただ、いきなり乗り換える必要はありません。まずはこの記事の関数で、今の帳票の集計を楽にするところから始めてみてください。
この記事の関数の大半は、古いバージョンのExcelでも使えます。ただし次の5つは比較的新しく追加された関数で、Excel 2016以前では使えません。自社のExcelのバージョンを確認してから使ってください。
古いExcelでどうしても使いたい場合は、XLOOKUPはVLOOKUP、IFSはIFのネストで代用できます(数式は長くなります)。
読み込んで開くことはできます。この記事で紹介したXLOOKUP・IFS・MAXIFS・MINIFS・TEXTJOINも、Googleスプレッドシートに用意されています(出典:Google ドキュメント エディタ ヘルプ「IFS」)。ただし、SUBTOTALの集計方法の指定など、Excelとは細かく挙動が違う関数もあります。乗り換える前に、自社の帳票で実際に数式を開いて、想定どおりの結果になるか確認してください。
#REF!は、数式が参照していたセルや行・列を削除したときに出るエラーです。行や列を消す前に、その行が他の数式から参照されていないか確認してください。#N/Aは、VLOOKUPやXLOOKUPで探している値が、参照先の表に見つからないときに出ます。この記事のIFERRORの使い方のように、見つからなかったときの表示をあらかじめ決めておくと、エラーで数式が止まらなくなります。#VALUE!は、文字列と数値を計算しようとしたときによく出るので、単価や数量のセルに余計な空白や文字が混ざっていないか確認してください。
見積書・工事台帳・出面表で使う30個の関数を、実際に動作を確認した数式つきで紹介しました(全体の一覧は、この記事の冒頭の表を参照してください)。関数は覚えるものというより、自分の帳票のどのセルに当てはめるかが分かれば、あとはコピペで使えるようになります。まずは、いま一番手間のかかっている集計——費目別の合計や、人工代の集計あたりから、1つずつ置き換えてみてください。