スポンサーリンク
テクノロジー

Excelで重複データを見つけて消す|条件付き書式・COUNTIF・重複の削除と消えない原因

重複の削除で残す行と判定列を選ぶ

残す条件を並べ替えに反映する

「重複の削除」は、現在の並び順で最初の行を残します。更新日や内容から自動で選ぶ機能ではないため、最新を残す条件は削除前の並べ替えで反映します。

スポンサーリンク
二色のカードを二つの山に分ける手元
残す行と消す行を分けて確かめる

例えば表全体を選び、キーの昇順、更新日の降順で並べ替えます。同日なら元の行番号などで優先順を決めます。更新日が文字列だと順序を誤ることがあるので、日付として扱える列かも確認してください。

新しい行の電話番号が空欄で、古い行には入っているなら、一行を残すと情報が欠けます。項目を確認して統合するか、差のある組を確認待ちに分けます。複数行のよい部分が自動で合成されるわけではありません。

表の選択と判定列のチェックを分ける

  1. フィルターを解除し、非表示の行・列を表示して表の範囲を確認します。
  2. 見出しと、同じ記録に属するすべての列・行を選びます。
  3. 「データ」から「重複の削除」を開きます。
  4. 「先頭行をデータの見出しとして使用する」の状態を確認します。
  5. 判定に使う列だけをチェックし、実行前に列名を読み直します。
  6. 実行後の削除件数と残った行を確認し、意図と違えばすぐに元へ戻します。

メールアドレスがキーなら、その列だけをチェックします。削除されるのは選択した表の該当行全体です。氏名や更新日もチェックすると、それらも一致する条件に変わります。出現回数や元の行番号は、通常は判定列に含めません。

メール列だけを選んで処理すると、その列だけが詰まり、隣の氏名との対応を崩します。判定は一列でも選択は表全体とし、範囲の拡張を聞かれたら関連列を含めます。

削除直後はWindowsならCtrl+Zで取り消せますが、後続の操作やブックを閉じることなどで履歴は失われます。復元には原本の複製を用意します。選択範囲外のセルが一緒に動かない点も、Microsoftの重複削除の手順で確認できます。

共有中の名簿や請求・注文の記録は、作業用のコピーで整理して確認を終えてから反映します。削除件数が想定と違うときや、残す一行を決められないときは、その組を削除せず担当者に確認してください。

詳細設定・UNIQUEで別の一覧を作る

方法ごとの違い

「一意」は、指定した範囲で同じものを一件ずつにした状態です。元の記録を整理するのか、集計や連絡に使う別表を作るのかで方法を選びます。

方法 元データへの影響 向いている用途 確認する点
重複の削除 選択した表から削除 確認済みの表の整理 残す順番と判定列
詳細設定で別の場所へ抽出 原本を残せる 一度だけ一覧を作る 抽出範囲と見出し
UNIQUE 元の範囲を参照する 変更に追従する一覧 対応版と結果の展開先
スポンサーリンク

フィルターの詳細設定

「データ」の「詳細設定」で「指定した範囲」を選びます。見出しを含むリスト範囲と空いた抽出先を指定し、検索条件範囲は空欄、「重複するレコードは無視する」にチェックを付けて実行します。

同じシートの空き領域へ抽出して確認し、必要なら別シートへコピーします。メール一覧ならメール列だけ、行全体を比べるなら対象の列全体を指定します。メールが同じ行から最新一行を選ぶ操作とは区別します。

「選択範囲内」はその場所で絞り込む操作で、削除とは異なります。別の場所への抽出も、元データの変更には自動で追従しません。再作成時は古い結果を継ぎ足さず、出力範囲を整理します。

UNIQUEの引数とスピル

Microsoft 365などの対応版なら、空いたセルに=UNIQUE(A2:A100)と入力すると、一列の値を一件ずつにした一覧を作れます。=UNIQUE(A2:C100)なら、A〜C列の組み合わせで一意の行を返します。メールが同じでもC列の日付が違えば、別の行として残ります。

結果が複数のセルへ広がる動作が「スピル」です。値や結合セルが展開を妨げないよう、下と右を空けます。元データはExcelのテーブルで参照範囲を追従させられますが、スピルする式はテーブルの外に置きます。

=UNIQUE(A2:A100,FALSE,TRUE)の最後のTRUEは「1回だけ現れる値」の指定です。3件あるメールは結果から外れます。一件ずつ残すなら第三引数を省略し、不要な空欄は入力範囲から外します。

一件ずつ残すことと、1回だけの値(第三引数を省略と第三引数がTRUEの比較)
UNIQUEの第三引数で、残る値の意味が変わります。

対応版の最新情報はMicrosoftのUNIQUE関数のページで確認してください。非対応版で使う相手へ渡すときや結果を確定するときは、別の場所へ値として貼り付けます。

空白・全角半角・表記ゆれを整える

元の列を残し、比較用の列を作る

同じに見える二つのセルで、数式バーと=LEN(A2)による文字数を確認します。長さが違えば空白などを疑い、同じなら記号の違いなども調べます。一括変換する前に差の種類を絞ります。

変換結果は「比較用メール」などの補助列に作ります。元の表記と並べ、変換後に同じになった組で必要な区別を失っていないか確認します。

スポンサーリンク

TRIMとノーブレークスペース

=TRIM(A2)は前後の半角スペースを取り、途中で連続する半角スペースを一つへまとめます。単に両端だけを取り除く関数ではないため、内部の空白が意味を持つコードには注意が必要です。全角スペースなど、あらゆる空白を消せるとも考えないようにします。

Webからのコピーには、改行しない空白であるノーブレークスペースが混ざります。TRIMだけでは消せないため、SUBSTITUTEで置換します。CHAR(160)がその空白に対応する環境での例です。

=TRIM(SUBSTITUTE(A2,CHAR(160)," "))

CHARの文字は環境に依存するので、Unicodeの空白を指定するには式のCHAR(160)をUNICHAR(160)へ替えます。CHAR関数とTRIM関数の説明も確認してください。

全角スペースもそろえるなら、=TRIM(SUBSTITUTE(A2," "," "))を補助列で試します。最初の引用符内が全角スペースです。改行やタブは、住所の区切りなど必要な文字との違いを調べます。

ASC・JISと置換ルール

対応する英数字やカタカナは、=ASC(A2)で半角へ、=JIS(A2)で全角へ変換できます。あらゆる記号や名称を統一する機能ではありません。対象はASC関数とJIS関数の説明で確認できます。

「-」「-」「‐」は似ていても別の文字です。「株式会社青空」と「(株)青空」の一致も文字幅だけでは決まりません。記号を全部消すと別の名前までまとめるため、原資料や取引先コードで同一性を確認します。

頻出する名称は、確認済みの「元の表記」と「統一後の表記」の対応表を作ると置換をそろえられます。株式会社の位置の違いや、別法人の似た名前は保留にし、同一かどうかは人が確認します。

同じに見える値の確認先(空白、文字幅、記号、名称)
違いを見つけた部分だけ、比較用の列で整えます。
次のページへ数値・文字列・大文字小文字の判定
スポンサーリンク
  1. 秋の戸口に並ぶかぼちゃの明かりとかぶ、麦束
  2. 資料を手に落ち着いて話し合う二人
  3. ノートパソコンと資料、外付け記憶装置がある机
  4. 冬の木で越冬する卵のうやミノムシ、テントウムシ
  5. 青い折り鶴と三角に折った紙、無地の折り紙