Excelスピル実務テクニック7選|見積書・予算・名簿…あの面倒な作業が数式1つで終わる

Excelでスピルを用いて見積書の複数パターンを一発比較している図解 Excel

どうも、くまおやぢです。

先日公開したスピルの解説記事に、こんな声をいただきました。

「スピルの仕組みは分かった。でも、自分の仕事でどう使えばいいのかがピンとこない」

――めちゃくちゃ分かります。

わたしも最初はそうでした。FILTER関数もSEQUENCE関数も、単体の動きは理解できた。でも、目の前にある見積書やシフト表を見て「で、どこにどう使うの?」となる。あの感覚、痛いほど分かります。

ですが、ご安心を。

この記事では、事務方の実務でそのまま使える7つの実例を、数式つき・手順つきでお見せします。「スピルってすげえ!」と思える瞬間を、ぜひ体感してください。


この記事でできること

対象者: スピルの基本は理解している、またはこちらの解説記事を読んだ方

この記事を読むと:

  • 見積書・予算書・勤怠データ・在庫管理など、日常業務でスピルを即戦力にできる
  • 「1つの数式で、こんなに手作業が消えるのか」という感動を実感できる
  • 明日から自分のファイルに応用できる、コピペ可能な数式が手に入る

動作環境: Microsoft 365 / Excel 2021(※Excel 2019以前ではスピル機能は使えません)


01. 見積書の数量×単価マトリクス|複数パターンを一発で比較する

こんな経験ありませんか?

見積書を作るとき、「数量を変えたら合計いくらになる?」と聞かれて、パターンごとにファイルをコピーしたり、セルを1つずつ書き換えたりしていませんか?

3パターンならまだ耐えられる。でも「5パターン出して」「10パターン比較したい」と言われた瞬間、心が折れますよね。

スピルなら、1つの数式で全パターンの金額表が一気に出ます。

準備する表

セル内容
B2:B6商品名(5品目)
C2:C6単価(500, 800, 1200, 300, 950)
E1:I1数量パターン(横方向に5パターン:10, 20, 50, 100, 200)

数式(E2に入力)

=C2:C6*E1:I1

Enter を押した瞬間、5行×5列=25セルの金額マトリクスが一発で出現します。

これがスピルの破壊力です。

なぜこうなるのか?

C2:C6 は縦方向に5つの値(単価)。E1:I1 は横方向に5つの値(数量)。この「縦×横」の掛け算をExcelが自動で展開してくれる。これは配列計算と呼ばれる仕組みで、スピルが登場する前はCtrl+Shift+Enterで確定する「CSE数式」という特殊な操作が必要でした。今は普通にEnterを押すだけ。

さらに合計行を追加するなら

マトリクスの下(E7)に、各パターンの合計金額を出したい場合:

=SUM(E2#)

……ではなく、列ごとの合計を横に並べたいので、こう書きます。

=MMULT(TRANSPOSE(SEQUENCE(5,1,1,0)),E2:I6)

ちょっと難しく見えますが、要するに「E2:I6の各列を合計して横に並べる」という処理です。もっとシンプルにやるなら、E7に =SUM(E2:E6) と入れて右にコピーでもOK。スピルに慣れてきたら、MMULT版に挑戦してみてください。

実務のコツ: 数量パターンの行(E1:I1)をセル参照にしておけば、値を変えるだけで全パターンの金額が瞬時に再計算されます。上司から「100個じゃなくて150個の場合も見たい」と言われても、セルの数字を1つ変えるだけ。

次の章では、この考え方を予算書に応用します。


02. 予算シミュレーション3パターン比較|楽観・標準・悲観を一発展開

こんな場面で使う

年度予算を組むとき、「楽観シナリオ」「標準シナリオ」「悲観シナリオ」の3パターンを並べて比較したい。でも、シートを3枚コピーして数字を入れ替えて……という作業は地味に重い。

スピルを使えば、1つの数式で3シナリオが横に並びます。

準備する表

セル内容
A2:A7費目(人件費、外注費、消耗品費、交通費、通信費、雑費)
B2:B7基準金額(標準シナリオの数値)
D1:F1シナリオ係数(楽観:0.9、標準:1.0、悲観:1.15)

数式(D2に入力)

=B2:B7*D1:F1

6行×3列=18セルに、3シナリオの予算が一気に展開されます。

Before/After

項目従来のやり方スピルを使うと
シートの数3枚(シナリオごとにコピー)1枚で完結
数式の入力各セルに個別に計算式1セルに1つだけ
係数の変更全シートを開いて修正D1:F1の値を変えるだけで全自動再計算
合計行の追加3シートそれぞれにSUM1行のSUMで3列分

合計行を追加する

D8に以下を入力すれば、3シナリオの合計が横に並びます。

=MMULT(TRANSPOSE(SEQUENCE(6,1,1,0)),D2:F7)

シンプルに行くなら、D8に =SUM(D2:D7) と入れてF8まで右にコピーでもOKです。

実務のコツ: 係数をセルに入れておくことで、「悲観を1.15じゃなくて1.2にしたら?」という追加の質問にも即座に対応できます。上司の「もう1パターン見たい」にも、G1にもう1つ係数を追加するだけ。数式を書き直す必要はありません。

次の章では、数字の計算から少し離れて、勤怠データの抽出に挑戦します。


03. 勤怠データから部署別の残業時間を自動抽出

こんな悩みありませんか?

「今月の残業時間、部署ごとにまとめて」と上司に言われるたびに、オートフィルターで1部署ずつ絞り込んで、合計をメモして、また次の部署に切り替えて……。月末のルーティンとはいえ、地味に面倒ですよね。

スピルなら、全部署の残業時間一覧が自動で出ます。

準備する表(勤怠データシート)

A列B列C列D列
日付氏名部署残業時間(h)
4/1田中太郎営業部2.5
4/1鈴木花子総務部1.0

ステップ1:部署の一覧を自動生成

別シートのA2に:

=SORT(UNIQUE(勤怠データ!C2:C500))

重複なし&五十音順の部署リストが自動で出ます。部署が増えても自動で追加される。

ステップ2:各部署の残業合計を出す

B2に:

=SUMIF(勤怠データ!C2:C500,A2#,勤怠データ!D2:D500)

ここがポイント! A2#(スピル範囲演算子)を使うことで、ステップ1で生成された全部署に対して一括でSUMIFが走ります。部署が5つなら5行、10個なら10行の残業合計が自動で並ぶ。

従来との比較

従来スピル
オートフィルターで1部署ずつ絞り込み数式2つで全部署完了
部署が増えたら手動で追加自動で行が増える
毎月やり直し数式はそのまま。データが更新されれば結果も更新

注意点: A2#(スピル範囲演算子)は、A2のスピル結果全体を参照する記法です。スピルの結果が5行なら5行分、10行なら10行分を自動で参照してくれます。スピルの基本はこちらの記事で解説しています。

次の章では、在庫管理で「この商品、もうすぐ切れるよ!」を自動で見つける方法をご紹介します。


04. 商品リストから条件付き在庫アラート一覧を自動生成

こんな場面で使う

在庫管理シートを毎朝開いて、目視で「あ、これ残り少ない」とチェックしている。100品目、200品目となると見落としが怖い。かといって条件付き書式でセルを赤くしても、スクロールして探す手間は変わらない。

FILTER関数で、「在庫が基準値以下の商品だけ」を別の場所に自動抽出しましょう。

準備する表

A列B列C列D列
商品コード商品名在庫数発注基準
A001コピー用紙A4510
A002トナーカートリッジ23
A003付箋紙5010

数式(別シートまたは別エリアのA2に入力)

=FILTER(在庫マスタ!A2:D200, 在庫マスタ!C2:C200<=在庫マスタ!D2:D200, "発注が必要な商品はありません")

在庫数 ≦ 発注基準の商品だけが自動で抽出されます。

朝イチでこのシートを開くだけで、発注が必要な商品が一覧になっている。目視チェック不要。見落としゼロ。

さらに「在庫ゼロ」だけを赤字にしたいなら

抽出結果に条件付き書式を組み合わせれば、ゼロ在庫の行だけ色を変えることもできます。でも、まずはFILTER関数で「抽出する」だけでも、業務効率はグッと上がります。

実務のコツ: 第3引数の "発注が必要な商品はありません" を入れておくのがポイント。全商品の在庫が足りていれば、エラーではなくこのメッセージが表示されるので、「あれ、壊れた?」と焦ることがありません。

次の章では、多くの事務方が毎月やっている「複数シートのコピペ統合」を一掃します。


05. 複数月のデータを1シートに自動統合|VSTACKでコピペ地獄を卒業

毎月やっていませんか?

「4月」「5月」「6月」……と月別にシートが分かれていて、集計のたびに全シートのデータをコピーして1つのシートに貼り合わせる。行数を数えて、ペースト位置を確認して、「あっ、ヘッダーまでコピーしちゃった」とやり直す。

この作業、VSTACK関数で丸ごと消えます。

VSTACK関数とは

VSTACK(Vertical Stack = 縦に積む)は、複数の範囲を縦方向に結合するスピル対応の関数です。Microsoft 365で使えます。

数式(統合シートのA2に入力)

=VSTACK(4月!A2:F100, 5月!A2:F100, 6月!A2:F100)

3シート分のデータが、ヘッダーなしで縦に結合されて一気に表示されます。

Before/After

項目従来のやり方VSTACKを使うと
作業内容各シートを開いてコピー→貼り付けを繰り返す1つの数式を入力するだけ
ヘッダーの処理コピー範囲を毎回調整参照範囲で調整済み
データ追加時再度コピペし直し自動で反映
ミスのリスク行の抜け・重複・ペースト位置ズレゼロ

月が増えたら?

7月のシートが追加されたら、数式に 7月!A2:F100 を追加するだけ。

=VSTACK(4月!A2:F100, 5月!A2:F100, 6月!A2:F100, 7月!A2:F100)

注意点: VSTACK関数はMicrosoft 365で利用可能です。Excel 2021では使えない場合があります。お使いの環境で動作するか、まず小さな範囲で試してみてください。

やってはいけないこと: VSTACKの結果(スピル範囲)の途中にデータを手入力しないでください。#スピル! エラーの原因になります。統合結果はあくまで「見るだけ」のエリアとして扱いましょう。

次の章では、地味だけど毎回面倒な「ドロップダウンリストの手動更新」を自動化します。


06. 入力規則のドロップダウンリストを自動更新する

この悩み、心当たりありませんか?

取引先が増えるたびに、ドロップダウンリストの参照範囲を手動で広げている。「あれ、新しい取引先がリストにない!」と言われて慌てて修正する。

UNIQUE関数とスピルを組み合わせれば、リストが自動で最新状態を維持します。

ステップ1:重複なしリストを自動生成

「マスタ」シートのA2に:

=SORT(UNIQUE(受注データ!C2:C1000))

受注データのC列(取引先名)から、重複なし&五十音順のリストが自動生成されます。

ステップ2:名前の定義を設定

  1. 「数式」タブ →「名前の定義」をクリック
  2. 名前:取引先リスト
  3. 参照範囲:=マスタ!A2#

ここがポイント! 参照範囲に A2#(スピル範囲演算子)を使うことで、スピルの結果が増減しても名前の定義が自動で追従します。従来のように「A2:A100」と固定する必要がない。

ステップ3:入力規則に名前を指定

  1. ドロップダウンリストを設定したいセルを選択
  2. 「データ」タブ →「データの入力規則」
  3. 入力値の種類:リスト
  4. 元の値:=取引先リスト

これで完了です。受注データに新しい取引先が追加されれば、ドロップダウンリストにも自動で反映される。もう手動でリスト範囲を広げる必要はありません。

従来との比較

従来スピル+名前の定義
取引先が増えたら参照範囲を手動で修正自動で追従
「リストにない!」と報告が来てから修正そもそも報告が来ない
OFFSET+COUNTA等の複雑な数式で動的範囲を作成A2# だけで済む

実務のコツ: この手法は取引先リストだけでなく、商品名リスト、担当者リスト、部署リストなど、あらゆるドロップダウンリストに応用できます。スピル+名前の定義は、覚えておいて損のない組み合わせです。

次の章では、事務方の大定番「シフト表」にスピルを投入します。


07. シフト表テンプレートの日付+曜日を自動生成する

毎月やっていませんか?

来月のシフト表を作るとき、日付を手入力して、曜日を手入力して、土日に色を付けて……。この「テンプレートの下準備」だけで30分かかっていませんか?

SEQUENCE関数とTEXT関数を組み合わせれば、日付と曜日の枠組みが一瞬で完成します。

ステップ1:年月を指定するセルを作る

セル内容
B1年(例:2026)
D1月(例:4)

ステップ2:日付を自動生成

A3に以下を入力:

=SEQUENCE(DAY(EOMONTH(DATE(B1,D1,1),0)), 1, DATE(B1,D1,1), 1)

4月なら30行、2月なら28行(うるう年なら29行)の日付が自動で生成されます。 月の日数を手計算する必要なし。EOMONTH で月末日を取得し、DAY でその日数を取得しているので、何月でも正確に対応します。

セルの表示形式を m/dyyyy/m/d に設定してください。

ステップ3:曜日を自動表示

B3に以下を入力:

=TEXT(A3#,"aaa")

A3#(スピル範囲演算子)で、ステップ2の全日付に対して一括で曜日を生成。「月」「火」「水」……が一気に並びます。

ステップ4:担当者の列ヘッダーを自動生成

C2に横方向に担当者名を並べる場合、スピルで担当者リストを参照することも可能です。

=TRANSPOSE(SORT(UNIQUE(スタッフ名簿!A2:A20)))

担当者名簿から重複なしで名前を取得し、横方向に展開。新しいスタッフが増えても自動で列が追加されます。

Before/After

項目従来のやり方スピルを使うと
日付の入力手入力 or オートフィルSEQUENCE関数で自動
曜日の入力手入力 or TEXT関数をオートフィルTEXT+スピル範囲演算子で一括
日数の調整月ごとに行数を手動で増減EOMONTH連動で自動
月の切り替えテンプレートをコピーして日付を書き換えB1とD1の値を変えるだけ

実務のコツ: 条件付き書式で =WEEKDAY(A3,2)>=6 を設定すれば、土日の行を自動で色付けできます。スピルで生成した日付にも条件付き書式は普通に適用できるので、安心してください。
条件付き書式の詳しい使い方はこちらの記事で解説しています。


まとめ

振り返りチェックリスト

7つの実例を通じて、スピルの実務での威力を体感していただきました。ポイントを整理します。

  • 見積書の数量×単価マトリクス → 縦×横の掛け算で、複数パターンの金額表が1セルの数式で完成
  • 予算シミュレーション → 係数をセルに入れておけば、楽観・標準・悲観の3シナリオが一発展開
  • 勤怠データの部署別集計 → UNIQUE+SUMIFで、全部署の残業時間が自動一覧化
  • 在庫アラート → FILTER関数で「在庫 ≦ 基準値」の商品だけを自動抽出
  • 複数シートの統合 → VSTACKで、毎月のコピペ地獄を丸ごと消去
  • ドロップダウンリストの自動更新 → UNIQUE+名前の定義+スピル範囲演算子#で、メンテナンスフリーに
  • シフト表テンプレート → SEQUENCE+EOの組み合わせで、日付・曜日・日数が自動生成

今日やるべき最小アクション

この7つの中から、あなたの業務に一番近い実例を1つ選んでください。そして、今使っている業務ファイルのコピーを作って、その実例の数式を1つだけ試してみてください。

おすすめは実例①の見積マトリクス。準備が簡単で、スピルの「ドバッと広がる」感動を最も手軽に味わえます。

あせらず、くさらず、あきらめず

7つ全部を一度にやろうとしなくて大丈夫です。

まずは1つ。1つの数式が「ドバッ」と広がる瞬間を体験すれば、「次はこれもスピルで書けるんじゃない?」と自然に思えるようになります。あのオートフィルでドラッグしていた時間、絶対参照の$マークで悩んでいた時間が、ウソみたいに消えていく。

その感動を、ぜひ味わってください。

あなたのフィードバックが次の記事のヒントになります。

コメント

タイトルとURLをコピーしました