
以下の様なレコード形式のCSVがあります。
A列,・・・AA列,
NO,日付,時間,姓1,名1,住所1,住所2,住所3,住所4,姓2,名2,姓3,名3,・・・,姓10,名10
これが1万行以上あるのですが、
「姓名」での重複チェックをするにはどうしたら良いでしょうか?
横でも縦でも斜めでも、つまり1レコード中の重複も、レコード間の重複も検知したいです。
No00001,姓名1
・
・
・
No00001,姓名10
No00002,姓名1
・
・
・
No00002,姓名10
・
・
・
No10000,姓名10
と全て縦1列に並べてチェックするようなイメージですが、
具体的にその方法がベターなのか悩んでます。
また、住所での重複もしなければいけません。
CSVは日々最新データが届く可能性があり、本当はCSVを上書きするだけで結果が更新されると運用が楽なのですが、毎回手動作業も仕方ないと思っています。
良い方法のアドバイス頂けると幸いです。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
こんにちは
>「姓名」での重複チェックをするにはどうしたら良いでしょうか?
データ数が10×1万=10万件くらいあるので、チェックした結果をどうするのかの方が問題のような気がしますけれど、とりあえずチェックさえできれば良いものとして・・・
以下、ひとつのアイデアですが・・
事前に雛型のシートを作成しておいて、そこにCSVを流し込めば良いのではないでしょうか?
比較するのには、「姓 名」の一覧を作成しておいて、その中で重複チェックをするのが簡単そうに思われます。
1)雛型シートのAB列(=他の列でも良い)に「姓 名」(= 姓 & " " & 名 )を抜き出すように関数を設定しておきます。
2)AB列内の重複チェックをAC列あるいは、AB列の「条件付き書式」などに設定しておきます。
以上で、雛型シートは完成で、このシートのA:AA列にデータを流し込めば、自動的にチェックができるという考え方です。
データが大量にありそうなので、エクセルの計算に多少時間がかかるかもしれませんけれど・・
具体例としては、
1)に関しては、AB1セルに
=TEXTJOIN(" ",1,OFFSET($A$1,INT((ROW()-1)/10),MOD(ROW()-1,10)*2+7-(MOD(ROW()-1,10)=0)*4,,2))
の式を入力し、あらかじめ10万行までフィルコピーしておきます。
2)に関しては、AB列に対して、COUNTIFなどで>1であれば重複と判断すればよいでしょう。
ただし、元データが空白セルの場合、AB列も空白セルとなりますので、空白セルは重複チェックの対象にしないようにしておいた方が宜しいでしょう。
(これにより、データがない状態でも重複の認識が発生することを防げます)
No.4
- 回答日時:
こんにちは
重複データのチェックとありますが、どのような結果をお望みなのでしょうか?
重複データを
行(グループ)を削除して上に詰める
セルに色を付ける(#3様指摘の通り意味無いかな)
別シートに抜き出す(元データから削除)
別シートに書き出す(元をいじらず)
(グループは関連データ)
CSVファイルをQueryTables.Addで必要カラムを抽出して
Scripting.Dictionary や RemoveDuplicatesなどで
チェックや削除する方法や
ADODB.Stream などで抽出段階で重複を排除する方法も有か?
No.3
- 回答日時:
「重複チェック」した結果は、どのような状態になるのを希望されているのでしょう。
(姓名&住所)を1データとして、1行に4データ、10000行あるとして、4万データ中には、82種189データが重複状態で存在するとして、
色分けで重複表示は無意味そうですし、、、
表中に1つの重複もない状態になるように、82種189データから107データを削除して、39,893データになるようにするのだとして、重複データの中のどのデータを残すのでしょうか。 また、「1レコード中の重複も、レコード間の重複も」というのは、1行の中の4データ中で、第二、第三データが重複していた場合、第三データを削除するだけなのでしょうか、第四データを、削除した第三データの位置に置き直す必要はあるのでしょうか。
仮に、3456行目の4データは、どれもが、2000~2500行の間にあるデータの重複である場合には、3456行目の「NO,日付,時間」のデータはそのまま残すのでしょうか。
やりたい、希望のイメージがハッキリしないと、マクロの使用法が決まらないと思います。
また、「CSVは日々最新データが届く可能性があり」
というのは、以前のデータの全てを含む書き換え版・訂正&追補版ということでしょうか。 そうであるなら、日々に最新のCSVを対象にしてやる他はないでしょう。
(姓1,名1,住所1,住所2,住所3,住所4)の1セットは、「=CONCAT(」で1つのデータにして、AC、AD、AE、AFの行に4つ並べ、それを対象にして、重複をあたれば良いと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 政治 選択的夫婦別姓を声高に叫んでいる連中の胡散臭さ 3 2021/12/13 11:13
- Excel(エクセル) エクセルで列の行の重複の検索方法を教えてください。 8 2022/10/11 14:51
- 歴史学 ユダヤ人の姓について 4 2022/07/01 16:49
- 戸籍・住民票・身分証明書 戸籍について 4 2021/11/07 11:36
- その他(お金・保険・資産運用) 京都市の「住民税非課税世帯等に対する臨時特別給付金」の手紙が、私の旧姓と新姓の二つの名前で2枚手紙が 6 2022/04/29 15:47
- 結婚・離婚 婚姻届と姓の変更について教えてください 5 2022/10/16 19:59
- 結婚・離婚 婚姻届の書き方について。入籍後、しばらく実家にお世話になります。 1 2022/04/05 21:56
- 新卒・第二新卒 就活 SNS 同姓同名アカウント 就活を控えている者です。 企業が採用活動を行う際に応募者のSNSの 1 2023/02/06 14:25
- 雇用保険 失業保険申請のタイミング 5 2023/04/13 08:19
- 哲学 こちらの文章をあらゆる角度からすべて否定してください! 屁理屈っぽくなっても構いません! できるだけ 3 2022/04/25 21:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
エクセル ドロップダウンリスト...
-
【関数】同じ関数なのに、エラ...
-
Office2021のエクセルで米国株...
-
【マクロ】列を折りたたみ非表...
-
9月17日でサービス終了らし...
-
【マクロ】アクティブセルの時...
-
ページが変なふうに切れる
-
【条件付き書式】シートの中で...
-
【マクロ】3行に上から下に並...
-
【マクロ】オートフィルターの...
-
【マクロ】EXCELで読込したCSV...
-
【画像あり】オートフィルター...
-
他のシートの検索
-
エクセルの循環参照、?
-
Excelファイルを開くと私だけVA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報
皆さま
ゴールが曖昧な中、たくさんのアイデア、アドバイス、ありがとうございます。
これから始まりそうな作業なので不明確ですみません。
同一人物は3回まで出現OKですが、それ以上の出現はNGとして抽出したいという事になりました。
どんな表示の仕方にするかまだイメージが出来てませんが、
途中から4回までOKとルールが変わっても対応できるように、重複回数が分かるようにして、
見たい人が自由にオートフィルタ等で表示できるようにすれば良いかな、と思ってます。