Googleスプレッドシートで重複のない一覧を作るには、UNIQUE関数に元データの範囲を指定します。元の表を削除せず、別の場所に一覧を表示できるので、顧客名や商品名の候補リストを作るときに便利です。
ただし、「重複した名前を一つにまとめる」と「一度しか登場しない名前だけ残す」は別の処理です。この記事では、小さな名簿を例に、基本式・空白除外・複数列の判定・並べ替えを整理します。
まずは1列の重複をまとめる
A1に「担当者」、A2:A6に次のデータがあるとします。結果を表示するC2へ式を入力してください。C2の下には、結果が展開できる空き領域を用意します。
| セル | 入力値 |
|---|---|
| A2 | 佐藤 |
| A3 | 鈴木 |
| A4 | 佐藤 |
| A5 | 田中 |
| A6 | 鈴木 |
=UNIQUE(A2:A6)
この例では、佐藤・鈴木・田中の3行になります。五十音順に自動整列するわけではなく、元データで最初に登場した順です。A列を直接書き換える処理でもありません。
範囲をA2:A1000のように広げれば、範囲内に追加したデータも対象になります。表全体の規模に合わせ、必要な行数を含めてください。
「一度だけ登場する値」を出すには第3引数を使う
構文はUNIQUE(範囲, 列単位, 1回のみ)です。第2引数をFALSEにすると行単位で判定し、第3引数をTRUEにすると、元データ内で一度しか出現しない行だけを返します。
=UNIQUE(A2:A6,FALSE,TRUE)
先ほどの名簿なら、結果は田中だけです。佐藤と鈴木は一つずつ残るのではなく、複数回出現しているため対象外になります。重複を除いた全員の一覧が欲しい場合は、最初のシンプルな式を使いましょう。引数の意味はGoogle公式のUNIQUE関数ヘルプでも確認できます。
空白を除外して一覧を作る
途中に空白がある表や、入力予定の行まで指定した表では、先にFILTERで空白を外すと一覧を整えやすくなります。
=UNIQUE(FILTER(A2:A1000,A2:A1000<>""))
内側のFILTERが、A列に値のある行を取り出し、外側のUNIQUEが重複をまとめます。抽出する範囲と条件範囲の行数は同じにします。FILTER自体の仕様は公式ヘルプを参照してください。
入力が一件もないときも空欄表示にしたい場合は、IFNAを組み合わせられます。
=IFNA(UNIQUE(FILTER(A2:A1000,A2:A1000<>"")),"")
この形は、対象がないときの#N/Aを空欄にします。元データ側の#N/Aまで見えなくなる場合があるので、式が正常に動くことを確認してから加えてください。全角スペースだけが入ったセルは、空文字とは異なるため、この条件だけでは除外できません。
2列を指定すると「組み合わせ」で重複を判定する
A列が担当者、B列が部署なら、次の式は2列の組み合わせが同じ行をまとめます。
=UNIQUE(A2:B100)
「佐藤・営業」と「佐藤・制作」は別の行として残ります。担当者名だけで一人にまとめたい場合はA列だけを対象にしてください。異なる部署を無理に一つへまとめると、必要な情報を落とすことがあります。
先に「何が同じなら重複か」を決めるのが重要です。商品名だけなのか、商品名と色なのか、顧客IDなのかで指定範囲が変わります。名前が同じ別人を区別する表では、名前よりIDを判定の基準にします。
並べ替えたい場合はSORTを組み合わせる
=SORT(UNIQUE(FILTER(A2:A1000,A2:A1000<>"")),1,TRUE)
重複をまとめた結果を、1列目の昇順で表示する例です。TRUEをFALSEにすれば降順になります。複数列の結果を並べ替える場合は、何列目を基準にするかも決めます。詳しい指定方法はSORT関数の公式ヘルプを確認できます。
重複が残る・結果を表示できないときの確認順
- 同じ名前に見える場合:末尾の空白、改行、全角・半角など、実際の入力値を比べる。
- 同じ名前が複数行になる場合:複数列を指定し、別の列の値が違っていないか確認する。
- 結果が展開できない場合:表示先の下や右にある値、数式、結合セルを確認する。
- 追加データが出ない場合:追加した行が数式の参照範囲に入っているか確認する。
UNIQUEは入力内容の表記ゆれを自動で統一する機能ではありません。前後の空白を整える場合も、元データを別列に残してから補助列で処理すると、意図しない変換を比較できます。
元データを残すか、重複行を削除するかで選ぶ
更新に合わせて候補一覧を作りたいときはUNIQUEが向いています。表そのものの重複行を整理したい場合は、スプレッドシートで重複を削除する方法も選択肢です。削除の前には、どの列を基準にするかと、残したいデータを確認してください。
