dポイントプレゼントキャンペーン実施中!

宜しくお願い致します。

雑貨店を営んでおります。
受注データーをCSVファイル形式にて、ダウンロードして、ファイルメーカーに取り込んでおりますが、
【1レコード】=【1注文】
の状態にて、ダウンロードされてきます。

それを
【1レコード】=【1品番単位】
に変換させる何かいいアイデアがございましたら、ぜひ、ご教示お願い致します。
 現在は、手作業にて、上記の状態に変換しております。

【例】

データー(※購入品番は15個くらいまでは存在します)
注文番号 お名前  品番1 個数1 品番2 個数2 品番3 個数3
1    田中さん   くつ    2   かばん   3
2    佐藤さん   かばん  1   さいふ   1   かさ  1 


下記のように変換したい!!
注文番号 お名前  購入品番 個数
1    田中さん  くつ     2
1    田中さん  かばん   3
2    佐藤さん  かばん   1
2    佐藤さん  さいふ    1
2    佐藤さん  かさ     1

CSVファイルの段階で変換したものを、ファイルメーカーに取り込めると非常に便利ですが、何度か段階を踏んでもOKですので、
出来る限り、手作業で行う事を避けたいと思っております。

どうか宜しくお願い致します。

------------------------------------------------
OS:WinXP. SP2
ファイルメーカーPro7.4
------------------------------------------------

A 回答 (3件)

●『Copalというスクリプト言語の統合環境を手にいれる』というのは、Copalというソフトをダウンロードして、AWKを使えるように設定するということです。



■AWKの在り処
ベクターの以下の階層をお探し下さい。
ダウンロード > Windows > ユーティリティ > テキストファイル用 > AWK

現在、AWKは4つあります。
多分どれでも問題なく使えると思いますが、公開日が一番新しいということで、mawkをまず試されてはいかがでしょう。


■Copal の在り処
ベクターの以下の階層をお探し下さい。
ダウンロード > Windows95/98/Me> ユーティリティ> テキストファイル用> Perl>
Copal 2.75 が最新のようです。
詳細は、作者の方のホームページにあります。

それから、
■AWK入門サイト
http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manua …

私は『MS-DOSテキストデータ料理学』という今は絶版された本でAWKを学びました。
もし古本屋等で見つけられたら購入されることをお勧めします。


ちなみに、今回の件
提示されたデータのスペース部分をカンマ(,)にしたものを使って、以下のスクリプトで処理しました。
上手く行きましたよ。
頑張ってAWKに挑戦してみて下さい。
--------------------------------------
BEGIN{
}
{
 split($0, work, ",");

 for(i=3;i<32;i+=2){
  if(work[i]!=""){
   print work[1], work[2], work[i], work[i+1];
  }
 }
}

END{
}
--------------------------------------

参考URL:http://www.vector.co.jp/vpack/filearea/win/util/ …

この回答への補足

何度も申し訳ございません。ただ今、AWKを勉強中です!!
『CopalでAWKを使えるように設定』し、教えて頂きましたスクリプトを、一度、実行してみようと思うのですが、元データー(csvファイル)の存在を、下記スクリプト内のどこに記述すれば宜しいでしょうか?
『AWK入門サイト』は一通り読んで見たのですが…\(_ _ ;)
どうか宜しくお願い致します。
--------------------------------------
BEGIN{
}
{
 split($0, work, ",");

 for(i=3;i<32;i+=2){
  if(work[i]!=""){
   print work[1], work[2], work[i], work[i+1];
  }
 }
}

END{
}
--------------------------------------

補足日時:2006/04/06 23:16
    • good
    • 0
この回答へのお礼

早々のお返事と、大変丁寧なご教示、本当に有難うございます。早速、勉強してみます!!
また上手くいきましたら、連絡させていただきます。
頑張ります!
本当に有難うございました♪(^ー^)ノ
(かなり、ワクワクの私です♪♪♪)

お礼日時:2006/04/03 19:31

こういうの好きです(^^;;



私だったら、 AWKというツールで、CSVの段階で「下記のように変換したい!!」と書かれたデータと同じものを作成してしまいます。
ベクターで AWKを検索してみて下さい。同時にCopalというスクリプト言語の統合環境を手にいれるととても快適です。

AWKでスクリプトを組むのが大変…な場合は、FileMakerでスクリプトを組む必要がありますね。

単純に考えると

品番1のフィールドにデータがあったら、レコードを複製しなさい。
品番2のフィールドにデータがあったら、レコードを複製しなさい。
これを、品番のフィールドのMAX値まで、繰り返します。

上記を繰り返している時に、注文番号の枝番をつけておきます。
注文番号
1-1
1-2
1-3
というように。

そして、枝番号が2だったら、品番2のデータを購入品番のフィールドにコピーする。もちろん個数も。

その一覧の作業が終わったら、次のレコードも同じようにします。


他にもいろいろ方法はあると思います。
がんばって下さい。

この回答への補足

お忙しい所、ご回答、本当に有難うございます。
半分、あきらめていましたところに、
素晴らしいご教示で、かなり、わくわくしております!!(笑)

ただ、PCもあまり詳しくないもので、
もう少し、下記の点をご教示頂きたく、
お手数お掛け致しますが、どうか宜しくお願い致します。

●ベクターで AWKを検索してみると、たくさん、
 なんだか、出てくるのですが、具体的にどれを
 使用するのがオススメでしょうか?
●『Copalというスクリプト言語の統合環境を
 手にいれる』という意味が全く理解できません(汗)
 (情けない私・・・)
 もう少し、詳しく教えて下さい。

できるだけ、お勧めの「AWKというツールで、CSVの段階で「下記のように変換したい!!」と書かれたデータと同じものを作成してしまいます。
」で、
TRYしてみたいと思っています。
どうか、どうか、宜しくお願い致します。

補足日時:2006/04/01 23:37
    • good
    • 0
この回答へのお礼

お世話になります。AWKはかなり努力して見ましたが、私の頭では追いつかず、『FileMakerでスクリプトを組み』ました。

●●成功です(*^_^*)!!!

有難うございます。
スクリプトの組み方の考え方を教えていただいていますので、こちらは、簡単に組むことが出来ました。
感謝の気持ちでいっぱいです。
あ~~本当に有難うございました。

お礼日時:2006/04/14 23:27

ファイルメーカー側で、最初の形式を受け付けるように


する方がいいのではないですか?

この回答への補足

お忙しい所、ご回答本当に有難うございます。

ファイルメーカーで、
【品番ごとの在庫管理】をしたいため、
【1レコード=1品番】でないと集計が不可能だと思います。

●品番ごとの発注数
●品番ごとの受注数
●品番ごとの出荷数
●品番ごとの「発注したけど未入荷」数
●品番ごとの実在庫数
など・・・

【1レコード=1注文番号】でCSVファイルを取り込み、
そこから、ファイルメーカー側で、【品番の数分のレコード】を自動で生成させることが出来れば、良いのですが・・・(>_<)

もし、何かいい方法があれば、ぜひ、教えて下さい。
どうか、宜しくお願い致します。

補足日時:2006/03/13 12:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!