• 締切済み

CSVから特定列を取り出し並び変えたい

会社員です. いつもはエクセルでやっているのですが,今回は巨大データかつ ファイル数が多く,途方に暮れています. ストリ-ムエディタの存在は知っていますが,使ったことがありません. どなたか,指南をお願いします. 現在のデータ(数値)は,属性(テキスト)と一緒になっていて, 属性1,属性2,・・・・・・・,データ(1),属性n,・・・・・(crlf) 属性1,属性2,・・・・・・・,データ(2),属性n,・・・・・(crlf) 属性1,属性2,・・・・・・・,データ(3),属性n,・・・・・(crlf) ・ ・ 属性1,属性2,・・・・・・・,データ(10),属性n,・・・・・(crlf) 属性1,属性2,・・・・・・・,データ(1),属性n,・・・・・(crlf) 属性1,属性2,・・・・・・・,データ(2),属性n,・・・・・(crlf) 属性1,属性2,・・・・・・・,データ(3),属性n,・・・・・(crlf) ・ ・ 属性1,属性2,・・・・・・・,データ(10),属性n,・・・・・(crlf) ・ ・ と繰り返されています.欲しいデータは7カラム目にあります. これを, データ(1),データ(2),データ(3),・・・・・・・,データ(10)(crlf) データ(1),データ(2),データ(3),・・・・・・・,データ(10)(crlf) データ(1),データ(2),データ(3),・・・・・・・,データ(10)(crlf) ・ ・ データ(1),データ(2),データ(3),・・・・・・・,データ(10)(crlf) ・ ・ というデータ形式に変更したいのです. データは下の状態で14000レコードあります. ご質問 (1).どんなフリーソフトがよろしいですか (2).どんな引数を与えればよろしいですか 宜しくお願い致します.

みんなの回答

  • master000
  • ベストアンサー率33% (16/48)
回答No.3

EXCELでいいんじゃないかな。 マクロで書くのが手っ取り早いと思う。

kamiyasiro
質問者

お礼

こちらで,全回答者様へのお礼とさせて頂きます. 皆様,ご回答ありがとうございました. 会社で専門家に相談して,Rubyでやることにしました.

回答No.2

ファイル数が多い? CSVファイルが大きいんですね? 大きなCSVファイルからの列抽出はツールでできる。後はマクロで横に繰り返して、並び替える。 例えば、 ozselect テキストデータベース(SELECT)CSVやTEXTファイルから、簡単にレコードを抽出できる http://www.vector.co.jp/soft/dl/win95/util/se288980.html

  • yasuto07
  • ベストアンサー率12% (1344/10625)
回答No.1

エクセルによ見込んんで、手動でやるしかないんじゃないの。

関連するQ&A

  • SQL*Loaderの制御ファイルについて

    改行を含むデータをLoaderで投入したいのですがうまくいく方法を伝授ください。 レコードは以下です。先頭のみ"無し、末尾は","<CRLF> 3カラム目の先頭が半角スペースで、<CRLF>がきてXXXというデータです。 いろいろ試しましたが、どうもうまくいきません。 このデータをエラー無くロードできる方法はないでしょうか? ご教授ください。 ◆CSVレコード 99999","a-1"," <CRLF>Name-A あいうえお","<CRLF> ◆制御ファイルは以下指定 LOAD DATA INFILE XXX.CSV "STR x'0D0A'" APPEND CONTINUEIF LAST != '"' INTO TABLE table_name FIELDS TERMINATED BY '\",\"' TRAILING NULLCOLS ( COL1, COL2, COL3 ) ちなみに3カラム目が<LF>だとうまくいきます。。。

  • CSV形式のデータを自由なレイアウトで印刷するソフトありますか

    CSV形式の1レコードのデータを1枚の単票用紙に自由に貼り付けて印刷 できるソフトがあるようですが、良いソフト(市販品やフリーソフトかかわ らず)がありれば教えてください。 また、複数のレコードを一つの伝票として、ヘッダー部と明細部に分けて出 力できればバッチリです。 CSV形式だけでなくテキスト形式やExcel形式など色々なデータが指 定できると、なおうれしいです。

  • エクセルでのX列

    エクセルでのデータ解析について質問です。 エクセルでのデータ解析について。 前提として以下の状況です。 (1)320×240のbinファイル(ちなみに画像データです。)がある。 (2)これをbin⇒DEC変換エディタ(Transformというソフトを使用しています。)で320×240で展開する。 (3)演算して解析したいので,エクセル上にコピペしようとする。 (4)エクセルのX列は256までしかないため,ペーストできない。 (5)そこで,(2)の段階で240×320で展開 ⇒エクセルにコピペ。 (6)元来320で折り返すべきものを240で折り返しているため,アドレスは ずれる。が,数値演算するだけなら問題ない。 (7)いままでは上記のように行ってきたが,今回数値演算した後の値を使 用て,画像表示(=320×240のデータ並びで展開する)必要が出てきた。 (8) よって,(5)のあとに数値演算したエクセルシートをTransformで展開したい。Transfomrの機能として,txtやcsvファイルの展開は出来るので,対象のエクセルシートをcsv形式で保存。 (9)Transfomr展開するも前述のようにアドレスがずれているので,画像表示が上手くいかない。 以上が現状なのですが,打開するアイデアは無いでしょうか? Transfomr⇒エクセルとペーストする際に,「行列を入れ替える」を行おうと思って「形式を選択して貼り付け」を実行しても「行列を~」の項目が出ません・・・ もしくはもっと良いソフト(但し,フリー限定でお願いします。)があれば,紹介してもらえると助かります。

  • csvファイルを使ってMySQLのテーブルを更新し

    約2万件ある15個のカラムで構成されるMySQLのテーブルがあります。 このテーブルをcsvファイルを使って更新しようと考えています。 csvファイルにはレコードIDとあるカラムの変更する値の2つのセルで 構成されています。 行数は毎回異なりますが、だいたい300行前後です。 csvファイルの具体的イメージはこんな感じです。 id order ============ 2,  200 4,  10 7,  460 11,  35 MySQLのテーブルの方にも「id」と「order」というカラムが存在します。 java や PHP を使ってやる方法はわかるんですが、プログラムを作成しないで SQLだけで行いたいと考えています。 LOAD DATA LOCAL INFILE などがあることがわかったのですが、レコードを REPLACE  するのではなく、一部のカラムをアップデートしたい、ということです。 どなたか、教えて頂けると助かります。 よろしくお願い致します。

  • ExcelファイルをCSV 形式で保存するには?

    ExcelファイルをCSV 形式 (Windows、カンマ区切り) (*.csv)にして書類を提出するように言われたのですが、その方法について教えてください。 データの内容は会社の詳細で、1社につき100項目のデータがあり、それが50社あります。その場合、1社目のデータをA列に、2社目のデータをB列にというように入力すればよいのでしょうか? Excel の [名前を付けて保存] ([ファイル] メニュー) を使って、CSV (カンマ区切り) (*.csv)ファイルで保存すると、各項目がカンマで区切られるのでしょうか? 1レコード目と2レコード目はどういった区切りになるのでしょうか? またファイル形式はCSV 形式でと言うことですが、提出するファイル名の拡張子を.txtとしないといけないのですが、それはどうすればいいのでしょうか?

  • mysqlへcsvファイルの読み込み

    mysqlについて質問させて下さい。 エクセルをcsvファイルに変換したものを、データベースに読む込んだのですが、下記のエラーが出ます。 for column 'id' at row 1ect integer value: 'id,number 整数が間違っていると言うことかと思い、エクセルのほうはデータを全部数値にし、mysqlのほうは「int」にしました。 これでも同じエラーが出てしますのですが、原因がお解かりの方、教えて頂けると助かります。 sql文です。 LOAD DATA INFILE "***.csv" INTO TABLE dbname.tablename; カラムはidとnumberのみです。 よろしくお願いします。

  • 引数によってwhere句を切り替える方法

    PL/SQLで開発しています。 一つのテーブルで検索条件(引数)によって検索するカラムを切り替えたいのですが、 カーソルをいくつも作らず、 一つのSELECT文で書く方法ってないのでしょうか? OR条件などを使って考えたのですが、うまくいきません。。 (例) SELECT * FROM 売り上げ情報 WHERE (品番 = 引数1 OR 商品名 = 引数2) 引数が無い時は"引数1"・"引数2"がNULLになるので、 カラムがPKなどになっていれば引数が片方しかなくてもうまく動作するのですが、 制限などがかかっていなくNULLで登録されているデータが存在すると余計なデータまでとれてしまいます。 DECODEなどでカラムに存在しない値に変換しようかとも思ったのですが、 なんか不自然な気が@@; いい方法があれば教えてください。

  • 数値フィールドのワイルドカードについて

    フィールドの属性が文字列の場合 like %という形式で ワイルドカードを指定できると思います. 数値データ(integer,bigintなど)のワイルドカードは存在するのでしょうか? Web検索などで調べたのですが,わかりませんでした. お教えください.

  • csv(カンマ区切り)の読み込みと書き出し

    Visual Basic Express Edition 2008での質問です。 下記のようなカンマ区切りのCSVファイル(拡張子はtxt)があります。 (150万行以上あるので、エクセルでの編集が出来ません) 1,18845.50,-14572.50,16.30,1 2,18846.50,-14572.50,16.29,1 3,18832.50,-14573.50,16.25,1 で、実はこのCSV形式のファイルの一番左のレコードと 一番右のレコードは必要ないので削除し、 18845.50,-14572.50,16.30 18846.50,-14572.50,16.29 18832.50,-14573.50,16.25 上記のようなデータにして、再び同じ形式で保存したいのです。 どなたか、いい方法orソースの提供をお願いしたいです。 可能ならば、複数のデータ (そのテキストファイルが200個ほどあるので)に対して、 プログラムを実行できればなおいいと思います。 よろしくお願いします。

  • CSV形式のデータに関して

    今SQLiteManagerを用いてデータベースを管理しているのですが データをインポートする際にエクセルの形式からCSVに変換して カンマ区切りでとういうところまではできたのですが それぞれの数値データを''(シングルクォーテーション)で囲みたいのです。('8','98',...こういった形で) ですがどうすれば出来るのかがわかりません。 変換する際に何か設定?みたいなことがあるのか その後で変換方法?があるのか。 もしわかるかたいらっしゃいましたら教えていただきたいです。

専門家に質問してみよう