「大量のデータから特定の条件に合うものだけを抜き出したい」「重複しているデータを消して、きれいなリストを作りたい」
そんなとき、これまではフィルター機能や並べ替えボタンを使って、手作業でデータを操作していた方が多いのではないでしょうか。しかし、現在のExcel(Microsoft 365やExcel 2021以降)では、これらを関数だけで自動化できる「スピル系関数」という非常に強力な武器が登場しています。
特に便利なのが「FILTER(フィルター)」「SORT(ソート)」「UNIQUE(ユニーク)」の3つの関数です。これらを使いこなせれば、一度数式を入力するだけで、データの追加や変更に合わせて抽出結果が自動で更新される仕組みを作ることができます。
今回は、Excel初心者の方に向けて、これら3つの関数の基本から、組み合わせて使うことで実現できる高度な活用術まで、かみ砕いて解説します。
そもそも「スピル」とは何か?
新しい関数を理解する上で欠かせないのが「スピル(SPILL)」という概念です。
従来の関数は、1つのセルに1つの答えを出すのが基本でした。しかし、スピル系関数は、1つのセルに数式を入力するだけで、結果が複数ある場合に隣接するセルへ自動的に結果を「溢れ出させる(スピルさせる)」ことができます。
例えば、10人分のデータを抽出する関数を入力した場合、入力したセルだけでなく、その下のセルまで自動的に結果が表示されます。この自動で表示された範囲を「スピル範囲」と呼びます。
これにより、これまでのように「オートフィルターで抽出して、コピーして、別の場所に貼り付ける」という手間が完全になくなり、元データが変われば抽出結果もリアルタイムで変わる「動的なリスト」が作成できるのです。
特定の条件で抜き出す「FILTER関数」
FILTER関数は、表の中から指定した条件に一致する行だけをごそっと抜き出してくれる関数です。
FILTER関数の基本構成
基本の書き方は以下の通りです。 `=FILTER(配列, 条件, [空の場合の値])`
- 配列:抜き出したいデータ全体の範囲です。
- 条件:どのようなデータを探すかという条件です(例:B列が「営業部」である、など)。
- 空の場合の値:条件に合うデータが一つも見つからなかったときに表示させる文字です(例:「該当なし」など)。ここを指定しないと、エラー(#CALC!)が表示されてしまいます。
具体的な活用例
例えば、名前・部署・在籍状況が入力された表から「営業部」の人だけを抽出したい場合は、次のように記述します。 `=FILTER(A2:A10, B2:B10="営業部", "該当なし")`
これにより、B列が「営業部」である行のA列(名前)だけが、スピル機能によって自動的に一覧として出力されます。
応用:複数条件での抽出(AND・OR)
FILTER関数のすごいところは、条件を組み合わせられる点です。
- AND条件(かつ):「営業部」で、かつ「在籍中」の人を抽出したい場合などは、条件同士を「\*(アスタリスク)」でつなげます。
- OR条件(または):「営業部」または「人事部」の人を抽出したい場合などは、条件同士を「+(プラス)」でつなげます。
このように、条件を工夫することで、VLOOKUP関数では難しかった「複数行の一括抽出」が非常にシンプルに実現できます。
重複をなくして一意にする「UNIQUE関数」
UNIQUE関数は、指定した範囲から重複しているデータを取り除き、「種類」だけを抜き出してくれる関数です。
UNIQUE関数の基本構成
`=UNIQUE(配列, [縦横], [1回だけ])`
- 配列:重複を排除したいデータの範囲です。
- 縦横:通常は省略して構いません。縦方向のリストを処理します。横方向(行)を処理したい場合は「TRUE」を指定します。
- 1回だけ:通常は省略します。
具体的な活用例
顧客リストに同じ名前が何度も登場する場合、その範囲をUNIQUE関数で指定するだけで、重複のない「ユニークリスト」が自動作成されます。 `=UNIQUE(A2:A100)`
この関数を使えば、誰が一度でも取引したことがあるかという「顧客名簿の整理」などの作業が、ボタン操作なしで完結します。また、部署と役職など、複数の列を範囲に指定することで「部署と役職の組み合わせ」で重複のないリストを作ることも可能です。
データをきれいに並べる「SORT関数」
SORT関数は、指定した範囲のデータを昇順(小さい順)や降順(大きい順)に並べ替える関数です。
SORT関数の基本構成
`=SORT(配列, [並べ替え基準列], [並べ替え順序], [並べ替え基準])`
- 配列:並べ替えたいデータの範囲です。
- 並べ替え基準列:範囲の左から何番目の列を基準にするかを数値で指定します。省略すると1列目が基準になります。
- 並べ替え順序:1を指定すると「昇順」、-1を指定すると「降順」になります。
- 並べ替え基準:通常は省略します(FALSEで行基準、TRUEで列基準)。
具体的な活用例
例えば、抽出したデータの3列目にある「年代」を若い順(昇順)に並べたい場合は、次のように指定します。 `=SORT(E2#, 3, 1)` ※ここで「E2#」と書いているのは、E2セルからスピルしている範囲全体を参照するという特別な書き方です。
【最強の組み合わせ】3つの関数をネストして使う
これらの関数の真骨頂は、組み合わせて使う(ネストする)ことにあります。関数の中に別の関数を入れることで、複雑なデータ処理を一瞬で終わらせることができます。
例1:条件に合うデータを抽出し、さらに並べ替える
「女性のデータだけを抜き出し、さらに年代順に並べる」という処理を一度に行いたい場合は、SORT関数の中にFILTER関数を入れます。 `=SORT(FILTER(A2:C120, B2:B120="女性", ""), 3, 1)`
これにより、「抽出」→「並べ替え」という2つのステップが、1つの数式で完結します。
例2:条件に合うデータの「重複のないリスト」を作る
「70点未満の点数を一度でも取った人の名前を、重複なくリストアップしたい」という場合は、UNIQUE関数の中にFILTER関数を入れます。 `=UNIQUE(FILTER(名前範囲, 点数範囲 < 70, ""))`
この組み合わせを使えば、これまでピボットテーブルなどを使って苦労して取得していたデータが、関数ひとつで取得できるようになります。
実務で役立つトラブルシューティングとコツ
非常に便利なスピル系関数ですが、使う際に注意したいポイントがいくつかあります。
1. 「#SPILL!」エラーへの対処
スピル系関数を使っているとき、最もよく遭遇するのが「#SPILL!」エラーです。 これは、関数が結果を書き出そうとしている先に、すでに別の文字や数値が入力されている場合に発生します。「結果を出すための場所(スペース)を空けてください」というExcelからの合図です。 解決策は簡単で、スピル範囲にある邪魔なデータを削除して、空の状態にすることです。
2. 空白セルによる「0」の表示を防ぐ
UNIQUE関数やFILTER関数で範囲を指定した際、元データに空欄が含まれていると、結果に「0」が表示されてしまうことがあります。 これを防ぐには、FILTER関数の条件部分に「空白ではないこと」という条件を追加するなどして、空セルをあらかじめ除外するように設定しましょう。
3. メンテナンスを楽にする「テーブル化」
データが増えるたびに範囲(A2:A100など)を書き直すのは面倒です。そこで、元データの範囲を「テーブル」に変換しておくことをおすすめします。 テーブルにしておけば、データ行が追加されても関数が参照する範囲が自動的に広がるため、数式を修正することなく、常に最新のデータを反映させたリストを維持できます。
まとめ:手作業から卒業し、自動化へ
FILTER、SORT、UNIQUEの3つの関数は、Excelの使い道を「単なる計算機」から「簡易的なデータベース」へと進化させてくれます。
- FILTERで必要なデータだけを絞り込み
- UNIQUEで重複を排除して整理し
- SORTできれいに並べる
この流れを組み合わせることで、これまで数十分かかっていたデータ整理が、わずか数秒で終わるようになります。まずは単純な抽出から試して、徐々に関数の組み合わせに挑戦してみてください。一度この便利さを覚えると、もう手動のフィルター操作には戻れなくなるはずです。
ピックアップ記事



