[ 新規に投稿する ]

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カラムでソートすると、結果的に優先順位を付けたソートになります。
>

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

[ 新規に投稿する ]