サクラエディタで重複行を消すときは、先に並べ替えて、同じ行を隣り合わせにしてから、隣り合った同じ行を1行にまとめるのが基本です。サクラエディタで重複削除に使う機能は「マージ」です。これは隣り合った同じ行だけをまとめるため、ファイル内の離れた場所にある同じ行は、並べ替えないと残ります。

もう一つ大事なのが範囲の選び方です。見出し行まで選んで並べ替えると、見出しがデータの途中に紛れ込みます。逆に選択範囲が足りないと、最後の数行が処理されません。この記事では、範囲の選び方と、削除前後の行数の確かめ方を含めて手順を説明します。

作業の流れ

  1. 元ファイルのコピーを作る
  2. 削除前の行数を控える
  3. 見出し行を除いて、データ部分だけを選ぶ
  4. 選んだ範囲を並べ替える
  5. 同じ範囲を選び直して、マージで重複行をまとめる
  6. 削除後の行数を確かめ、削除した件数が妥当か見る

なぜ並べ替えが先なのか

マージは、選択範囲の中で上下に続いている同じ行を1行にまとめます。並べ替えずに実行すると、次のようになります。

元の並び 並べ替えずにマージ 並べ替えてからマージ
りんご りんご みかん
みかん みかん りんご
りんご りんご

並べ替えずに実行した場合、「りんご」の2行は間に「みかん」があって隣り合っていないため、両方残ります。並べ替えると同じ行が隣り合うので、1行にまとまります。

ただし並べ替えると、元の行の順番は失われます。登録順や時系列など、元の並び順に意味があるファイルでは、この方法を使う前に順番を残す必要がないか確かめてください。

手順1:作業前にコピーと行数を控える

まず、元ファイルをコピーしてからコピーの方を開きます。保存する前ならCtrl+Zで元に戻せますが、上書き保存して閉じると戻せません。

次に、削除前の行数を控えます。

  • Ctrl+Endでファイルの最後に移動し、ステータスバーに出る行番号を見る
  • ファイルの最後が改行で終わっていると、カーソルはデータ最終行の次の空行に移ります。行番号がデータ行より1多く出ていないか、画面で確かめる
  • 見出し行がある場合は「全体の行数」と「見出しを除いたデータ行数」を分けて記録する

例:全体1,201行、見出し1行、データ1,200行

手順2:見出し行を除いて範囲を選ぶ

見出し行がある場合は、2行目からを選びます。

  1. 2行目の行頭をクリックしてカーソルを置く
  2. Ctrl+Shift+Endを押して、ファイルの最後まで選ぶ
  3. 選択範囲の始まりが2行目の行頭になっているか、終わりがデータ最終行まで含んでいるかを確認する

途中だけを処理したい場合は、範囲の始まりを行頭、終わりを最後の行の末尾にそろえます。行の途中から選択すると、その行がどう扱われるか分かりにくくなります。

見出し行がないファイルなら、Ctrl+Aで全体を選んでかまいません。

手順3:並べ替えてからマージする

サクラエディタでは、並べ替え(昇順・降順)とマージは、標準の設定では「ツール」メニューにあります。メニューの表記や位置は版や設定で変わることがあるため、見つからない場合はヘルプや共通設定のキー割り当て一覧で、機能の名前を探してください。

  1. データ部分を選んだまま、昇順(または降順)で並べ替える
  2. 並べ替えた後、選択が外れていたら手順2と同じ方法で選び直す
  3. マージを実行する
  4. 先頭行に見出しが残っていて、データの途中に見出しが紛れ込んでいないことを確かめる

手順4:削除後の行数を確かめる

手順1と同じ方法で、もう一度行数を確かめます。

項目 例
削除前のデータ行数 1,200
削除後のデータ行数 1,130
削除された行数 70

削除された行数が多すぎる・少なすぎると感じたら、次の点を確かめます。

  • もう一度マージしても行数が変わらないか:同じ範囲を選んで再びマージし、行数が減らなければ、隣り合った重複は残っていません
  • 重複していると分かっている値を検索する:Ctrl+Fでその値を検索し、1件だけ見つかるかを見る
  • 空行が残っていないか:空行同士も同じ行として1行にまとまります。空行が1行残ったときは、残してよいかを判断する

同じに見えて消えない行の原因

マージは行全体を文字単位で比べるため、1文字でも違うと別の行として残ります。

原因 例
行末のスペースやタブ 「りんご」と「りんご 」
全角と半角 「ABC」と「ABC」
スペースとタブの違い 区切りが半角スペースとタブで混在
大文字と小文字 「Apple」と「apple」
最後の行の改行の有無 ファイルの最後の行だけ、改行がないため別の行として残る

スペースやタブは、空白記号を表示する設定にすると見分けやすくなります。設定の場所はタイプ別設定などにあるので、使っている版の画面で確認してください。大文字・小文字を区別するかどうかも、数行の小さなテストファイルで一度確かめておくと安心です。

「株式会社」と「(株)」のような表記ゆれは、文字が違うのでこの方法ではまとまりません。表記ゆれを名寄せする作業は別に行ってください。

CSVで使うときの注意

サクラエディタのマージは行全体が完全に一致するかだけを見ます。CSVで使うときは次の点に気をつけてください。

  • 特定の列だけで重複を判定することはできない:「顧客IDが同じなら重複」のように、列を基準に消したい場合は、表計算ソフトなど列を扱える方法を使う
  • セル内改行を含むCSVには向かない:1件のデータが複数行に分かれているため、並べ替えると1件分の行がばらばらになる。作業前にダブルクォートで囲まれた中に改行がないか確かめる
  • 見出し行は必ず選択範囲から外す:見出しが途中に紛れ込むと、他のソフトで取り込むときに見出しと同じ内容の行がデータとして入ってしまう

作業後のチェックリスト

  • 元ファイルのコピーが残っている
  • 先頭行が見出しのままで、データの途中に見出しが紛れ込んでいない
  • 削除前後の行数と削除件数を記録した
  • 再びマージしても行数が変わらない
  • 重複していると分かっている値が1件だけになっている
  • 並び順が変わっても困らないファイルである
おすすめの記事