エクセルで見積番号を自動で振る方法(月ごとに001から・通し番号の2通り)【LibreOfficeで計算して確認】
見積書を出すたびに番号を手で打っていると、欠番や重複が起きがちです。この記事では、見積の日付から見積番号を自動で出す式を2通り紹介します。1つは「Q202610-001」のように月ごとに001から数え直す形、もう1つは「Q-0001」のような通し番号です。
出典: 筆者がLibreOfficeで計算して確認(検証スクリプト: site/verify/estimate_number.py)。外部サイトの説明は参照していません。Excelでは未確認です。使うのはIF・TEXT・COUNTIFS・EOMONTH・ROW・COUNTIFだけですが、本番の台帳に使う前に、数行で確かめてください。
番号の付け方(桁数、頭の文字、年度で区切るかどうか)に決まりはありません。この記事の形は、検証のために決めた「一つの例」です。取引先や社内のルールがあれば、そちらが優先です。
先に結論
台帳の2行目から下に見積を並べ、A列に見積日を入れる場合の式です(日付は古い順に上から並べる前提です)。
B2 (月ごとの見積番号):
=IF(A2="","","Q"&TEXT(A2,"yyyymm")&"-"&TEXT(COUNTIFS($A$2:A2,">="&DATE(YEAR(A2),MONTH(A2),1),$A$2:A2,"<="&EOMONTH(A2,0)),"000"))
C2 (通し番号):
=IF(A2="","","Q-"&TEXT(ROW()-1,"0000"))
D2 (重複チェック):
=IF(B2="","",IF(COUNTIF($B$2:$B$200,B2)>1,"重複","OK"))
B2を下へコピーすると、範囲の始まり($A$2)は固定され、終わり(A2)だけが行ごとにずれます。つまり「その行までに、同じ月の日付が何件あったか」を数えて、それが連番になります。
TEXT(A2,"yyyymm")で日付が「202610」の形になります。TEXT(…,"000")で連番が3桁(001、002…)になります。- 日付が空の行は
IF(A2="","",…)で空欄になり、エラーになりません。 - C列の
ROW()-1は「2行目なら1」です。表の1行目が見出しの場合の数え方です。
実際に計算した結果
次の14行で計算しました(同じ日付が2行ある日も含みます)。
| 見積日 | 月ごとの番号 | 通し番号 |
|---|---|---|
| 2026/09/28 | Q202609-001 | Q-0001 |
| 2026/09/30 | Q202609-002 | Q-0002 |
| 2026/10/01 | Q202610-001 | Q-0003 |
| 2026/10/01 | Q202610-002 | Q-0004 |
| 2026/10/15 | Q202610-003 | Q-0005 |
| 2026/10/31 | Q202610-004 | Q-0006 |
| 2026/11/01 | Q202611-001 | Q-0007 |
| 2026/11/02 | Q202611-002 | Q-0008 |
| 2026/12/31 | Q202612-001 | Q-0009 |
| 2027/01/01 | Q202701-001 | Q-0010 |
| 2027/01/01 | Q202701-002 | Q-0011 |
| 2024/02/29 | Q202402-001 | Q-0012 |
| 2024/02/29 | Q202402-002 | Q-0013 |
| 2024/03/01 | Q202403-001 | Q-0014 |
14行すべて、月ごとの番号・通し番号・重複チェック(すべて「OK」)が期待値と一致しました。月が変わると001に戻り、年が変わっても「202612」から「202701」に切り替わります。うるう日(2024/02/29)も問題ありませんでした。
見るところを2つ挙げます。
- 同じ日に2件あっても番号は別になります。 2026/10/01の2件は、001と002に分かれました。
- 月の範囲は
DATE(YEAR,MONTH,1)からEOMONTH(…,0)(月末)までです。 「月だけ」で数えると別の年の同じ月が混ざるため、年も含めて範囲を決めています。
追加で確認したこと
- 途中に空行があっても、そのほかの行の番号は変わりませんでした(空行の番号欄は空)。ただし、行を削除すると、下の行の番号は詰まります。
- 同じ月に1,001件入れると、
Q202610-999、Q202610-1000、Q202610-1001となり、1,000件目から連番が4桁になります。実務ではほぼ起きませんが、桁をそろえたいなら"0000"にします。 - ランダムな日付500件(2026〜2027年、古い順)で、整数計算の期待値と全件一致しました。
つまずきやすい点
- 並べ替えると番号が変わります。 この式は「上から数えて何件目か」で番号を決めるため、台帳を新しい順に並べ替えたり、途中に行を挿入したりすると、すでに相手に渡した見積番号と食い違います。実際に、同じ14件を逆順に並べた表で試すと、先頭の行が
Q202403-001になりました。番号を出したら、「値だけ貼り付け」で固定するのが安全です。 - 通し番号の
ROW()-1は、行の位置そのものです。行を削除すると、その下の番号が1つずつ繰り上がります。欠番を出したくない書類の番号には、そのままでは向きません。 - 日付が文字列になっていると数えられません。 「2026-10-15」のような見た目でも、文字列だと
COUNTIFSの範囲に入りません。見積日の列は日付の形式にしてください。 - TEXTの書式は環境で違うことがあります。
"yyyymm"はLibreOfficeで確認した形です。Excelの表示言語が日本語以外の環境では書式の文字が変わる場合があります(Excelでは未確認)。
注意点: この記事ができないこと
- 複数人が同時に台帳を開いて番号を振る場合の重複防止はできません。
- 年度(4月始まりなど)で区切る、取引先ごとに別の連番にする、といった付け方は扱いません。
- 番号を自動で「確定」することはできません。最終的な管理は、台帳の運用ルールで決めてください。
見積書のひな形が必要なら
この記事の式は、自分で作った台帳にそのまま使えます。工事・リフォーム向けのひな形を探しているなら、運営者が作った工事・リフォーム用 見積書テンプレート(Excel・980円)があります。数量×単価(四捨五入)、諸経費率、値引き、消費税10%(切り捨て)、税込合計を自動計算し、明細は20行、A4縦1枚で印刷できます。見積番号を自動で振る機能は、この商品にはありません(番号の欄に手で入力します)。軽減税率の混在や、インボイス要件の保証もできません。Excelの確認はWindowsデスクトップ版16のみです。(これは運営者の商品の案内です。)
見積の合計を先にさっと確かめたいときは、無料の見積の合計計算ツールも使えます(入力は外部に送信されません)。計算の順番と端数処理は、見積書の合計・税込計算をExcelで自動にする式で解説しています。
まとめ
- 月ごとに001から振り直すなら、
COUNTIFSで「その行までの同じ月の件数」を数えてTEXT(…,"000")で桁をそろえる - 通し番号なら
ROW()-1が手軽だが、行の削除で番号がずれる - 日付は古い順に並べる。並べ替えや行の挿入をすると番号が変わるので、出した番号は値で固定する
- 14行・空行・逆順・1,001件・ランダム500件の計1,570件はLibreOfficeで一致。Excelでは未確認のため、本番の台帳は数行で確かめる
参考にした情報
- 出典: 筆者がLibreOfficeで計算して確認(検証スクリプト: site/verify/estimate_number.py)