[226] 重複レコードの削除につきまして
菊池 [2011/09/04 07:45:44]
いつもお世話になっております。
csvを読み込んだ時に、下記のように加盟店IDが重複
している場合はどちらかをカットしたいのですが、
そのような事は出来ますでしょうか?
運送会社名 配送伝票番号 加盟店取引ID
16 509424914622 9435
16 509424914623 9435
お手数おかけしますがご連絡お待ちしております。
Re: [226] 重複レコードの削除につきまして
あすかぜ [2011/09/04 11:49:30]
次のようなマクロを作って実行してください。
for(y=Bottom; y>=2; y--){
if([3,y] == [3,y-1]){
DeleteRow(y);
}
}
3列目がひとつ上と同じ場合、その行を削除します。
マクロはテキストファイルとして作成し、Macro フォルダに置いてください。
よろしくお願いします。
Re: [226] 重複レコードの削除につきまして
菊池 [2011/09/04 13:47:44]
お休みの中早速のご連絡ありがとうございます。
いただいたマクロを下記のような形で
試しましところ、「9591」の行も消えてしまいました。
全ての行の項目をお伝えしていなかったからかもしれません、
大変申し訳ございません。
以下のような行と列のファイルになります。
※加盟店取引IDがダブっている場合(2個以上の場合もあります)、
一つだけ残して後は全て削除できるとありがたいです。
運送会社名 配送伝票番号 加盟店注文日 NP取引ID 加盟店取引ID 購入者名 配達先番号
16 509424913001 9593 1
16 509424913034 9600 1
16 509424913036 9600 1
16 509424913056 9591 1
何度も申し訳ございません。
どうぞよろしくお願い致します。
追記です。
菊池 [2011/09/04 13:52:00]
運送会社名・・・16の数字が入ります。
配送伝票番号・・・12桁の数字が入ります。
加盟店取引ID・・・4桁の数字が入ります。
配達先番号・・・・1と数字が入ります。
それ以外の項目は空白になっております。
※投稿したら文字部分が詰まってしまったので補足させていただきました。
Re: 追記です。
あすかぜ [2011/09/04 14:05:03]
チェックしたい加盟店取引IDは5列目でしょうか?
5列目であれば、
for(y=Bottom; y>=2; y--){
if([5,y] == [5,y-1]){
DeleteRow(y);
}
}
としてください。他の列をチェックしたいのであれば、[5,y] [5,y-1] 部分の数字に適切な列番号を入れてください。
よろしくお願いします。
Re: 追記です。
菊池 [2011/09/05 08:08:29]
ご返信ありがとうございます。
早速ためしたところ出来ました!
今までエクセルに一度csvをインポートして重複を削除して…という工程をふんでいたので、大変助かります。
本当にありがとうございます。
今後ともどうぞよろしくお願い致します。
Re: 追記です。
菊池 [2011/09/13 18:14:55]
先日はご回答ありがとうございました。
もう一点だけお伺いしたく投稿させていただきました。
ひとつ上と同じ場合、その行を削除するようなマクロを教えて
いただいかと思いますが、離れた場所に重複している数字(四桁の数字)がある場合、その行を削除したいと思っています。
「ソート」で並び替えをすれば良いと思うのですが、
縦列のみを選択してソートすると、その列のみが並び変わり、他の列が並び替わらないので、何か方法はございますでしょうか?
※ソートで並び替えをした際、他の列も連動して並び変わるようにしたいのです。
お手数おかけしますがご連絡お待ちしております。
Re: 追記です。
あすかぜ [2011/09/14 13:41:37]
範囲選択してソートした場合、その範囲だけが並び替えられます。
全体を並び替えるには、下記 (A)(B)(C) のどれかの方法でソートを実行してください。
(A) 列を選択し、右クリックメニューの「この列でソート」を実行する
(B) ソート範囲の一番上の 1 セルのみ(5列目の一番上のセル)を選択し、「ソート」ボタンをクリックする
(C) 「ソート」ボタンクリック後のダイアログボックスで、「ソート範囲」を変更し、全体が選択されるようにする
よろしくお願いします。
Re: 追記です。
菊池 [2011/09/16 09:02:15]
ありがとうございます!無事に出来ました。
今後ともどうぞよろしくお願い致します。
ご教授お願い致します。
87 [2019/05/27 21:12:56]
重複行の削除において、1列目の内容が重複している場合は両方とも行を削除する場合には下記マクロをどのように編集すればいいのでしょうか。
for(y=Bottom; y>=2; y--){
if([1,y] == [1,y-1]){
DeleteRow(y);
}
}
ご教授頂ければ幸いです。
Re: ご教授お願い致します。
あすかぜ [2019/05/28 19:52:08]
重複しているキーの値を変数に保存して比較するマクロを書いてみました。
deleting = "";
for (y = Bottom; y >= 2; y--) {
if ([1,y] == [1,y-1] || [1,y] == deleting){
deleting = [1,y];
DeleteRow(y);
}
}
このマクロで、隣り合う重複した行をすべて削除できると思います。
(隣り合わない重複行がある場合は正しく動作しません)
よろしくお願いします。
Re: ご教授お願い致します。
87 [2019/05/29 09:28:06]
実現できました。ありがとうございます!