Excelは、初期のバージョンをはるかに超えて単なるスプレッドシートソリューションとして成長した多用途のアプリケーションです。 レコードキーパー、アドレス帳、予測ツールなどとして採用され、多くの人々が意図しない方法でExcelを使用することさえありました。
自宅やオフィスでExcelを多用すると、膨大な数のレコードを扱っているためにExcelファイルがすぐに扱いにくくなることがあります。
幸いなことに、Excelには重複レコードを見つけて削除するのに役立つ組み込み関数があります。 残念ながら、これらの関数を使用する際の注意点がいくつかありますので、注意してください。削除するつもりがないレコードを無意識のうちに削除する可能性があります。 また、以下の2つの方法では、削除された内容を確認せずに重複を即座に削除できます。
実行する前に、どの行が関数によって削除されるかを確認できるように、最初に重複する行を強調表示する方法についても説明します。 完全に重複している行を強調表示するには、カスタムの条件付き書式設定ルールを使用する必要があります。
重複削除機能
住所を追跡するためにExcelを使用しており、レコードが重複していると思われるとします。 下記のExcelワークシートの例を見てください。
「Jones」レコードが2回表示されていることに注目してください。 このような重複レコードを削除するには、リボンの[ データ ]タブをクリックして[ データツール]セクションの[ 重複の削除 ]機能を見つけます。 重複の削除をクリックすると、新しいウィンドウが開きます。
ここでは、列の上部に見出しラベルを使用するかどうかに基づいて決定する必要があります。 表示する場合は、[ My Data Has Headers ]というラベルのオプションを選択します。 見出しラベルを使用しない場合は、列A、列BなどのExcelの標準の列指定を使用します。
この例では、列Aのみを選択して[ OK ]ボタンをクリックします。 オプションウィンドウが閉じ、Excelが2番目の「Jones」レコードを削除します。
もちろん、これは単純な例です。 Excelを使用し続ける住所レコードは、はるかに複雑になる可能性があります。 たとえば、次のようなアドレスファイルがあるとします。
3つの「Jones」レコードがありますが、2つのみが同一であることに注意してください。 重複レコードを削除するために上記の手順を使用した場合、1つの「Jones」エントリのみが残ります。 この場合、決定基準を拡張して、それぞれ列Aと列Bにある姓と名の両方を含める必要があります。
これを行うには、もう一度リボンの[ データ ]タブをクリックし、[ 重複の削除 ]をクリックします。 今度は、オプションウィンドウが表示されたら、列Aと列Bを選択します。OKボタンをクリックすると、今度はExcelが「Mary Jones」レコードを1つだけ削除したことに注意してください。
これは、A列ではなくA列とB列に基づいてレコードを照合して重複を削除するようにExcelに指示したためです。選択する列が多いほど、Excelがレコードを重複と見なす前に満たす基準が増えます。 完全に重複している行を削除したい場合は、すべての列を選択してください。
Excelから重複が削除された回数を知らせるメッセージが表示されます。 しかし、どの行が削除されたのかはわかりません。 この関数を実行する前に、最後のセクションまでスクロールして、重複行を最初に強調表示する方法を確認してください。
高度なフィルタ方法
重複を削除する2つ目の方法は、詳細フィルタオプションを使用することです。 まず、シート内のすべてのデータを選択してください。 次に、リボンの[データ]タブで、[ 並べ替えとフィルタ]セクションの[ 詳細設定 ]をクリックします。
表示されるダイアログで、必ず[ ユニークレコードのみ]チェックボックスをオンにします。
リストをその場でフィルタリングするか、重複していない項目を同じスプレッドシートの別の部分にコピーすることができます。 奇妙な理由で、データを他のシートにコピーすることはできません。 別のシートに配置する場合は、まず現在のシート上の場所を選択してから、そのデータを切り取り、新しいシートに貼り付けます。
この方法では、削除された行数を示すメッセージさえ表示されません。 行が削除されました。
Excelで重複行を強調表示する
削除する前にどのレコードが重複しているのかを確認したい場合は、少し手作業で作業する必要があります。 残念ながら、Excelには完全に重複している行を強調表示する方法がありません。 重複セルを強調表示する条件付き書式設定の機能がありますが、この記事では重複行について説明します。
あなたがしなければならない最初のことはあなたのデータのセットの右側の列に式を追加することです。 式は簡単です。その行のすべての列を連結するだけです。
= A1&B1&C1&D1&E1
以下の例では、AからF列にデータがあります。ただし、最初の列はID番号なので、以下の計算式から除外します。 重複をチェックするデータがあるすべての列を必ず含めてください。
その式をH列に入れて、それから私のすべての行にドラッグしました。 この式は、各列のすべてのデータを1つの大きなテキストとして単純に結合したものです。 それでは、あといくつかの列をスキップして、次の式を入力します。
= COUNTIF($ H $ 1:$ H $ 34、$ H1)> 1
ここではCOUNTIF関数を使用しており、最初のパラメータは調べたいデータのセットです。 私にとっては、これは1行目から34行目までの列H(コンバインデータ式)です。これを行う前に、ヘッダー行を削除することもお勧めです。
また、文字と数字の前に必ずドル記号($)を使用してください。 たとえば、1000行のデータがあり、結合行式がF列にある場合、式は代わりに次のようになります。
= COUNTIF($ F $ 1:$ F $ 1000、$ F1)> 1
2番目のパラメータは列文字の前にドル記号しかないのでロックされていますが、行番号はロックしたくありません。 繰り返しになりますが、これをドラッグしてすべてのデータ行を作成します。 これはこのようになり、重複行はTRUEになります。
それでは、それらが重複している行なので、それらにTRUEがある行を強調表示しましょう。 まず、行と列の左上の交差点にある小さな三角形をクリックして、データのワークシート全体を選択します。 [ホーム]タブに移動し、[ 条件付き書式 ]をクリックして[ 新しい規則 ]をクリックします。
ダイアログで、[ 数式の使用 ]をクリックしてどのセルをフォーマットするかを決定します 。
[ この式がtrueである値の書式設定]ボックスに、次の式を入力します。Pは、TRUEまたはFALSEの値を持つ列に置き換えます。 必ずコラムレターの前にドル記号を入れてください。
= $ P1 = TRUE
それが終わったら、フォーマットをクリックし、塗りつぶしタブをクリックしてください。 色を選択すると、それが複製行全体を強調表示するために使用されます。 [OK]をクリックすると、重複行が強調表示されます。
これでうまくいかない場合は、最初からやり直してゆっくりとやり直してください。 これがすべてうまくいくためには、正しく行われなければなりません。 途中で単一の$記号を見逃した場合、それは正しく機能しません。
重複レコードの削除に関する警告
もちろん、Excelに重複レコードを自動的に削除させることには、いくつか問題があります。 まず、Excelが重複レコードを識別するための基準として使用するには、少なすぎる列または多すぎる列を選択するように注意する必要があります。
少なすぎると、誤って必要なレコードを削除してしまう可能性があります。 偶然にもID列が多すぎるか、または含まれていて、重複が見つかりません。
次に、Excelでは、最初に見つかった一意のレコードがマスターレコードであると常に想定しています。 それ以降のレコードはすべて重複していると見なされます。 たとえば、ファイル内の人物の1人の住所を修正できずに、代わりに新しいレコードを作成した場合、これは問題になります。
新しい(正しい)住所レコードが古い(期限切れ)レコードの後にある場合、Excelは最初の(期限切れ)レコードをマスターと見なし、それ以降に見つかったレコードを削除します。 そのため、重複レコードであるかどうかをExcelに判断させるには、慎重にまたは慎重に慎重になる必要があります。
そのような場合は、私が書いたハイライト複製方法を使用し、適切な複製レコードを手動で削除する必要があります。
最後に、Excelは本当にあなたがレコードを削除したいかどうかを確かめるようにあなたに頼まない。 選択したパラメータ(列)を使用して、プロセスは完全に自動化されています。 膨大な数のレコードがあり、行った決定が正しいことを信頼し、Excelが重複レコードを自動的に削除することを許可している場合、これは危険なことです。
また、Excelで空白行を削除するという以前の記事を必ずチェックしてください。 楽しい!