見積の自動計算はExcelでどこまでできる?単価表の軸を2本から5本に増やして数式を数えた

Excel(エクセル)で見積を自動計算する表は、単価表の軸が増えるほど、参照の数式と、ルールを変えたときに直すセルが増えます。見積帳場が架空の単価で軸を2本から5本に増やした見積シートを作ると、組み合わせごとの単価表では、材質を1つ足すだけで書き換わるセルが12から576に増えました。IFの入れ子で書いた単価の数式は5,345字になり、材質をあと2種足すとExcelの上限8,192字を超えて開けませんでした。軸ごとに表を分ければ直すのは7セルで済みます(2026年10月時点)。
全体の流れと費用は製造業の見積の自動化のページにまとめています。
要点
- Excelの見積表は、単価表の軸(材質・板厚・数量段・表面処理・特急)が増えるほど、直すセルと数式の長さが増えます。
- 架空の単価で軸を5本にすると、組み合わせ表は288行になり、材質を1つ足すと576セルが書き換わりました(見積帳場の計算)。
- IFの入れ子で書くと単価の数式は1つ5,345字、IFは11段で、材質を5種にすると8,931字になり、数式の上限8,192字を超えて入力できませんでした。
- 軸ごとに表を分けると直すのは7セルですが、表面処理の単価が材質で変わるように軸どうしが絡むと使えません。
目次
Excelの見積表は、単価表の軸が何本まで保てますか?
軸どうしが独立していて、軸ごとの表に分けられるなら、軸5本でもExcelで直しやすい見積表を保てます。軸どうしが絡むと、単価表の行か数式のどちらかが軸の掛け算で膨らみます。見積の自動化の進め方のうち、Excelで組む場合の限界を測りました。見積帳場が架空の単価で作った見積シート(明細20行)の数は、次のとおりです。
| 型 | 軸2本 | 軸3本 | 軸4本 | 軸5本 |
|---|---|---|---|---|
| A型 IFの入れ子:単価の数式の字数 | 196 | 844 | 2,726 | 5,345 |
| A型 IFの入れ子:IFの段数 | 5 | 8 | 10 | 11 |
| B型 組み合わせ表:表の行数 | 12 | 48 | 144 | 288 |
| B型 材質を1つ足すと書き換わるセル | 12 | 64 | 240 | 576 |
| C型 軸ごとの表:材質を1つ足すと書き換わるセル | 7 | 7 | 7 | 7 |
軸は、材質3種×板厚4種の2本から、数量段(1・10・100・1,000個)、表面処理3種、特急の有無の順に足しました。3つの型は、同じ明細に同じ合計を出します。軸5本の合計は1,738,046円です。手元のExcel(バージョン16.0)で12冊を開いて再計算し、すべてPythonの計算と一致しました。
軸を2本から5本に増やすと、数式はどう変わりましたか?
IFの入れ子で書くA型は、軸を1本足すたびに単価の数式が2倍から4倍余りに伸び、軸5本で1つ5,345字になりました。IFの段数は5段から11段でした。Excelの関数のネストの上限64段には届きません。先に詰まるのは、数式の長さの上限8,192字のほうです。
軸5本のまま材質を4種にすると7,155字、5種で8,931字でした。5種の版は、Microsoftが公開している数式の長さの上限8,192文字を超えるため、Excelではこの数式を入力できません。手元では、Pythonで数式を書き込んだブックをExcelで開く処理も失敗しました。
B型とC型の単価の数式は、軸5本でもそれぞれ87字と126字です。参照の数式セルは、どの型も43〜63個で、軸の本数ではほとんど変わりません。
数は、openpyxlで生成したブックのセルを読んで数えました。要点は次の3行です。
wb0 = build(k, typ, make_rules()) # 元のブック
wb1 = build(k, typ, make_rules(add_mat=True)) # 材質を1つ足したブック
changed = diff(snapshot(wb0), snapshot(wb1[0])) # 値・数式・名前が変わったセルの数
単価を1つ変えるとき、直すセルはいくつですか?
単価を1つ上げるだけなら、C型は1セル、B型は軸5本で24セル、A型は明細の数式20個すべてです。B型では、SUS304・2.3mmの基本単価が24行に書かれています。数量段・表面処理・特急の組み合わせの数だけ、同じ単価が並ぶからです。
材質を足すと、差はもっと開きます。B型は軸5本で96行×6列の576セルを足し、C型は基本単価の1行5セルと名前つき範囲2つの7か所で済みました。A型は20個の数式すべてが書き換わり、1つの数式に材質の分岐が丸ごと入ります。
A型の20セルは少なく見えます。ただ、1セルが数千字あります。1行だけ古い数式が残ると、その行だけ違う金額が出ます。目では気づけません。
私が見積表を引き継ぐときも、最初に全行の数式が同じかを確かめます。
IFの入れ子とVLOOKUPは、どちらで組めばよいですか?
単価の規則は数式に書かず、表に置いて参照する形が向いています。Microsoftのサポートの「IF関数 - 入れ子になった数式と落とし穴の回避」も、同じ考え方です。IFは64個まで入れ子にできるが勧めない、と書いています。複数のIFは保守管理が非常に困難で、多くの場合VLOOKUPで代えられる、という説明です。
表の分け方は、軸どうしが独立しているかで決まります。表面処理の足し額が材質によらず同じなら、C型のように軸ごとの表に分けられます。単価の変更は1セルで済みます。
めっきの単価が材質で変わる、特急の割増が数量で変わる、といった絡みもあります。その場合、絡む2本の軸は1枚の表にまとめるしかありません。絡む軸の組が増えるほど、表はB型に近づいて行が膨らみます。
限界もあります。今回の単価は架空で、軸どうしは独立にしてあります。最低料金や「100個未満だけ特急不可」のような例外は入れていません。例外は表に置きにくく、IFが数式に戻ってくる場所です。
見積表をアプリに移す目安は、何ですか?
単価表の行が軸の掛け算で増え始めたときと、例外の規則がIFで数式に戻り始めたときが目安です。Excelの上限に届く前でも、直すセルの数と直し漏れの危険は増え続けます。
| 見積表の状態 | 起きること | 合う方法 |
|---|---|---|
| 軸どうしが独立 | 単価を変えても1セル | Excelのまま(軸ごとの表) |
| 絡む軸があり、組み合わせ表で持つ | 材質1つで軸4本なら240セル | 絡む軸だけを1枚の表にまとめ直す |
| 最低料金・特急の条件などがIFに入る | 規則が数式に散らばる | 規則を書き出してアプリへ |
| 複数人が同時に使い、変更の履歴が要る | 誰がいつ単価を変えたか追えない | アプリへ |
アプリでは、軸は入力の選択肢、単価は表、例外は名前のついた規則として別々に持てます。規則が数式に散らばりません。値決めの判断そのものは人に残し、計算と根拠の表示を機械に任せます。
どの方法で見積を出すかの比べ方は、見積システムの方式の比較にまとめました。単価の積み上げ方そのものはアワーレートと見積単価の計算機で確かめられます。
Excelの限界を自社で確かめるには?
見積帳場では、今のExcelの見積表の単価表と計算ルールを読み解き、御社の決め方のまま見積の画面に移します。何をどう頼むか決まっていなくても大丈夫です。御社のやり方に合わせて、進め方を一緒に考えます。
準備は要りません。今のExcelの表を見ながら話したいときは、無料で相談するのページへどうぞ。
よくある質問
- XLOOKUPやIFS関数を使えば、この問題は消えますか?
- いいえ。数式は短くなりますが、組み合わせ表の行が軸の掛け算で増えることは変わりません。
- Excelの見積表を、そのままアプリに移せますか?
- はい。単価表の値と計算の順番はそのまま使えます。移すときに、IFの中に埋もれた例外の規則を書き出し、表と規則に分け直すのが主な作業です。
- 軸の数は、どう数えればよいですか?
- 単価が変わる理由の数で数えます。材質・板厚・数量・表面処理・納期のように、選ぶと単価が変わる項目がそれぞれ1本の軸です。最低料金のような例外は軸とは別に数えます。
- スプレッドシートのクラウド版でも同じですか?
- 型ごとに直すセルの数が増える仕組みは同じです。数式の長さや入れ子の上限はExcelの値なので、使っている製品の公式の仕様で確かめてください。
この数字はどう出したか
このページの実験と計算の数字は、実際のお客さまの取引ではなく、架空のデータや架空の入力例から主宰が出したものです。計算はPythonのコード(scripts/figsの再現コードと、画面の計算機と同じ式のsrc/lib/calc.ts)で組み、同じ入力なら同じ数字が出ます。
更新 ・ 事実の確認
出典
- Microsoft サポート「Excel の仕様と制限」(Excel for Microsoft 365・2024・2021・2019・2016。数式の長さ8,192文字、関数のネスト64)(2026年10月16日確認)
- Microsoft サポート「IF 関数 - 入れ子になった数式と落とし穴の回避」(2026年10月16日確認)
- 見積帳場の計算(2026年10月16日、架空の単価・明細20行。軸2〜5本×3つの型の見積シートを openpyxl で生成し、手元の Excel で再計算。scripts/figs/excel_quote_sheet_limits.py)(2026年10月16日確認)


