スプレッドシートで重複データを整理するときに便利なUNIQUE関数について、使い方と内部のしくみを解説します。草野球の成績管理表でシーズン出場選手一覧を自動生成する場面を例に、初心者向けに丁寧に説明します。
UNIQUE関数とは
指定した範囲の中から、重複を取り除いたリストを自動で作る関数です。成績管理表では「シーズンに出場した選手を1人ずつ一覧にしたい」「対戦したチーム名を重複なく並べたい」といった場面で活躍します。
基本の書式はこうです。
=UNIQUE(範囲)
範囲の中に同じ値が何度出てきても、UNIQUE関数は1回だけ拾い上げてくれます。
成績管理表での実例:シーズン出場選手一覧を自動生成する
大阪グーニーズの「出場記録」シートでは、試合ごとに出場した選手を1行ずつ記録しています。同じ選手が何試合にも登場するため、このままでは「誰が出場したか」の一覧としては使いにくい状態です。
| 試合日 | 選手名 |
|---|---|
| 4/6 | SUZUKI |
| 4/6 | NAKATA |
| 4/13 | SUZUKI |
| 4/13 | YAMAMOTO |
| … | … |
B列(選手名)には同じ名前が何度も登場しますが、これを重複なしの一覧に変換したいとき、式はこうなります。
=UNIQUE(B2:B200)
これで「B2セルからB200セルまでの中から、重複を除いた選手名だけ」がリストとして表示されます。試合が増えて同じ選手の行が何度追加されても、一覧側は常に「1人1行」のまま保たれます。
出場選手一覧を表示したいセル(例:別シートの集計欄の先頭セル)をクリックして選択します。ここに式を入力するだけで、結果は下方向に自動で展開されます。
出場記録シートのB2からB200までをマウスでドラッグすると、自動で「B2:B200」の部分が入力されます。
式を確定すると、選択したセルを起点に重複のない選手名が縦に自動で並びます。式を入力したのは先頭セルだけですが、その下のセルにも自動的に結果が「はみ出して」表示される点が特徴です。
しくみを理解する:UNIQUEは何をしているのか
UNIQUE関数は、指定した範囲を上から順に1セルずつ見ていき、「これまでに出力したリストにまだ無い値かどうか」を確認しながらリストを組み立てています。
- 初めて登場した値だけがリストに追加される(2回目以降は無視される)
- 出力される順番は、範囲内で最初に登場した順(50音順やアルファベット順に自動で並び替わるわけではない)
- 結果は「スピル(こぼれ出し)」と呼ばれるしくみで表示される。式を入力したのは1セルだけでも、結果の件数に応じて下のセルへ自動的に展開される
よくあるミス
UNIQUEの結果は式を入力したセルから下へ自動的に広がっていくため、その下のセルに何かデータが入っていると、展開できずにエラーになります。一覧を表示するセルの下は、あらかじめ空けておく必要があります。
「SUZUKI」と「SUZUKI 」(末尾に余分な空白)や、全角・半角の違いがあると、UNIQUEはこれらを別々の値として扱い、同じ選手なのに一覧に2行分表示されてしまいます。入力段階での表記ゆれを防ぐか、TRIMやSUBSTITUTEで整えた列を範囲に指定するのが安全です。
- UNIQUE関数は「指定範囲から重複を除いたリストを作る」関数
- 結果はスピル(自動展開)で表示される。下のセルが空いていないとエラーになる
- 出力順は範囲内での初出順であり、並び替えではない点に注意
次回予告
次回のテーマは「SORT関数」「FILTER関数」です。並び替えと条件抽出を、それぞれの式だけで行うしくみを、打率ランキングの自動生成を例に解説していきます。
▶︎ 次回:SORT関数・FILTER関数の使い方としくみ



コメント