Excelの数式を使って複数列のリストを比較する方法 - TechRepublic

Excelの数式を使って複数列のリストを比較する方法 - TechRepublic

同じ列内の重複値を見つけるのは簡単です。状況に応じて並べ替えたりフィルターを適用したりできます。複数の列にまたがる重複値を見つけるのは、少し難しくなります。並べ替えは有効ですが、その場合は重複を見つけ出す必要があります。つまり、何もしないよりはましですが、最適な解決策とは言えません。条件付き書式も選択肢の1つですが、既に複数の書式を設定している場合は、これも最適な解決策ではない可能性があります。「ここにあります!重複しています!」と明確にわかるような解決策が欲しいなら、そうしてみてはいかがでしょうか。この記事では、条件付き書式よりも簡単に実装でき、より効果的な可能性のある、シンプルな式を使った解決策を紹介します。

Windows 10 システムで Excel 2016(デスクトップ版)を使用していますが、このソリューションは以前のバージョンでも動作します。ご自身のデータを使用することも、デモ用の .xls および .xlsx ファイルをダウンロードすることもできます。

注: これは全3回シリーズの2番目の記事です。以前の記事については、「Excelの条件付き書式を使ってリストを比較する方法」をご覧ください。

サンプルデータ

簡単な例を簡単に見てみましょう。図Aに示すシートには、日付の列とイニシャルの列があります。日付が複数回出現し、イニシャルもいくつか重複しています。これらは、1つの列内で重複していることを意味します。ここで注目したいのは、同じ日付同じイニシャルが繰り返される行です。これが、複数列の重複です。また、カスタム条件ルールは使用しないことを前提としています。

図A

重複を検出する数式ソリューションを追加します。

このようなシンプルなシートであれば、4行目と8行目、5行目と9行目の重複は簡単に見つけることができます。しかし、数百行、あるいは数千行も確認する必要がある場合はどうでしょうか?フィルターは有効ですが、脆弱な解決策です。このケースでは、日付が3つあります。つまり、ユーザーは重複を見つけるために少なくとも3組のレコードを確認する必要があります。それでも、ユーザーが重複を見つけてくれると確信できる必要があります。組み込みの条件付き書式ルールでは、すべての値が重複しているため、すべてが強調表示されてしまいます。高度なフィルターやカスタムの条件付き書式ルールを試すこともできますが、どちらも多少の手間がかかります。

参照: Microsoft SharePoint: ビジネス プロフェッショナル向けガイド (Tech Pro Research)

連結

並べ替え、フィルタリング、カスタム書式設定とは異なるアプローチを試してみましょう。COUNTIF() 関数を使って結合された値の数を数え、IF() 関数を使って適切なメッセージを返します。まず、すべての列を連結します。つまり、実際には比較ではなく、数を数えることになります。

値を連結するには、D3 に次の数式を入力し、それを D4:D10 にコピーします。

=B3&C3

この手法は柔軟性が高く、&文字を使って複数の列を連結できます。Excelはシリアル値(図B)を返しますが、この手法の動作には影響しません。(時刻値は、入力方法によっては問題が発生する可能性があります。)

図B

値を連結します。

カウント

これで、列Dの連結結果を数える準備ができました。次の数式を入力します。

=IF(COUNTIF($D$3:D3,D3)>1, "Here I am! I'm a duplicate!", "Original")

E3に入力し、残りのセルにコピーします。図Cに示すように、複数列の重複を見つけるのは、E列で並べ替えるのと同じくらい簡単です(ただし、この単純な例ではその追加手順は不要です)。重複レコードまたはレコードのサブセットが見つかる可能性があります。どの列を連結するかによって結果が決まります。

図C

結果の文字列は重複レコードを識別します。

COUNTIF() 関数は、連結された結果が拡張範囲内に出現する回数をカウントします。出現回数が1より大きい場合、数式は文字列「はい、重複です!」を返します。それ以外の場合は、文字列「オリジナル」を返します。重複の最初の出現はオリジナルとして評価され、その後に出現する重複のみが重複文字列として返されることに注意してください。重複がない場合、「オリジナル」という文字列の代わりに空の文字列を返すことで、視覚的なノイズを多少軽減できます。

このテクニックは、追加の列にも簡単に適用できます。各列を連結式に追加するだけです。もちろん、Excelで複数列の重複を識別する方法は他にもありますが、この方法は専門知識を必要とせず、非常に簡単に実装できます。

参照: Excel のデータ検証の力を活用する (無料 PDF) (TechRepublic)

乞うご期待

次回の記事では、異なるデータ セット内の複数列のリストを比較するという、より複雑な例セットを使用して重複を見つける研究を続けます。

Officeに関するご質問をお送りください

読者の質問には可能な限りお答えしますが、必ずお答えできるとは限りません。リクエストがない限り、ファイルは送信しないでください。添付ファイル付きの初回サポートリクエストは未読のまま削除されます。ご質問を明確にするために、データのスクリーンショットを送信していただくことも可能です。お問い合わせの際は、できるだけ具体的にご記入ください。例えば、「ワークブックのトラブルシューティングを行い、問題点を修正してください」といった質問では返答がないかもしれませんが、「この数式が期待どおりの結果を返さない理由を教えていただけますか?」といった質問であれば、回答が得られるかもしれません。ご使用のアプリとバージョンを明記してください。読者サポートにあたり、TechRepublicから時間や専門知識の報酬を受け取ることはありません。また、サポートした読者から料金を請求することもありません。お問い合わせは[email protected]までお願いいたします。

以下も参照:

  • 特定の制限を保護する Excel 検証コントロールを適用する方法 (TechRepublic)
  • Office Q&A: ピボットテーブルを使った事後キャプションと簡単なカウント (TechRepublic)
  • PowerPoint 2016で透明なテキストを作成する方法(TechRepublic)
  • 365 Microsoft Forms を使って素早く簡単にオンラインフォームを作成する方法 (TechRepublic)
  • Excel 2016でシンプルなタイムシートを作成する方法(TechRepublic)
  • Microsoft Office 365 を無料で入手できる(かもしれない)7つの方法(ZDNet)
  • あなたはこれまでずっと Excel を間違った使い方をしてきました (それで問題ありません) (ZDNet)
Tagged: