重複行の削除No.02162
green さん 01/05/12 14:35
 
こんにちは。greenです。

 顧客のメールアドレスの整理作業をしているときに気づいたのですが、いくつか重
複があるのがわかりました。
 エクセルで、アルファベット順に縦にならべたあと、どうしたら重複したアドレス
を一つにすることができるでしょうか。
 人によっては、3行も同じアドレスが続いています。
 データは2万行以上ありますので、手作業では不安です。
 エクセルで出来たらそれでいいのですが、わかりません。秀丸のマクロでないでし
ょうか?

 データはこんな感じで並んでいます。複数の bb@bbb.bb を1行にまとめたいのです。

 xxx@aaa.aa
 xxx@bbb.bb
 xxx@bbb.bb
 xxx@bbb.bb
 xxx@ccc.cc
 xxx@ddd.dd

 現在の行が次の行と一致したら、現在の行を削除するマクロってありますか?
 本当に困っていますので、よろしくお願いします。

[ ]
RE:02162 重複行の削除No.02163
TAKA さん 01/05/12 15:18
 
TAKA です。

> 現在の行が次の行と一致したら、現在の行を削除するマクロってありますか?
> 本当に困っていますので、よろしくお願いします。

「01526」に、「重複する行を整理するには?」という投稿があり
ますので、そちらを参照してみて下さい。

[ ]
RE:02163 重複行の削除No.02164
green さん 01/05/12 16:44
 
できました!ありがとうございました。

このようなマクロもありましたので、一緒に使うようにしたら便利になりました。

KZ_CBSort1.mac

アドレスはここです。豊富なマクロがあります。今回初めて知りました。
http://homepage2.nifty.com/bantou_pp/

[ ]
RE:02162 重複行の削除No.02165
ひろ さん 01/05/12 18:00
 
 green さん今日は、ひろです。
>  エクセルで、アルファベット順に縦にならべたあと、
 秀丸でこれをやるとしたら、範囲選択しておいて、「その他」→「プログラム実行」
で「sort < con > con」と入力して、[OK] ですね。

> どうしたら重複したアドレスを一つにすることができるでしょうか。
 マクロで可能ですが、速度を考えると、別のコマンドラインユーティリ
ティーを入手して、上記と同様に「uniq < con > con」等とした方が速いで
しょうね。

 マクロでファイル全体を処理する場合、
//------------------ uniq.mac -------------------------------------
disabledraw;
gofiletop;
while(1){
  selectline;
  $$line = gettext(seltopx,seltopy,selendx,selendy);
  if($$line == $$bline){
    selectline;
    delete;
  }
  else movetolineno 1,lineno + 1;
  if(lineno == linecount2)break;
  $$bline = $$line;
}
//------------------------------------------------------------------
でできると思います。ただしファイルの最後が改行である必要があり、1 行
の長さが改行を含め 8192 文字以上になると駄目です。

 P.S 大文字小文字の区別をしますので、email アドレスの場合、予め文字
を統一しておいてください。

[ ]