重複行削除ツールでできること
重複行とは、リストの中に2回以上出てくる行のことです。2つのメールアドレスのリストを統合したとき、複数のレポートからキーワードをコピーしたとき、同じ項目を誤って2回貼り付けたときなどにたまっていきます。このツールはテキストを1行ずつ読み、重複を取り除きます。
使い方は3通りあり、残す行のボタンで選びます。
- 各行を1つずつ:重複を削除し、それぞれの行の最初の1行を残します。一般的な「重複の削除」はこの結果です。
- 1回だけ出てくる行:重複がある行は、最初の1行も含めてすべて削除します。本当に一意の行だけが残ります。
- 重複した行のみ:2回以上出てきた行を、それぞれ1回ずつ一覧にします。何が重複していたかを調べるときに使います。
比較は行単位で行われるので、日本語のリストでも問題なく使えます。たとえば顧客名、商品名、住所、ハッシュタグのリストの重複チェックに便利です。
使い方
- リストをリスト欄に、1行に1項目ずつ貼り付けます。
- 残す行でオプションを選びます。
- 「Apple」と「apple」を同じものとして数えたい場合は、大文字小文字を区別しないをオンにします。
- 行末のスペースに意味がある場合を除き、行頭・行末のスペースを無視はオンのままにします。
- コピーで結果をコピーするか、ダウンロードで保存します。
ツールの下のメッセージに、削除した行数と残った行数が表示されます。
オプションの詳細
大文字小文字を区別しないは、英字の大文字・小文字を無視して行を比較します。最初に出てきた表記が残るので、「apple」が「Apple」より前にあれば「apple」が残ります。全角英字と半角英字は別の文字として比較されるので、表記をそろえたい場合は先にプレーンテキスト変換で全角英数字を半角にしておきましょう。
行頭・行末のスペースを無視は、比較の前に各行の先頭と末尾のスペースとタブを取り除きます。全角スペースも対象です。残る行そのものは変更されません。インデントしたコードのように行頭のスペースに意味がある場合はオフにしてください。
空行を削除は、「各行を1つずつ」を選んだときに表示され、初期設定でオンです。オフにすると空行が元の位置に残るので、リストのグループを空行で区切っている場合に便利です。空行同士が重複として扱われることはありません。
回数を表示は、「重複した行のみ」を選んだときに表示されます。各行の後ろに、出てきた回数をかっこ付きで加えます。
変換例
以下はすべて、ページのサンプルリスト(#travel、#カフェ、#Travel、#東京、#カフェ、空行、#旅行、#東京、#カフェ)を使った結果です。
| 設定 | 結果 |
|---|---|
| 各行を1つずつ | #travel, #カフェ, #Travel, #東京, #旅行 |
| 各行を1つずつ、大文字小文字を区別しない | #travel, #カフェ, #東京, #旅行 |
| 1回だけ出てくる行 | #travel, #Travel, #旅行 |
| 重複した行のみ、回数を表示 | #カフェ (3), #東京 (2) |
| 重複した行のみ、回数を表示、大文字小文字を区別しない | #travel (2), #カフェ (3), #東京 (2) |
ここでは場所を取らないよう結果をカンマで区切って表示していますが、ツールでは各項目がそれぞれ1行に表示されます。
初期設定では、ツールの下に「重複した3行を削除しました。 残りは5行です。」と表示されます。
仕組み
このツールはテキストを改行ごとに分割し、各行の比較用のキーを作ります。キーは行そのもので、行頭・行末のスペースを無視がオンなら前後の空白を取り除き、大文字小文字を区別しないがオンなら小文字にそろえたものです。各キーが出てくる回数を数えたうえで、行を順番に見ていき、どれを残すかを決めます。残すのはキーではなく元の行なので、スペースや大文字・小文字が変わることはありません。
コツ
- 並べ替えは重複削除の後で。 重複を削除しても順番は保たれます。リストを並べ替えたい場合は、結果をアルファベット順並べ替えツールに貼り付けてください。
- 乱れたリストは先に整える。 「New York」と「New York」のように行の途中にスペースが2つある行は一致しません。こうした行は空白削除ツールで直せます。
- 1行に1項目。 項目がカンマで区切られている場合は、先に1項目ずつ改行で分けるか、並べ替えツールの「カンマ」オプションを使ってください。並べ替えツールでも重複を削除できます。
- PDF からコピーして行が途中で切れている文章は、先に改行削除ツールでつなげてください。
重複行を削除するほかの方法
Excel:列を選択し、「データ」タブの「重複の削除」を選びます。Excel 365 では =UNIQUE(A1:A100) という数式も使えます。
Google スプレッドシート:「データ」メニューの「データ クリーンアップ」から「重複を削除」を使うか、=UNIQUE(A1:A100) という数式を使います。
Notepad++:Edit メニュー(日本語表示では「編集」)の行の操作(Line Operations)から、重複行の削除(Remove Duplicate Lines)を選びます。
コマンドライン:sort file.txt | uniq は重複を削除しますが、行の並べ替えも行います。awk '!seen[$0]++' file.txt なら元の順番を保てます。
Python:list(dict.fromkeys(lines)) で、各行の最初の1行を順番どおりに残せます。
メールや Web ページから取ったちょっとしたリストなら、表計算ソフトを開くよりここに貼り付ける方が早いことがほとんどです。