ADVERTISEMENT

【Googleスプレッドシート】重複行をUNIQUE関数で取り除き別シートに展開!クリーン版の保管

【Googleスプレッドシート】重複行をUNIQUE関数で取り除き別シートに展開!クリーン版の保管
🛡️ 超解決

顧客リストや商品データを扱っていると、重複したレコードが混在することがよくあります。元データを直接書き換えるのはミスのリスクが高いため、別シートに重複削除済みのクリーン版を保管しておく運用が安全です。

UNIQUE関数を使えば、元データを変更せずに別シートでクリーン版を動的に表示できます。元データに新しいレコードが追加されても、UNIQUE関数の結果が自動更新されるため、メンテナンスフリーで常に最新のクリーン版が維持されます。

本記事では、別シートにUNIQUE結果を展開する手順、複数列での重複判定、IMPORTRANGE併用での別ファイル参照、運用上の注意点までをまとめて解説します。

【要点】UNIQUEで別シートにクリーン版を作る3つのポイント

  • =UNIQUE(元シート!A2:E1000) で別シートに展開: シート名と範囲を指定するだけで、別シートに動的なクリーン版が出来上がります。
  • 複数列指定で行単位の重複判定: 1列だけでなく複数列の組み合わせで一意性を判断できます。
  • SORT関数で並び替えも同時に: =SORT(UNIQUE(…)) でクリーン版を整理された並びで表示できます。

ADVERTISEMENT

UNIQUEを別シートで使う構造の利点

元データに直接「重複削除」を実行すると、データが破壊的に書き換わり、重複していた元の情報が失われます。後から「やっぱり重複は残しておいた方が良かった」と思っても復元が大変です。

別シートにUNIQUE関数で展開する方法なら、元データはそのまま温存され、別シートに常に最新のクリーン版が表示されます。元データに新しい行が追加されると、UNIQUEの結果も自動的に更新されるため、保守の手間がかかりません。

この設計はデータベース的な考え方で、元データが「マスタ」、UNIQUE結果が「ビュー」に相当します。マスタは履歴として残し、業務で使うのはビューという分離が、データ品質とトレーサビリティの両立を実現します。

別シートにUNIQUE結果を展開する基本手順

  1. 新しいシートを追加します
    画面下部の「+」アイコンで新規シートを作成し、「クリーン版」のような分かりやすい名前に変更します。
  2. 新シートのA1にヘッダーをコピーします
    元データのヘッダー行(A1:E1のような範囲)を新シートのA1にコピー貼り付けします。これでUNIQUE結果と整合する見出しが揃います。
  3. A2に =UNIQUE(元シート名!A2:E1000) を入力します
    シート名を含めて参照することで、別シートのデータを動的に取得します。範囲は将来の追加分も見込んで広めに指定するのがおすすめです。
  4. 結果が縦に展開されたことを確認します
    重複行が削除された一意なレコードが新シートに並びます。元データに行を追加すると、新シートにも自動反映されます。
  5. 必要に応じてSORTで並び替え
    =SORT(UNIQUE(元シート名!A2:E1000), 1, TRUE) のように外側にSORTを掛けると、A列で昇順に並び替えされた状態で表示できます。

複数列での重複判定とIMPORTRANGE連携

  1. 複数列指定で組み合わせ重複を判定
    =UNIQUE(元シート名!A2:E1000) のように複数列を範囲指定すると、すべての列の値が一致する行だけが重複として削除されます。氏名+メールアドレスの組み合わせなどで真の重複が分かります。
  2. 特定列だけで重複判定したい場合
    =UNIQUE(元シート名!A2:A1000) のように1列だけを範囲指定し、必要なら結果のキーで他のシートをVLOOKUPする2段階構成にします。
  3. IMPORTRANGEで別ファイルから取得
    =UNIQUE(IMPORTRANGE(“スプレッドシートのID”, “元シート名!A2:E1000”)) のように書くと、別ファイルのデータをUNIQUE処理した結果を表示できます。
  4. 初回はアクセス許可が必要
    IMPORTRANGEを使う場合、初回参照時に「アクセスを許可」のダイアログが出るので承認します。承認後は自動同期されます。
  5. 条件付きで重複削除
    =UNIQUE(FILTER(元シート名!A2:E1000, 元シート名!F2:F1000=”アクティブ”)) のようにFILTERと組み合わせると、特定条件のレコードだけクリーン版に展開できます。

ADVERTISEMENT

UNIQUE別シート展開でつまずきやすいパターン

結果が #REF! エラーになる

UNIQUEの結果が広がる先のセルに既存の値が入っているとエラーになります。新シートのA2以降にすでに値があれば削除してから関数を入力してください。複数列のUNIQUEは右方向にも結果が広がるため、隣接する列もチェックします。

表面上は同じ値なのに別物として扱われる

末尾の半角スペースや全角半角の混在で別レコードとして残ることがあります。元データ側で TRIM・ASC・JIS関数で表記を統一してから UNIQUE を掛けると、本来の重複が正しく削除されます。

計算が遅い

範囲を A:A のように列全体に指定すると空セルまで処理対象になり処理が重くなります。実際のデータ範囲(A2:A10000など)に絞るか、ARRAYFORMULAで明示的に有効範囲を指定すると速度が改善します。

クリーン版を手作業で編集したい

UNIQUEの結果は数式の出力なので直接編集できません。手編集が必要な運用なら、UNIQUE結果を「コピー→値のみ貼り付け」で固定値化してから編集する2段階フローにしてください。

クリーン版作成方法の比較

方法 動的更新 保守性
別シートでUNIQUE関数 自動 非常に良い
データ→重複を削除 手動再実行 元データ破壊で危険
QUERYでDISTINCT指定 自動 SQL知識が必要
Apps Scriptで処理 トリガー次第 カスタマイズ性高
IMPORTRANGE+UNIQUE 自動 別ファイル連携も可能

まとめ

重複行をUNIQUE関数で別シートに展開する設計は、元データを温存しつつクリーン版を維持する効率的な手法です。=UNIQUE(元シート名!A2:E1000) のような数式1つで動的なクリーン版が作れ、元データへの追加も自動反映されます。複数列の組み合わせ重複判定、SORTでの並び替え、FILTERとの併用、IMPORTRANGEでの別ファイル参照と組み合わせると、業務に合わせた柔軟なデータ整理が可能です。データのトレーサビリティと品質管理の両立に役立つ基本パターンとして覚えておいてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

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