エクセルの新機能「スピル」とは?どんな機能でどのように使うと便利なのかについて、シンプルに解説しています。上手に使えば、これまでよりもまた一歩効率化できる機能です。
”スピル機能”とは?
スピル機能とは、数式を入力したセルに加え、隣接するセルにも自動的に結果が返される機能です。一つのセルから隣接するセルに“溢れて”いくイメージです。
これまでは、一つのセルに数式を入力した後、オートフィル機能を使って隣接するセルへ同じ数式を適用させていました。それらを一括で行えると考えてもよいでしょう。
Microsoft公式ページにも説明がありますが、それを読んでもなかなか理解できませんでした。文章の説明は分かりにくいものです。実際にエクセル上で確認してみましょう。
現時点でスピル機能を使えるのは、Office365やExcel2021です。Office365は、いつも最新機能が使えるようアップデートされているので便利ですね。ご自身のエクセルのバージョンでは使えないという方も、この機能を知っておくと、今後必ずプラスになると思いますよ。
スピルの基本機能
上の画像のような仕入管理表を例に説明します。スピルの数式の書き方は、E2セルの通りです。単純に範囲を選ぶだけですが、これでEnterするとどうなるでしょうか。
一つのセルに数式を入れると、あふれ出るように隣接セルへ値が返されます。これが基本機能です。
スピルが影響を及ぼしている範囲のことを、スピル領域と呼びます。画像で分かる通り、青色の枠で囲まれ少し浮き出て見えますね。
スピルする範囲は、縦(列)と横(行)の両方で指定できます。
上の画像の通り、横(行)方向にスピル設定してみます。
横方向にスピル領域が広がりました。
縦(列)方向も同じです。
画像のように、「日付」範囲(A2:A14)を指定するとどうなるでしょうか。
指定した範囲で縦方向にスピルしました。
ゴースト
スピル設定されているセルを“親セル”、スピル領域にある他のセルを“子セル”として考えると、数式バーの表示が異なります。
親セル
子セル
- 親セル: 通常の表示
- 子セル: 薄いグレー
親となるセル以外は、数式バーのテキストが薄いグレーになっており、これをゴーストと呼びます。
deleteしても消えません。F2で編集モードにしても、何も入っていません。“親セル”を削除すれば、すべてが消えます。
スピルエラー
画像の通り、スピル領域に値がある場合、どうなるでしょうか。E2にスピルの数式を入力してみます。
「#スピル!」というエラーが出ます。詳細を確認すると、「データをスピルするのに必要なセルが空白ではありません」という説明がでます。
このように、スピル領域に別のデータが入ると“障害物”と判断してエラーとなってしまいます。
スピル領域にある値(画像の場合「ドライイースト」)を削除すれば、スピルします。ゴースト部分に後から値を入れてもエラーになります。しかし、その値を消すと元通りスピルします。この点は注意が必要ですね。
他にも、スピル領域に結合セルが含まれていたり、テーブル内でスピルさせようとしたりするとエラーとなるので覚えておきましょう。
スピル領域を全選択する演算子
親セル#
空白のセル(画像の場合、I2セル)に、=を入力した後、スピル領域(E2:G14)を選択してみてください。自動的に数式バーの表示は「=E2#」になります。
このように、スピル領域を全選択する#のことを、「スピル範囲演算子」と言います。スピル領域全体を他の数式で参照する時は、親セルに#を付けることで自動的に参照してくれます。
これが非常に便利なのは、行や列の挿入・削除があっても自動で対応してくれるところです。例えば、行を追加した場合、追加した情報もスピル領域として判断し値を返してくれます。この点の詳細は、後述しますね。
スピル機能に対応する関数
スピル機能に対応した新関数をいくつかご紹介します。
範囲または配列の内容を並べ替える
範囲または配列の内容を、対応する範囲または配列の値に基づいて並べ替える(並び替えの基準を複数設定できる)
定義した条件に基づいてデータの範囲をフィルター処理できる(指定した範囲から指定した値のものだけを抽出できる)
一覧または範囲内の一意の値の一覧を返す(重複したデータを削除して、UNIQUEなものだけを返す)
指定した範囲内でランダムな数値の配列を返す
1、2、3、4 など、配列内の連続した数値の一覧を生成する
他にもありますが、実務でよく使いそうなものをあげるなら、SORT、FILTER、UNIQUEだと思います。次章で、スピル領域演算子の使い方を含めて解説していきます。
SORTとSORTBY関数
SORT関数
単純にソート(昇順や降順)できます。
まず「配列」で表のデータ全体を指定します。SORT関数に限らず、引数の中で[ ]で囲まれているものは省略可能です。このままEnterするとどうなるでしょうか。
日付の列で昇順されたことが分かります。引数を指定すると、SORT関数の意味がつかめます。
同じようにSORT関数を使い、第2引数[並べ替えインデックス]を指定してみましょう。これはVLOOKUP関数などの”配列”と同じです。1なら1列目の「日付」を基にします。(省略した場合も1です)2なら2列目の「購入品目」を基にします。画像のように、2を指定すれば、結果はもうお分かりの通りです。
2列目の購入品目を基準に昇順の並び替えがされます。ちなみに、第3引数の[並べ替え順序]は、昇順なら1、降順なら-1で指定できます。
SORTBY関数
SORTBYの場合は、並び替えの条件を複数指定できます。
まずは画像の通り、購入品目を基準配列1にして昇順で並べ替えを指定します。そのまま、条件を加えます。
カンマで区切り、日付を基準配列2で指定し、やはり昇順の1を指定します。どうなるでしょうか。
お察しの通り、まず購入品目で昇順され、その中で日付の昇順による並び替えもしてくれます。
FILTER関数
指定した値を抽出できます。
例えば、購入品目の中から小麦粉だけのデータを抽出したいという場合です。第2引数の[含む]は、購入品目(B2:B14)の中から、文字列”小麦粉”を指定してみます。
このように、小麦粉だけのデータがスピルによって抽出されました。
SORT関数との組み合わせ
抽出されたデータを日付順にしたい場合は、SORT関数と組み合わせます。単純にSORTで囲みましょう。
前述の通り、1列目の日付を基準に並び替えができます。
UNIQUE関数
テーブルと連動させると便利
前述の通り、テーブル内でスピル機能は使えませんが、それぞれを連動させると非常に便利です。
例えば、購入品目ごとの数量を集計したい場合にUNIQUE関数が使えます。
画像の通り、E2セルにUNIQUE関数を入力し、配列はテーブルになっている表の「購入品目」データを指定します。この状態でEnterするとどうなるでしょうか。
購入品目の中で、重複しているデータは削除し、UNIQUEデータ(一意のデータ)が抽出されます。
UNIQUE関数 + SUMIF関数
それぞれの「数量」を集計したい場合は、SUMIF関数と組み合わせて使います。使い方はかんたんです。
通常SUMIF関数単体で使う場合です。F2セルで、範囲に「購入品目」のデータ範囲を指定し、検索条件は”小麦粉”を意味する「E2」セルを指定します。[合計範囲]は「数量」のデータ範囲になります。
こうすることで、小麦粉だけの数量(水色囲み部分)が合計されて「80」と表示されました。
ここでスピル機能を上手に使うと、一括で品目ごとの数量を集計できます。F2セルでオートフィルを使えば、F6(牛乳)までの合計が出ますが、前述したスピル範囲演算子を使うともっとかんたんで便利です。
F2セルで指定した数式の中で、スピルされた親セル(E2)に # を付けてください。これでスピル領域全体が選択されます。UNIQUE関数でスピルした領域全体(E2:E6)が赤色で選択されているのが分かります。この状態でEnterしてみましょう。
数式はF2にしか入っていませんが、数量もスピルされて一括で集計されました!
行の追加・削除に自動対応
テーブルに行を挿入するとどうなるでしょうか。
画像のようになります。スピルされた「購入品目」と「数量」の部分に0が自動で入りました。どういうことでしょうか。
挿入した行に、データを入れてみましょう。
10行目のテーブルにデータを入れます。すると、自動的にスピル領域が広がり値を返しています!
F2セルで数式を確認してみましょう。行を挿入してデータを追加すると、SUMIFで指定した範囲と合計範囲が自動的に広がり、B14→B15に、C14→C15になっているのが分かります。追加した行もスピル領域に含めて自動的に値を返しているということです。
オートフィルではこうはいきません。追加された行へ、もう一度オートフィルを実行する必要があります。
ちなみに、行を削除するとどうなるでしょうか。
11,12行目を削除してみます。もう予想がつきますね。
自動的にスピル領域が狭まり、集計にも反映されていることが分かります。
簡易的ですが、こんな表もすぐに作れそうですね。
まとめ
いかがでしたか。今回は、エクセルの新規のスピルについて解説してきました。
機能を理解していないと敬遠されがちですが、うまく使うと非常に便利で業務効率化にもつながりますね。今後のエクセルでは標準化されていくでしょうから、今から覚えて活用していきたいですね。
この記事が少しでも皆さまのお役に立つことを願っています。では、次回もお楽しみに!