Excel一覧 Excel操作・関数 データ操作 重複データの削除・強調

【Excel】抽出した一意データを別シートに自動出力する方法|関数・Power Query・VBAによる効率化テクニック

Excelでデータを整理していると、「重複のあるリストから一意な値だけを抽出したい」「ユニークな値だけを別シートに出力して使いたい」といったニーズが生まれることは非常に多くあります。

たとえば、

  • 顧客リストから1人1件ずつの名前を抽出して別シートで管理したい

  • 商品マスタの一覧から重複のない商品コードだけを新シートにまとめたい

  • 毎月の取引先を一覧にし、個別処理用にシートを作成したい

このようなケースでは、「一意データ(ユニークデータ)の抽出」と「別シートへの自動出力」を組み合わせることで、Excel作業の効率が一気に向上します。

本記事では、Excelで一意なデータを抽出し、それを別シートに自動で出力する方法を、関数・Power Query・VBAそれぞれの視点からわかりやすく解説します。

一意データとは?重複削除とは違う処理

まず明確にしておきたいのが、「重複の削除」と「一意データの抽出」は似て非なる処理だということです。

用語意味
重複の削除同一の行をブック内から消去(元データが変化)
一意データの抽出重複のない値だけを抜き出して表示(元データは保持)

今回は、「元のデータはそのままに、一意な値だけを別シートへ出力する方法」を扱います。

【Excel】重複データをまとめる方法|関数・ピボット・Power Queryを使った実践テクニック

✅ Excel 365の「UNIQUE関数」で別シートに自動出力する方法

Excel 365以降では、「UNIQUE関数」を使えば、非常に簡単に一意な値の抽出が可能です。

手順

  1. 抽出元のシート(例:Sheet1)にデータがあるとします(A列に氏名)

  2. 別シート(例:Sheet2)のA1セルに以下の式を入力:

    =UNIQUE(Sheet1!A2:A100)

  1. 自動的に、重複のないデータが縦に展開されます

特徴

  • データが更新されると、別シートの結果もリアルタイムに反映

  • 1列でも複数列でも対応可能(=複数キーの一意抽出もOK)

  • 並べ替えたい場合は SORT(UNIQUE(...)) とネスト可

注意点

  • 対応バージョンは Excel 365 / 2021 以降

  • セルが自動的に展開されるため、下方向に空きセルが必要

【Excel】削除せずに最新データだけを別シートへ出力する方法|関数・Power Query・VBAによる自動抽出テクニック

✅ フィルターの詳細設定で一意データを別シートへ出力する方法(全バージョン対応)

古いExcelバージョンでも使えるのが、「詳細設定フィルター」機能です。

操作手順

  1. 元データの範囲を選択

  2. 「データ」タブ →「詳細設定」

  3. 「別の場所にコピー」を選び、「重複を無視する」にチェック

  4. コピー先の別シートのセルを指定

  5. 「OK」で一意データを抽出

特徴

  • Excel 2007以降すべてのバージョンに対応

  • 数式不要で簡単に操作できる

注意点

  • データ更新時は手動で再実行が必要

  • 出力先が常に同じであることに注意

【Excel】重複を削除して1つだけ残す方法|削除・抽出・自動化までの完全ガイド

Power Queryでユニーク抽出+別シートへの出力する方法(更新対応)

Power Queryを使うと、元データの更新に応じて再抽出が可能な、持続性の高い仕組みを作ることができます。

手順

  1. 元データの範囲を選択 →「データ」タブ →「テーブルまたは範囲から」

  2. Power Queryエディタが起動

  3. 対象列を右クリック →「重複の削除」

  4. 「閉じて読み込む」→「新しいワークシートに出力」

特徴

  • ノーコードで一意抽出+出力が可能

  • データ更新に対応(「更新」ボタンで再処理)

  • 抽出条件のカスタマイズ(フィルタや並び替え)も可能

【Excel】重複データを抽出し件数をカウントする方法|関数・ピボット・Power Queryを活用した集計テクニック

VBAで一意データを別シートに出力(自由度・大量処理向け)

より高度なカスタマイズや大量データへの対応が求められる場合は、**VBA(マクロ)**が最適です。

サンプルコード

Sub 一意データを別シートに出力()

Dim srcWs As Worksheet, destWs As Worksheet
Dim lastRow As Long, i As Long, destRow As Long
Dim dict As Object, value As Variant

Set srcWs = Worksheets("Sheet1")
Set destWs = Worksheets.Add
destWs.Name = "ユニーク出力"
Set dict = CreateObject("Scripting.Dictionary")

lastRow = srcWs.Cells(srcWs.Rows.Count, 1).End(xlUp).Row
destRow = 1

For i = 2 To lastRow

value = srcWs.Cells(i, 1).Value

If Not dict.exists(value) Then

dict.Add value, 1
destWs.Cells(destRow, 1).Value = value
destRow = destRow + 1

End If

Next i

MsgBox "一意な値を新しいシートに出力しました", vbInformation

End Sub

このマクロの特徴

  • 「Sheet1」のA列から重複を除いた値を新しいシートに出力

  • データ量が多くても処理が高速

  • 任意の列・範囲に変更可能(自由度が高い)

・一意データの抽出でよくある注意点

トラブル原因解決策
抽出結果に空白が含まれる空白セルもユニークと判定される=UNIQUE(FILTER(範囲, 範囲<>"")) を使う
スペース違いで別データと判定される全角・半角や余分なスペースTRIMCLEANで前処理を行う
順番がバラバラ自動並べ替えされない場合があるSORT(UNIQUE(...)) で明示的に指定

・まとめ:Excelでの一意データ抽出+自動出力は実務の武器になる!

Excelでのデータ管理において、「一意なデータの抽出」と「別シートへの出力」は、集計・整理・報告書作成などに欠かせない基本操作です。

方法特徴
UNIQUE関数最も簡単。Excel 365以降対応
詳細フィルターバージョン問わず対応可能。マウス操作のみで実行可能
Power Query自動更新対応。複数列対応・高度な整形も可能
VBA高速・カスタマイズ性抜群。自動化にも最適

必要に応じて適切な方法を選び、日々のExcel業務をよりスマートにこなしていきましょう!

-Excel一覧, Excel操作・関数, データ操作, 重複データの削除・強調