TAB/CSV区切りファイルのソートでNo.08902
いちもんじ さん 19/01/31 11:13
 
 TAB/CSV区切りファイルのソートで、
 例えば
  0001,900,b-xxxx
  0003,300,a-xxxx
  0001,700,c-xxxx
  0003,300,b-xxxx
  0001,200,a-xxxx
  0002,400,c-xxxx
  0002,100,a-xxxx
    :
 を、ソートの優先順位を第1カラム、第3カラムにして

  0001,200,a-xxxx
  0001,900,b-xxxx
  0001,700,c-xxxx
  0002,100,a-xxxx
  0002,400,c-xxxx
  0003,300,a-xxxx
  0003,300,b-xxxx

 というようにソートしたいのですが、そんな便利なマクロはありますか?
 変換→ソートの拡張版でも良いのですけど....

[ ]
RE:08902 TAB/CSV区切りファイルのソートNo.08903
秀丸担当 さん 19/01/31 12:24
 

秀丸エディタ標準の[編集]→[変換]→[ソート...]は、比較対象が等しい場合、元の
順番を維持するようになっています。
ソートを2回に分けて、第3カラムでいったんソートし、第1カラムでソートすると、
結果的に優先順位を付けたソートになります。

マクロにすると以下のような感じですが、これは単にキー操作の記録を保存したもの
です。

    setcompatiblemode 0x0F;
    selectall;
    filter "" , "Sort" , "000110110002011\"10";
    selectall;
    filter "" , "Sort" , "000110110000011\"10";

キー操作の記録中の状態で、ルーラーを右クリックしてソートしても「ソート...」
変換モジュールとして記録されるので、それをキー操作の保存するとマクロにするこ
とができます。
Unicodeとか数値とかのソートのオプションによって違うので、記録する前に、[編
集]→[変換]→[ソート...]でいったん適切なオプションにしてからOKしておくといい
です。

[ ]
RE:08903 TAB/CSV区切りファイルのソートNo.08904
いちもんじ さん 19/01/31 20:07
 
>
>秀丸エディタ標準の[編集]→[変換]→[ソート...]は、比較対象が等しい場合、元の
>順番を維持するようになっています。
>ソートを2回に分けて、第3カラムでいったんソートし、第1カラムでソートする
>と、結果的に優先順位を付けたソートになります。
>

なるほど!
ご教示いただきありがとうございました。

[ ]