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

【Excel】スピルを使えばオートフィルさえ不要に! 範囲演算を使って大幅効率アップ

いつもの数式に「#」を活用してみよう

オートフィル不要で参照ズレも回避できる

 元の表を参照して合計値や平均値を求める作業は、エクセルの一般的な処理ですよね。セルを参照した四則演算や、SUM関数、AVERAGE関数といった基本操作に悩む人は少ないでしょう。

セルH2には「=G2*1.1」という数式が入力されています。この数式を下方向にコピーすることが一般的ですよね

 まずは基準となる数式をコピーして下方向のセルに貼り付け、もしくはフィルハンドルをドラッグしてオートフィルでコピーすることが一般的です。

 しかし、上記の例のような表では書式もコピーされてしまうため、貼り付けのオプションから[書式なしコピー]を選び直す手間がかかります。また、K列にはSUMIFS関数、L列にはAVERAGEIFS関数を入力しています。数式の下方向へのコピーを考慮すると、絶対参照にする必要がありますよね?

 エクセルに慣れていれば当たり前のことかもしれませんが、ひと手間かかってしまうのは事実です。今回は、これらの課題を解消できる「スピル範囲演算子(#)」を紹介します。入力する数式は1つだけ、参照方式に頭を悩ます必要もなくなりますよ。

 スピルについて詳しくは、こちらの記事も参照してください。

数式の結果をまとめて返す「スピル」

 「スピル」で結果が返されるように、既存の数式を修正してみましょう。スピル(spill)は「こぼれる」「あふれる」といった意味です。数式の結果が複数の場合、隣接するセルに結果をまとめて返すのがスピルの機能です。

 セルH2の数式「=G2*1.1」は、セルG2に「1.1」を掛けるという意味です。これを「=G2:G202*1.1」と修正するだけです。数式のコピーをすることなく、2~202行目に結果が表示されます。

セルH2に入力された数式「=G2*1.1」(①)がセルG2を参照していることがわかります
「=G2:G202*1.1」と修正すると(②)、セルG2~G202が参照されます。[Enter]キーを押します(③)
一気に結果が表示されました(④)

 なお、セルH3より下の数式は編集できないことに注意してください。この例では、セルH3に灰色で「=G2:G202*1.1」という数式が表示されていることがわかります。スピルの結果は「動的配列」とも呼ばれ、編集できません。数式を修正する場合は元のセルH2を編集します。

関数の中でスピルを利用する

 スピルで数式の結果が表示されている場合、その数式が入力されているセルは「スピル範囲演算子」を使って参照できます。例えば、セルH2の数式「=G2:G202*1.1」の結果はスピルで表示されているので、「H2#」と指定することができます。

 カテゴリーごとの売上合計を求める場合、従来の数式ではコピーすることを考慮して「=SUMIFS($H$2:$H$202,$C$2:$C$202,J2)」のように入力します。あるいは「=SUMIFS(H:H,C:C,J2)」と入力することもできます。

従来の数式では「=SUMIFS($H$2:$H$202,$C$2:$C$202,J2)」(⑤)や「=SUMIFS(H:H,C:C,J2)」のように記述します

 また、UNIQUE関数で取り出した「製品カテゴリー」の結果もスピルなので、スピル範囲演算子を使って「J2#」と表すことができます。

製品カテゴリーはUNIQUE関数によってスピルで表示されています(⑥)

 ここまでの前提をふまえて、スピル範囲演算子を利用して数式を書き換えてみましょう。

SUMIFS関数の引数をいったん消去して、引数[合計対象範囲]に「H2#」と指定します(⑦)。セルH2~H202が参照範囲として指定されていることがわかります(⑧)
続けて「,C2:C202,J2#)」と入力します(⑨)。「J2#」は、セルJ2に入力されたUNIQUE関数の結果のセル範囲、つまりセルJ2~J6を意味します
売上合計の結果がまとめて表示されました(⑩)
売上平均を求めるAVERAGEIFS関数も、同様に引数を指定できます

 スピル範囲演算子を使いこなせば、基本的な数式でもコピーや参照ズレに悩まされることなく、表計算をよりスマートに管理できるようになりますよ。