いまさら聞けないExcelの使い方講座

【Excel】「スピル」を使いこなせば効率爆上がり! いつもの計算も一瞬で完了

「スピル」でオートフィルの手間が省けます

スピルで数式の入力効率が上がる

 Excelの「スピル」の機能をご存じですか? Excel 2019/2021、Microsoft 365のExcel、Web版のExcelで使える機能です。まずはどのような動きをするのかを見てください。以下のような表で、A列とB列の値を掛けあわせたいとしましょう。従来のExcelの使い方なら、セルC1に「=A1*B1」と入力して、オートフィルでコピーですよね?

A列とB列の値を掛ける場合、セルC1に「=A1*B1」と入力して(①)、オートフィルでコピーする(②)のが一般的です

 「スピル」を使う場合は、セルC1に入力する数式は「=A1:A5*B1:B5」となります。一見間違っているように思えますが、対応バージョンをお使いの人は試してみてください。一瞬で結果が表示されます。

セルC1に「=A1:A5*B1:B5」と入力します(③)。「=」と入力して、セルA1~A5をドラッグ、「*」を入力してセルB1~B5をドラッグするとスムーズに入力できます
セルC1~C5に計算結果が表示されました(④)

 数式の結果が複数の場合、隣接するセルに結果をまとめて返すのが「スピル」の機能です。スピル(spill)は「こぼれる」「あふれる」といった意味で、セルC1に入力した数式の結果はセルC1だけでなく、セルC2~C5にもこぼれるように表示されます。

 ただし、セルC2~C5の数式は編集できないことに注意してください。上記の例では、セルC2にセルC1の数式「=A1:A5*B1:B5」が灰色で表示されていますよね。このようなスピルの結果は「動的配列」や「ゴースト」などと呼ばれ、編集できません。元のセルC1の数式を編集します。

オートフィルによる「参照ずれ」にサヨナラ

 スピルを利用すると絶対参照を使わなくても済むことが多くなります。例えば、以下のような表で、割引率を適用することを考えてみましょう。オートフィルでのコピーをふまえると、絶対参照を使った数式は「=B2*(1-$F$1)」となります。

セルF1に入力されている割引率を参照して、数式のコピーを考えると、セルC2の数式は「=B2*(1-$F$1)」(⑤)となります

 スピルを利用すると以下の通り。セルC3~C5には動的配列として結果が表示されるので、入力する数式は「=B2:B5*(1-F1)」となります。セルB2~B5のそれぞれに対して「1-F1」を掛けるので、セルF1を絶対参照する必要はありません。もちろん、セルC3~C5にオートフィルする手間も省けます。

セルC2の数式は「=B2:B5*(1-F1)」(⑥)となります

スピルの結果を参照しても「スピル」

 スピルの結果が表示されているセルを参照する計算方法も覚えておくと便利です。今度は税込み金額を求めてみましょう。

 スピルの結果のセル範囲を参照すると、自動的に「#」の付いたセル参照に切り替わります。以下の例ではセルC2~C5を参照して「C2#」となっています。これは「セルC2~C5に表示されたスピルの結果」の意味になります。

セルD2に「=」と入力して、セルC2~C5をドラッグ(⑦)すると、自動的に「=C2#」と表示されます(⑧)。スピルの結果を参照する意味になります
続けて「*1.1」と入力します(⑨)
スピルで結果が表示されました(⑩)

 セルC2~C5をドラッグする代わりに「C2#」と手動で入力しても、C2に入力された数式の結果となるセルC2~C5を参照することが可能です。

文字列操作などもスピルで処理可能

 以下はTEXT関数を使って日付から曜日に変換しています。このような縦方向に長い表で数式をオートフィルすると、コピーしすぎたりしますよね。スピルを使えば、その手間が省けます。

 また、スピルはRIGHT関数、LEFT関数、SUBSTITUTE関数、CONCAT関数などの文字列を操作する関数でも利用可能です。

TEXT関数でスピルを利用します。セルB2に「=TEXT(A2:A32,"aaa")」と入力します(⑪)
日付から曜日に一気に変換できました(⑫)

VLOOKUP関数やXLOOKUP関数でも利用可能

 スピルはVLOOKUP関数でも使えます。また、XLOOKUP関数では横方向にスピルさせることが多いですが、実は縦方向へのスピルも可能です(縦横の併用は不可)。従来から利用している関数でも、スピルで効率をよくできるかもしれません。ぜひお試しください。