計算式待機型は古い!スピル機能を使えば動的配列で自動展開が可能
Excelの「スピル機能 (Spill)」は、数式をたった一つのセルに入力するだけで、その結果が自動的に複数の隣接するセルに展開(あふれ出るように表示)される革新的な機能です。
これは、Microsoft 365およびExcel 2021以降で導入された「動的配列数式」の動作の一部で、従来のExcelの作業効率を劇的に向上させます。
スピル機能のメリット
スピル機能の主な利点は以下の通りです。
-
オートフィル(コピー&ペースト)が不要: 複数のセルに結果を表示させるために、数式を下にコピーしたり、範囲指定をしてCtrl + Shift + Enterを押す(従来の配列数式)必要がなくなります。
-
絶対参照が不要になるケースがある: 範囲同士を演算する場合(例:
=A1:A5 * B1:B5)、それぞれの行同士の計算結果が一括でスピルされるため、いちいち絶対参照($マーク)を設定する手間が省けます。 -
データの増減に自動対応: 元データの行や列が増減した場合、数式を入力したセル(親セル)を変更しなくても、スピル範囲が自動的に拡大・縮小して対応します。
-
数式のメンテナンスが容易: 修正が必要なのは、数式を入力した最初のセル(親セル)だけです。スピルされた結果が表示されている他のセル(ゴーストと呼ばれる)には数式は入っておらず、編集もできません。
スピルの基本的な使い方
スピル機能は、対応する関数と組み合わせることで真価を発揮しますが、シンプルな参照や演算でも利用できます。
1. シンプルなセル範囲の参照
特定の範囲の値をそのまま他の場所に表示させたい場合。
-
操作: セルA1からA5までの値をセルC1からC5に表示させたい場合、セルC1に
=A1:A5と入力してEnterを押します。 -
結果: C1からC5にA1からA5の値が自動で表示されます。
2. 範囲同士の四則演算
リストの各項目同士を計算したい場合。
-
操作: B列の単価とC列の数量を掛け算したい場合、結果を表示させたい最初のセル(例: D1)に
=B1:B5 * C1:C5と入力してEnterを押します。 -
結果: D1からD5に、それぞれの行の積(
B1*C1,B2*C2, …)が自動で表示されます。
3. スピル対応関数との組み合わせ
以下の関数は、複数の結果を返すためスピル機能と非常に相性が良いです。
| 関数 | 用途 |
| SORT | 範囲内のデータを並び替えて、結果をスピルします。 |
| UNIQUE | 範囲内の重複しない(一意の)値を取り出して、結果をスピルします。 |
| FILTER | 条件に一致するデータのみを抽出して、結果をスピルします。 |
| XLOOKUP | 検索結果が複数ある場合や、複数の検索値を指定した場合にスピルします。 |
SORT関数を使った並べ替えて抽出の例
出席番号順に並んだ試験結果をたった一つの計算式で並べ替えて抽出することが出来ます。

使った計算式は下記一つだけ。計算式のコピぺも不要で革新的。
=SORT(B11:E20,4,-1,FALSE)
スピル範囲演算子(#)
スピルされた結果の全範囲を、他の数式で参照したい場合に、親セルの参照の末尾に#(シャープ)を付けます。
-
例: D1セルからD5セルにスピルされた計算結果の合計をE1に出したい場合、E1に
=SUM(D1#)と入力します。D1からD5の範囲をドラッグで指定しなくても、自動で範囲全体を参照します。
スピルを使う上での注意点
-
対応バージョン: スピル機能は、Microsoft 365またはExcel 2021以降でのみ利用可能です。古いバージョンでは動作しません。
-
スピルエラー(#SPILL!): 数式の結果を展開しようとしたセル範囲(スピル範囲)に、既にデータが入力されている場合、スピルできずに
\#SPILL!エラーが表示されます。このエラーが出た場合は、展開先のセル範囲のデータを削除または移動してください。
スピル機能をマスターすれば、Excelでのデータ処理やリスト管理の作業効率が大幅に向上します。
絶対参照や相対参照について無知な方はこちらの記事も参考ください。

この記事を書いているのは、【Excel問題解決Lab.】筆者「16時間」を「5秒処理」化。 Excelユーザー歴25年の経歴を持つ筆者が解説。過去には、事務員さんの年間約192時間の工数削減を実現。削減できた時間は、より付加価値の高い分析業務に充てられるようになり、社内の生産性向上と業務省力化に貢献。
