Excelで見積書を作成すると、材料などの明細が増えるにつれて表が複雑になり、必要な情報を探すのが大変になります。
そんなときに役立つのが FILTER関数 です。条件に合うデータだけを抽出できるため、見積の内訳をすっきり整理する第一歩になります。
さらに、抽出した複数のリストを VSTACK関数 で縦に積み上げ、HSTACK関数 で横に並べれば、明細表を自動で整形することが可能です。
コピー&貼り付けや複雑なマクロを使わなくても、最新のExcel関数だけで「見積明細の整理」ができるのは大きなメリットです。
👉 この仕組みを理解しておくと、次回の「関数による見積書自動化完成」へスムーズに進めます
関連記事
- 第1回:LETで計算式を整理
- 第2回:FILTER・VSTACK・HSTACKで明細を整理
- 第3回:XLOOKUPで品目コードから単価を自動参照
👉 完成版は BOOTHショップ 「P!rosh Lab」 にて公開中です。
[BOOTHショップはこちら]
FILTER関数の基本
FILTER関数は「条件に合うデータだけを抽出する」ための新しい関数で、見積明細の整理に直結します。まずはこの基本を押さえることが重要です。
概要
- 役割:指定した条件に一致するデータだけを抽出
- 従来との違い:オートフィルターのように手動操作せず、数式で自動抽出できる
- 対応バージョン:Microsoft 365、Excel 2021以降
構文
=FILTER(配列, 条件, [一致しないときの値])
- 配列:抽出元となるデータ範囲
- 条件:抽出条件(TRUE/FALSEで評価される式)
- 一致しないときの値:条件に合うデータがない場合に返す値(省略可)
基本例
例えば、A列に「地域」、B列に「売上」がある場合
=FILTER(A2:B10, A2:A10="東京", "該当なし")
👉 「地域」が「東京」の行だけを抽出し、該当がなければ「該当なし」と表示。

応用例
- 数値条件:数量が1以上の明細だけを抽出
=FILTER(A2:D20, D2:D20>=1, "該当なし") - AND条件(かつ):地域が「東京」かつ売上が100以上
=FILTER(A2:B20, (A2:A20="東京")*(B2:B20>=100)) - OR条件(または):地域が「東京」または「大阪」
=FILTER(A2:B20, (A2:A20="東京")+(A2:A20="大阪"))
見積書での活用イメージ
- 数量が0の明細を除外 → FILTERで必要な行だけ抽出
- 特定の顧客や案件だけを表示 → 条件を顧客名に設定
- 抽出結果をVSTACKで積み上げ、HSTACKで合計列を追加 → 明細表が自動整形される
まとめ
- FILTER関数は「条件抽出」を自動化する基礎関数
- 見積書の明細整理では「不要な行を除外」する第一ステップに最適
- この理解が次の VSTACK/HSTACK へつながる
VSTACK関数の基本ポイント
VSTACK関数は「複数の範囲や配列を縦方向に積み上げて1つの表にまとめる」ための新しい関数です。Excel見積書の明細整理に欠かせない基礎機能です。
- 意味:Vertical(縦)+ Stack(積み重ねる) → 縦方向に結合
- 構文:
=VSTACK(範囲1, 範囲2, …)- 引数に指定した範囲を順番に下へ積み上げて結合
- 動作:スピル関数なので、結果は自動的に複数セルに展開される
- 対応環境:Microsoft 365、Excel 2024、Web版Excel
- 制約:列数が一致していないと
#N/Aエラーが出る
利用シーン
- 部署ごとの売上表を縦にまとめて「全社一覧」を作成
- 月ごとのリストを積み上げて「年間データ」に整理
- FILTER関数と組み合わせて「条件に合うデータだけを縦に結合」
- 別シートにある複数の表を一つに統合して最新状態を自動反映
実例
例えば、A2:C4 に「材料費」、E2:G4 に「工数費」がある場合
=VSTACK(A2:C4, E2:G4)
👉 材料費と工数費の表を縦に結合し、1つの一覧表として表示。

まとめ
- VSTACKは「縦方向に結合」する新関数
- 複数の範囲を一瞬で統合できるため、コピー&貼り付けやマクロ不要
- FILTERやSORTなどと組み合わせると、見積明細や売上データの整理に非常に便利
HSTACK関数の基本ポイント
VSTACKが「縦方向に積み上げる」のに対して、HSTACKは「横方向に並べる」ための関数です。
Excel見積書の明細整理で「合計列」や「補足情報列」を追加する際に役立ちます。
- 意味:Horizontal(横)+ Stack(積み重ねる) → 横方向に結合
- 構文:
=HSTACK(範囲1, 範囲2, …)- 引数に指定した範囲を順番に右へ並べて結合
- 動作:スピル関数なので、結果は自動的に複数セルに展開される
- 対応環境:Microsoft 365、Excel 2024、Web版Excel
- 制約:行数が一致していないと
#N/Aエラーが出る
利用シーン
- 明細表の右側に「合計列」や「消費税列」を追加
- 部署ごとの売上を横方向に並べて比較
- FILTERで抽出した結果に「補足情報列」を追加
- 複数の計算結果を横並びにして一つの表にまとめる
実例
例えば、A2:A4 に「品目」、B2:B4 に「単価」、C2:C4 に「数量」がある場合
=HSTACK(A2:A4, B2:B4, C2:C4)
👉 品目・単価・数量の列が横方向に結合され、1つの表として表示されます。
さらに「合計列」を追加するなら
=HSTACK(A2:A4, B2:B4, C2:C4, B2:B4*C2:C4)
👉 品目・単価・数量に加えて「合計(単価×数量)」列が右側に追加されます。


まとめ
- HSTACKは「横方向に結合」する新関数
- 複数の列を一瞬で統合できるため、コピー&貼り付けや手動計算不要
- VSTACKと組み合わせると「縦に積んで横に合計を追加」という見積書の整理に直結
まとめ
この記事では、Excelの HSTACK / VSTACK と FILTER関数 を使って、見積の明細を自動で整理する方法をご紹介しました。
複雑な表も、縦横に結合して条件抽出すれば『すっきり』整形できます。
👉 この仕組みを理解していないと、次回の「関数による見積書自動化完成」には進めません。
次回はいよいよ、材料費など複雑な要素を関数で整理し、最終的に見積書を自動作成できる仕組みをご紹介します。
あなたの業務でもすぐ応用できるヒントが見つかります。ぜひ続けてご覧ください。
スピル関数とは?
スピル関数(Spill Function) とは、Excelで新しく導入された「動的配列関数」の一種で、1つの数式を入力すると、その結果が複数セルに自動的に展開(スピル)される仕組みのことを指します。
特徴
- 自動展開:数式を1セルに入力すると、結果が必要な範囲に自動的に広がる
- 範囲指定不要:従来のように「Ctrl+Shift+Enter」で配列数式を確定する必要がない
- リアルタイム更新:元データが変わるとスピル結果も即座に更新される
- エラー表示:展開先に他のデータがあると
#SPILL!エラーが出る
代表的なスピル関数
- FILTER:条件に合うデータを抽出
- SORT:データを並べ替え
- UNIQUE:重複を除いてユニーク値を抽出
- SEQUENCE:連続した数列を生成
- VSTACK / HSTACK:複数範囲を縦横に結合
👉 これらはすべて「スピル関数」で、結果が複数セルに広がります。
実例
A2:A6に「東京, 大阪, 東京, 名古屋, 東京」と入力してある場合
=UNIQUE(A2:A6)
結果は自動的に複数セルに展開され、
「東京」「大阪」「名古屋」が縦に並んで表示されます。

まとめ
- スピル関数=動的配列を返す関数
- 1セルに入力するだけで結果が複数セルに広がる
- FILTERやVSTACKなど、見積書自動化に欠かせない関数はすべてスピル関数
