タカヒロ@extanExcelで重複データの差分を抽出する方法!VBAで瞬間一括処理も!Excelで重複データの差分を抽出したいときはないでしょうか。・Excelで重複データの差分を抽出したいが方法がわからない。・VBAでExcelの重複データ差分抽出と出力を一括で処理したいがやり方がわからない。今回はそんなお悩みを解決するExcelで重複データの差分を抽出する方法とVBAで瞬間に処理する方法についてまとめます!もくじExcelで重複データがある状態とは?Excelで重複データの差分を抽出するイメージ差分抽出したいデータを用意する関数で重複データの差分を抽出するCOUNTIF関数を隣接セルへ入力する重複件数があるワードに絞り込む重複ワードを消去するピボットテーブルで重複データの差分を抽出するピボットテーブルを作成するピボットテーブルのフィールドを設定するVBAで重複データの差分を抽出するVBAの設定をするVBAを実装し実行するVBAの説明VBAの実装手順VBAを実行するさいごにExcelで重複データがある状態とは?例えばですが、会社で何かしらの利用申請をする機会はあるかと思います。具体的にはパソコンとか、携帯端末の導入だったり。そんなときに2重に申請をしてしまい、同じ内容のデータが台帳上にあるという状態がデータの重複しているという状態になります。タカヒロ2重申請をそのまま処理してしまうと、余計にコストがかかってしまいますね。それを回避するため、事前に重複データがないかチェックをするということが想定されるかと思います。タカヒロも上司や顧客からの要望で、重複データのチェックはよくやります。Excelで重複データの差分を抽出するイメージVBAでExcelで重複データの差分を抽出するイメージについて説明をします。Excelで重複データがある可能性のあるリストデータを用意します。リストの中で2件以上あるデータを識別していきます。重複データを抽出する方法としては、まず初めに関数を利用し抽出していきます。次の方法はピボットテーブルを使って抽出していきます。最後にこれまで複数ステップの作業が必要であった処理をVBAを使い、ワンクリックで一気に処理していきます。それでは早速使ってみましょう!差分抽出したいデータを用意するまずは、差分を抽出したいリストデータを用意しましょう。データの内容はなんでもよいですが、重複する文字列を2個以上いれるようにしてください。サンプルは以下のようにしました。関数で重複データの差分を抽出する関数で重複データの差分を抽出してみましょう。使う関数はおなじみのCOUNTIF関数です。COUNTIF関数を隣接セルへ入力するCOUNTIF関数を重複チェックをしたいワードがある隣接セルへ入力しましょう。サンプルではB2セルへ以下の数式を入力しています。=COUNTIF(A:A,A2)続いて、リストの最終行までB2セルに入力した数式をドラッグし、コピーします。重複件数があるワードに絞り込むCOUNTIF関数の結果が表示されましたので、重複を示す2件以上を対象とするようフィルターで絞り込みます。「データ」タブの「データツール」欄の重複の削除をクリックし実行します。はい、こちらでユニークなデータになりましたね。ピボットテーブルで重複データの差分を抽出するピボットテーブルで重複データの差分を抽出してみましょう。ピボットテーブルを作成する重複データを抽出したいセルを選択します。挿入タブからピボットテーブルボタンをクリックします。ピボットテーブルの作成ウイザードがでたらそのままOKをクリックします。ピボットテーブルのフィールドを設定するピポッドテーブルの「行」に項目名をドラッグします。「値」にもドラッグし、「個数」を選択します。COUNTIF関数とおなじ結果が得られましたね。絞り込みの方法はCOUNTIF関数と同様になります。タカヒロピボットテーブルは関数を入力する手間が不要なところがいいですね。VBAで重複データの差分を抽出するこれまでいくつかの手作業が必要でしたが、何度も続くとちょっとしんどいですよね。そこで、VBAを使い、ワンクリックで処理をするようにしましょう。データはこれまでと同様で、さらに差分を抽出して出力するセルを追加します。サンプルではデータがあるシートのD2セル以降としていますので、空白にしておきましょう。次にExcelで重複データの差分を抽出するVBAを準備します。サンプルコードは以下の通りです。'検索先リストの範囲を指定します。'抽出結果の出力先セルを指定します。'検索先リストを配列へ格納します。'検索結果出力用の開始位置番号です。'重複件数カウント用の開始番号です。'キーワードリストを作成します。'キーワードリスト作業用のオブジェクトを作成します。'検索先リストをコピーします。'検索先リストを作業用セルに貼り付けます。'検索先リストから重複分を削除します。とマイナスし配列の要素数を算出します。'重複削除した検索先リストをキーワードリストへ格納します。'キーワードリストを作成します。'作業用領域の値のみをクリアします。'検索結果出力用の配列を作成します。'キーワードリストに格納された値すべてを対象に処理します。'キーワードリストからキーワードを取り出します。'検索先リストと照合します。'検索先リストのワードとキーワードが一致した場合の条件です。'2回一致していたら検索結果出力用の配列にキーワードを格納します。'検索結果を指定セルへ出力します。SubVBAの設定をするExcelで重複データの差分を抽出するVBAに先ほど作成した表データの場所を設定しましょう。設定箇所は以下の通りです。検索値の範囲を指定します。サンプルの範囲は「A2:A12」となります。Range(“A2:A12”)抽出結果の出力先セルを指定します。サンプルはD2セルとなります。“D2”VBAを実装し実行するVBAを実装し実行してみましょう。実装方法は下記「VBAを実装する手順」をご覧ください。実装できたらマクロから「重複文字を抽出し結果を出力する」を見つけ実行します。はい、重複文字列が出力されましたね!ちなみに、出力先は自由に設定することができます。サンプルではD2セルからF8セルへ変更しています。変更する場合は以下のセルの値を変えてください。“D2”VBAの説明Excelで重複データの差分を抽出するVBAについて説明をします。検索先リストを配列へ格納します。objSerchlist検索結果出力用の開始位置番号です。こちらは変えないでください。1重複件数カウント用の開始番号です。こちらは変えないでください。0キーワードリスト作業用のオブジェクトを作成します。1)検索先リストをコピーします。objSerchlist.Copy検索先リストを作業用セルに貼り付けます。Paste:=xlPasteValues検索先リストから重複分を削除します。とマイナスし配列の要素数を算出します。1重複削除した検索先リストをキーワードリストへ格納します。1)作業用領域の値のみをクリアします。rangeTemp.ClearContents検索結果出力用の配列を作成します。rangeTempキーワードリストに格納された値すべてを対象に処理します。1)キーワードリストからキーワードを取り出します。1)検索先リストと照合します。1)検索先リストのワードとキーワードが一致した場合の条件です。Then2回一致していたら検索結果出力用の配列にキーワードを格納します。If検索結果を指定セルへ出力します。実装手順は以下の通りです。今回はExcel側にこのVBAを実装します。1Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。ショートカットキー「Alt」+「F11」でもOKです。2標準モジュールを追加します。モジュール」を選択します。3右ペインのウインドウに上記のVBAを入力します。VBAを実行するでは早速VBAの実行をしてみましょう。1「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。2処理がされたことが確認できれば完了です。※完了メッセージやステータス管理など必要に応じて実装してもらえばと思います。さいごにいかがでしょうか。今回は、Excelで重複データの差分を抽出する方法とVBAで瞬間に処理する方法についてまとめました。他にも便利な方法がありますので、よろしければご参照頂ければと思います。この記事の関連キーワードこちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。「抽出」の関連記事こちらの記事の内容「抽出」に関連する記事一覧です。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。する方法Excelで重複したデータを削除する方法!VBAで瞬間一括処理も!RECOMMENDこちらの記事も人気です。62「ファイルにこれ以上データがありません。