ADVERTISEMENT

【Googleスプレッドシート】UNIQUE関数で重複を除外!複数列の組合せでの一意化

【Googleスプレッドシート】UNIQUE関数で重複を除外!複数列の組合せでの一意化
🛡️ 超解決

データの重複に悩んでいませんか。特に複数の列を組み合わせたときの一意のデータだけを取り出したい場合、手作業で確認するのは大変です。UNIQUE関数を使えば、指定した範囲から重複する行を自動で除外し、一意のデータだけを抽出できます。この記事では、UNIQUE関数の基本的な使い方から複数列の組合せでの一意化の方法までを解説します。

【要点】UNIQUE関数で重複を除去し複数列の組合せを一意化する方法

  • =UNIQUE(範囲): 指定した範囲から重複する行を削除して一意の行だけを表示します。
  • =UNIQUE(範囲, TRUE): 列方向の重複を削除し、一意の列だけを抽出します。
  • =UNIQUE(範囲, FALSE, TRUE): 範囲内で完全に1回だけ出現するデータを取り出せます。

ADVERTISEMENT

UNIQUE関数の基本と複数列対応の仕組み

UNIQUE関数は、指定した配列や範囲から重複する値を取り除き、一意の値または行を返します。構文は「=UNIQUE(範囲, [列単位], [完全一致])」です。引数「列単位」にTRUEを指定すると、行ではなく列のレベルで重複を判定します。「完全一致」にTRUEを指定すると、範囲内で1回だけ出現する値だけを抽出します。

複数列の組合せで一意化したい場合、範囲に複数列を指定するだけです。例えば「=UNIQUE(A2:B10)」とすると、A列とB列の値の組合せが重複している行が削除され、一意の行だけが残ります。このとき、各行のすべての列の値が完全に一致する場合に重複とみなされます。つまり、複数列の組合せでの一意化は、範囲を複数列に広げることで簡単に実現できるのです。

複数列の組合せで重複を除外する具体的な手順

ここからは、実際にUNIQUE関数を使って複数列の組合せで一意のデータを抽出する手順を説明します。まずは基本的な単一列での使い方を確認し、その後に複数列に応用します。

単一列で重複を削除する基本手順

  1. データを用意する
    例えばA列に商品名が入力されたリストを準備します。重複した商品名が含まれていることを確認してください。
  2. UNIQUE関数を入力する
    結果を表示したいセルに「=UNIQUE(A:A)」と入力します。A列全体を範囲に指定すると、すべての重複が削除された一意の商品名が縦に並びます。
  3. 結果を確認する
    関数を入力すると、自動的にスプレッドシートが配列を展開し、一意の値が表示されます。空白セルは結果に含まれないことを確認しましょう。

複数列の組合せで一意の行を抽出する手順

  1. 複数列のデータを用意する
    例えばA列に「都道府県」、B列に「市区町村」が入力されている表を用意します。同じ都道府県と市区町村の組合せが複数行ある状態を作ってください。
  2. 範囲を複数列に指定する
    結果を表示するセルに「=UNIQUE(A2:B10)」と入力します。A2からB10までの範囲を指定することで、A列とB列の組合せが一意の行だけが抽出されます。
  3. 組み合わせの重複が取り除かれる
    実行結果を見ると、同じ都道府県と市区町村の組合せが複数あった場合、最初の1行だけが残り、後の行は表示されません。これで重複のないマスターデータが簡単に作れます。

オプション引数を活用した高度な抽出方法

  1. 列単位で重複を削除する
    「=UNIQUE(A1:C3, TRUE)」のように第二引数にTRUEを指定すると、列ごとの重複を削除します。つまり、列の値が重複している列を1列にまとめます。
  2. 1回しか出現しないデータだけ抽出する
    「=UNIQUE(A2:A10, FALSE, TRUE)」とすると、範囲内で1回だけ現れる値だけが抽出されます。完全に一意のデータを特定したい場合に便利です。
  3. 複数列とオプションを組み合わせる
    「=UNIQUE(A2:B10, FALSE, TRUE)」とすれば、A列とB列の組合せが1回だけ出現する行だけを取り出せます。頻度分析にも応用できます。

UNIQUE関数使用時の注意点とよくあるトラブル

空白セルの扱いについて

UNIQUE関数は、範囲に空白セルが含まれている場合、空白も一意の値として認識します。そのため、予期せず空白行が結果に含まれることがあります。空白を除外したい場合は、あらかじめ範囲を空白セルがない行までに絞るか、FILTER関数と組み合わせて空白を除外することをおすすめします。

大文字と小文字の区別について

UNIQUE関数は大文字と小文字を区別します。「Apple」と「apple」は別の値として扱われます。文字列の大文字小文字を統一したい場合は、UPPER関数やLOWER関数を使って事前に変換してからUNIQUEを適用するとよいでしょう。

動的配列の動作に注意する

UNIQUE関数は結果をスピル(自動展開)します。結果が表示されるセル範囲にすでにデータが入力されていると、エラー「#REF!」が発生します。関数を入力する前に、結果が出力される範囲が空であることを確認してください。

エラー値が含まれる場合

範囲内にエラー値(#N/A、#VALUE!など)が含まれていると、UNIQUE関数はそのエラーも一意の値として結果に含めます。エラーを除外したい場合は、IFERROR関数などで事前にエラーを処理しておく必要があります。

ADVERTISEMENT

UNIQUE関数と他の重複削除方法の比較

方法 特徴 複数列対応
UNIQUE関数 数式で動的に一意のリストを生成する 可能(範囲指定のみ)
フィルタ(データメニューのフィルタ機能) 手動で重複を削除する操作に適している 可能(すべての列を選択)
QUERY関数 SQLライクな抽出ができ、グループ化も可能 可能(SELECT DISTINCT)
Apps Script 高度なカスタマイズが可能だが、スクリプトが必要 可能(プログラミング次第)

UNIQUE関数は数式一つで完結する手軽さが魅力です。QUERY関数と比べると柔軟性は劣りますが、単純な重複削除には最適です。フィルタ操作は結果が静的なのに対し、UNIQUE関数は元データが変われば自動更新される利点もあります。

まとめ

UNIQUE関数を使えば、単一列だけでなく複数列の組合せでも重複を簡単に除外できます。範囲を複数列に指定するだけで、行全体の組合せが一意のデータを抽出できることをお伝えしました。また、オプション引数を活用すれば、列単位の重複削除や1回だけのデータ抽出も可能です。次におすすめの操作は、抽出した一意のデータをSORT関数で並べ替えることです。UNIQUEとSORTを組み合わせると、整列されたマスターリストが作成できてとても便利です。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。