どうも、くまおやぢです。
先日公開したスピルの解説記事に、こんな声をいただきました。
「スピルの仕組みは分かった。でも、自分の仕事でどう使えばいいのかがピンとこない」
――めちゃくちゃ分かります。
わたしも最初はそうでした。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シートそれぞれにSUM | 1行の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 | コピー用紙A4 | 5 | 10 |
| A002 | トナーカートリッジ | 2 | 3 |
| A003 | 付箋紙 | 50 | 10 |
| … | … | … | … |
数式(別シートまたは別エリアの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:名前の定義を設定
- 「数式」タブ →「名前の定義」をクリック
- 名前:取引先リスト
- 参照範囲:
=マスタ!A2#
ここがポイント! 参照範囲に A2#(スピル範囲演算子)を使うことで、スピルの結果が増減しても名前の定義が自動で追従します。従来のように「A2:A100」と固定する必要がない。
ステップ3:入力規則に名前を指定
- ドロップダウンリストを設定したいセルを選択
- 「データ」タブ →「データの入力規則」
- 入力値の種類:リスト
- 元の値:
=取引先リスト
これで完了です。受注データに新しい取引先が追加されれば、ドロップダウンリストにも自動で反映される。もう手動でリスト範囲を広げる必要はありません。
従来との比較
| 従来 | スピル+名前の定義 |
|---|---|
| 取引先が増えたら参照範囲を手動で修正 | 自動で追従 |
| 「リストにない!」と報告が来てから修正 | そもそも報告が来ない |
| 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/d や yyyy/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つの数式が「ドバッ」と広がる瞬間を体験すれば、「次はこれもスピルで書けるんじゃない?」と自然に思えるようになります。あのオートフィルでドラッグしていた時間、絶対参照の$マークで悩んでいた時間が、ウソみたいに消えていく。
その感動を、ぜひ味わってください。
あなたのフィードバックが次の記事のヒントになります。

コメント