[あすかぜ・ねっと]あすかぜ・ねっと自作ソフトCassava > サポート掲示板

Cassava Editor サポート掲示板

スレッド一覧に戻る
題名:
名前:
この名前を次回も使用する


スレッド一覧に戻る返信

[608] 特定の文字列から始まる行の抽出とデータの整理

切り株 [2021/02/15 11:40:23]

いつもお世話になっております。
9列目に商品名、16列目に数量が入ったCSVファイルがあります。

9列目 特定の文字列から始まる商品名とその数量のみを抽出し、
同一のものは合算しようとしています。

A-商品名1 5
A-商品名2 2
B-商品名3 1
C-商品名4 2
A-商品名5 2
A-商品名2 3



A-商品名1 5
A-商品名2 5
A-商品名5 2

※その他の列は消えるのが理想ですが、残っていても構いません。


こういった複雑な処理は可能でしょうか?
お手数をおかけいたしますが、ご教示の程宜しくお願い致します。

Re: [608] 特定の文字列から始まる行の抽出とデータの整理

あすかぜ [2021/02/15 20:06:47]

マクロ機能を使うことで実現できそうです。

https://www.asukaze.net/soft/cassava/macro/asukaze/bbs608_20210215.cms
上のリンクを右クリックして「名前を付けてリンクを保存」でダウンロードし、Cassava Editor の「Macro」フォルダに置いてください。
その後、対象のファイルを開いて、[マクロ(M)] - [bbs608_20210215] メニューを実行してください。
9列目が「A-」から始まる行のみを抽出し、9列目が同一の行は16行目を合算します。

バージョン 2.1 以降のみで動作する書き方となっているので、古いバージョンを使っている場合は最新版へのバージョンアップをお願いします。
よろしくお願いします。

Re: [608] 特定の文字列から始まる行の抽出とデータの整理

切り株 [2021/02/16 11:24:55]

迅速にご対応いただきありがとうございました。

Re: [608] 特定の文字列から始まる行の抽出とデータの整理

初心者です [2025/02/19 23:52:37]

いつも利用させて頂いております。

上記の質問に似ているのですが、下記の様なCSVファイルで同一の注文番号内で
同じJANコードの行が複数あった場合に個数を合算し、1行にまとめたいのですが
これはマクロで可能でしょうか?
お手数ですが、ご教授頂けると幸いです。

1列目:注文番号
4列目:JANコード
5列目:個数


1234 111111111111 1
1234 222222222222 2
1245 111111111111 3
1245 111111111111 2
1258 333333333333 1
1259 444444444444 2
1259 555555555555 2
1299 333333333333 3
1299 444444444444 2
1299 333333333333 6
2100 666666666666 2
2111 777777777777 3



1234 111111111111 1
1234 222222222222 2
1245 111111111111 5
1258 333333333333 1
1259 444444444444 2
1259 555555555555 2
1299 333333333333 9
1299 444444444444 2
2100 666666666666 2
2111 777777777777 3

Re: [608] 特定の文字列から始まる行の抽出とデータの整理

あすかぜ [2025/02/20 21:29:39]

マクロを書いてみました。
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs608_20250220.cms

1 列目と 4 列目の内容が同じ場合、5 列目を合算して行を削除します。
無駄な処理を省くため、1 列目が違う行があった場合にはそれ以上遠くの行は探さないようにしてあります。
もし離れた行に同じ注文番号のデータがあるかもしれない場合には、

    if ([1,y] != [1,target]) {
      return 0;
    }
    if ([4,y] == [4,target]) {
      return y;
    }



    if ([1,y] == [1,target] && [4,y] == [4,target]) {
      return y;
    }

のように書き換えてください。

よろしくお願いします。

スレッド一覧に戻る返信