• ベストアンサー

複数csvファイルから特定セルを抽出できるソフト

 いつもお世話になっています。  色々、ネットで検索しているのですが、自力で解決できません。  複数csvファイルから特定(例 A1)セルの数字や文字を一括抽出し、別の、エクセルもしくはCSVファイルへ書き出すことのできる有料もしくは無料ソフトを探しています。(自力ではマクロの作成は無理です・・・・・・。)  皆様、ご教授よろしくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • ki073
  • ベストアンサー率77% (491/634)
回答No.5

No.3の補足欄について 画像がどこにあるか分かりませんが、 月単位のフォルダがあってその中に日ごとのファイルが入っている。 月単位でそれぞれのファイルの特定部分を抜き出して、一つのファイルにまとめたいということでしょうか? 「特定部分」というのはどのようにすれば分かるのでしょうか?レース数が違うようですので多分決めうちはできないのでしょうね。 これさえ特定できれば、簡単そうに見えるのですが、 VBAは分かりませんので、VBAにこだわるのであれば、整理してここのカテゴリーで新しく質問されればどなたかアドバイスしてくれると思います。 RやRubyで良ければプログラムを書いてみますが、直感ですがRubyの方が楽な様な。私はよくわかりませんがPerlやPythonでも同じようにできると思います。

janeway
質問者

お礼

 ご回答ありがとうございます。  申し訳ございません。画像を3枚、新しい質問に載せたのですが、1つの質問を終わらせる前に連続投稿したために、新しい質問が事務局の方に削除されたようです。  >RやRubyで良ければプログラムを書いてみますが  ご親切にありがとうございます。RやRubyは書いて頂いても、扱い方がよくわかりません・・・・。  おっしゃるように、内容を整理して、VBAで、再質問してみたいと思います。  一旦、この質問は締めようと思います。  何回もありがとうございました。深く御礼を申し上げます。  (もし、何かありましたら、今後とも宜しくお願い申し上げます。)  

その他の回答 (4)

  • f272
  • ベストアンサー率46% (7972/17043)
回答No.4

周りのできそうな人に聞くのが一番です。報酬として5000円もあげれば30分で解決ですね。

janeway
質問者

お礼

 ご回答ありがとうございます。  そうですよね。  私もそう思うのですが、周りに詳しい方がいらっしゃいません。  一旦この質問は閉めて、不明点を再整理して、再質問しようと思っておます。  今回はどうもありがとうございました。

  • ki073
  • ベストアンサー率77% (491/634)
回答No.3

漠然とした質問なので答えにくいのですが、 エクセルで手でやるにはデータが多すぎるということのでしょうか? 手でやれないのなら何れにしてもプログラムっぽいものを書かないと無理なように思います。 データの集計を主にやりたいのでしたら、この際Rにでも挑戦されてはいかがでしょうか。Perlやsedなどよりは敷居が低いと思います。やりたい事をも少し具体的に書かれたらアドバイスは可能ですが。 http://www.r-project.org/index.html 例えばCSVファイルを読むだけなら read.csvでできますし、書くのはwrite.csvです。 日本語の情報はかなり有りますので検索してみてください。ちょっと癖があるソフトですが複雑なデータ集計には便利です。

janeway
質問者

補足

 ki073様  ご回答ありがとうございました。  >手でやるにはデータが多すぎるということのでしょうか?やりたい事をも少し具体的に書かれたらアドバイスは可能ですが。  そうなんです。手でやるには、数が多すぎるんです。やりたい事を具体的に書きますので、大変お手数をお掛けしますが、宜しくお願い申し上げます。可能なら、パソコンに負担がかかるかもしれませんが、vbaでプログラムを書きたいのですが。  ある競馬予想ソフト(!)の予想・結果を1レース毎にcsvのファイル(ファイル名プレミアムモンスター2・2013年01月05日京都01R.csvからプレミアムモンスター2・2014年09月14日新潟12R.csv)で出力しています。  出力先は、デスクトップ→kirk77(フォルダ名です)→PM2(フォルダ名です)→13.01(レース開催日が2013 年01月という意味のフォルダ名です。)→13.01.05(開催日が2013年01月05日という意味のファイル名です。)から 14.09(2014年09月という意味のフォルダ名です。)→14.09.14(開催日が2014年09月14日という意味のファイル名です。)  このCSVファイル(1日につき24レースから36レースあります。)を月別に13.01.xlsxから14.09.xlsxのファイルに、見やすいように、書き換えたいと思っています。  例の画像が3枚になりますので、後ほど、質問を3つ連続投稿させて下さい。(画像の添付が1つの質問に1つしかできませんので・・・)  番号275がcsvの画像です。276(セルA2からY2)と277(セルV2からAT2)が書き出したい例です。書き出したい例が横に長いので、画像を2つに分けました。  アドバイスを宜しくお願い申し上げます。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

>自動処理してくれるソフトをご存じないでしょうか?  それはないのですよ。  CSVは単なるテキストデータです。あなたのパソコンでは、Windowsの悪弊でCSVにexcelが関連付けられているに過ぎないのです。  ⇒Comma-Separated Values - Wikipedia( http://ja.wikipedia.org/wiki/Comma-Separated_Values )  よって、テキストエディタで処理すべきであって、表計算ソフトで処理すべきではないのです。CSVを展開してテーブルにしたり、またCSVに戻す処理が大きな負担となります。  単なるテキストデータですから、テキストエディタで処理するのが簡単でとっても早い。SEDのようなストリームエディタだとファイル全体を開くことすらしないため、数万行あっても数分もかからず終了するでしょう。 ・SEDは、CUI( http://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%A9%E3%82%AF%E3%82%BF%E3%83%A6%E3%83%BC%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9 )に不慣れな人にはハードルが高いと思いますが、GUI( http://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%82%AB%E3%83%AB%E3%83%A6%E3%83%BC%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9 )で処理するためには表計算ソフトで開かなければなりませんから、最初の問題に戻ってしまう。  よって、 ・テキストエディタで開いて、正規表現を使って置換する ・PerlやRubyなどのテキスト処理が得意なプログラム言語を使ってプログラムを書く  の二つしか方法はないのです。いずれもフリーソフトがたくさんあります。  例えばPerlなどは、とてつもなく強力なプログラム言語でありながら、記述方法の制約が少ないですから扱いやすいでしょう。  Perlで・・・ sub CSV2CSV{ my $tmp = $line; $tmp =~ s/(?:\x0D\x0A|[\x0D\x0A])?$/,/; @values = map {/^"(.*)"$/ ? scalar($_ = $1, s/""/"/g, $_) : $_} ($tmp =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);  my @newValue = ($value[1],$value[3]);#2番目と3番目のデータ  $newline = join ',', map {(s/"/""/g or /[\r\n,]/) ? qq("$_") : $_} @newValues;  print OUT $newLine; } とか・・・

janeway
質問者

お礼

 ご回答ありがとうございました。  自動処理してくれるソフトは無いのですね。  PerlやRuby・・・・・VBAも持て余している私には敷居が高過ぎます・・・・・(涙)  申し訳ございませんが、他の方の回答を待ってみます。  重ね重ねありがとうございました。深くお礼を申し上げます。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

SED( http://ja.wikipedia.org/wiki/Sed_%28%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%29 )が最も早い。 慣れないと難しいので、perlなどの正規表現扱えるテキストエディタで・・・

janeway
質問者

お礼

 ORUKA1951様  ご回答ありがとうございました。  参照URLを拝見させて頂きましたが、正直、さっぱりわかりませんでした。(私、プログラム音痴なんです。)  自動処理してくれるソフトをご存じないでしょうか?(有料でも無料でもどちらでもOKです。あんまり、高価(1万円以上)なのは、困りますが・・・・・・。)

関連するQ&A

  • 複数ファイルから特定セルの抽出の仕方

    エクセル:マクロの初心者で自分なりに勉強しましたがなかなかうまくいきません。 今、しようとしている事は、1つフォルダがありその中に複数のファイルがあります。このそれぞれのファイルのシートの特定のセルのデータを抜き出して、別に新しくシートを作り、表にまとめたいと思っています。 条件は 1,フォルダ名「risuto」、そのフォルダの中の複数あるシート(300程あります)のタ  イトルはそれぞれ違いますがシートの様式は同じです。 2,そのファイルの「sheet1」のセルM5からO5を抽出したいです。ファイルは閉じたまま  でお願いします。 3,その抽出したデータを別のシートに表にしたいです。書き出しはどこでもOKです。 いろいろ調べた結果、一度名前がバラバラのファイルを何か読み取りやすい形に変えてから それぞれのファイルを見に行きセルを抽出する方法がいいのでは、と考えているのですが、 初心者なので本に載っているような基本のコードしか解らずそれをどの順番にどのように加工したらいいか解らず困っています。 それぞれのファイル、シートをアクティブにしてシート開きそのセルのデータを拾いにいき 新しいシートに貼り付けるという順番でいいでしょうか? かなり頭を悩ましています。 よろしくおねがいします。

  • csvファイルの特定のセルから読み込み

    C++についての質問です。 あるファイル(テキストでもエクセルでもCSVでも可)に書かれている特定のセル数値(整数)を読み込んで、プログラム内で入力する方法が知りたいです。 例えば、"test.txt"というファイルに 1 2 3 4 5 3 2 3 1 2 というような数字の羅列があった場合に,2行目4列目のセルの値を読み込む プログラムは、どうのうにすればできるでしょうか?

  • EXCELで複数ファイルのセル抽出マクロ

    EXCELで複数ファイルのセル抽出マクロ いつもお世話になっております。 首題の件ですが、複数のEXCELファイル約100個があるフォルダに入っています。 フォーマットは統一されていますが、記載してあることは別です。 特定のセルの内容を抽出し、別のEXCELブックに保存したいと考えております。 例) パス-D:\集計\ ファイル名-統一されていません シート名-アンケート(統一している) 抽出したいセル-A1:A10とC10:C20(結合されているセルもあります) できれば保存するEXCELブックに抽出したA1の全集計結果をA1に、 抽出したC10の全集計結果をC10に保存したいのです。(1ファイルずつ改行を入れて) マクロを検索して調べてみたのですが、自分の環境に合わせてみるとうまく動かなく、 (単に私の勉強不足ですが・・・)お手上げ状態です。 皆様、宜しくお願いします。 また、厚かましく下記にも別件で質問をしております。 お力添え頂ければ幸いです。 http://okwave.jp/qa/q6170791.html

  • CSVファイルの分析について

    CSVファイルで3MB程の容量のファイルが30個近くあります。 このファイルの分析をしないといけないのですが 手作業では無理があるため、マクロなり、関数なりで 対処できないものかと思いご相談させて頂きます。 分析の流れとしては CSVファイルをExcelで開き、特定の文字(3桁か4桁の数字)が 入っているセルを探し、どの数字が何回使われたかをカウントします。 数字は3桁もしくは4桁ですが、全角・半角は統一されていません。 全角のものもあれば、半角のものもあります。 1111が1回、222が4回といった感じです。 みなさんのお知恵をお貸しいただけないでしょうか。 よろしくお願いします。

  • 特定の列の抽出

    CSVファイルがあり特定の列を抽出したいんですが、excelが入ってなくマクロ(VB)が使用できない為、そのような処理をバッチで処理することは可能でしょうか?教えてください。ちなみに抽出条件は日付です。

  • 【Excel VBA】特定の列で時間を入れているセルだけ合計して数式をセルにいれたい

    Excel VBA初心者です。 特定の列の各セル(B列とします)に時間(数字)、件数(数字)、文字列(○や×)が入っています。 この中でランダムな位置に入っている時間(数字)のみ拾い出し、合計欄(セルB20とします)に「数式(例)=sum(b3,b6,b8,b13,b18)」を入れたいのですが、マクロの組み方がわかりません。上記の特定のセルを抽出するところまではできたのですが。 マクロの組み方をご教授願えますか。

  • 異なるファイルのセル値を抽出する

    excel2010 異なるファイルのセル値を抽出する方法を教えてください。 下記に例を示します。 ファイル名:001.xlsm(ファイル名は、任意に変わります。どんなファイル名になるかは分かりません) シート名称:sheet1、sheet2…(複数あり不定です) 抽出したいセルには名前がついています。 sheet1のA4セルのセル名称が _nameAAA の様に。 ファイルによりセルの位置は変わるかもしれませんがセル名称は固定です。 001.xlsmのファイルに新規シート作成し、 あるセルに =_nameAAA とすると、sheet1のA4セルの値を表示してくれます。 抽出したいファイルが下記の様に複数あります。 001.xlsm,002.xlsm,003xlsm… 抽出したいセルの名前は固定で、下記の様にあります。 どのファイルにどのセル名称があるかは分かりません。 _nameAAA _nameAAB _nameAAC というセル名称があった時、 それぞれのファイルに新規シート作成して、セル名参照するのは手間なので、 以下の様にしたいです。 参照.xlsmというファイルを作成し、c:\workに登録します。 中身は sheet1の A1セルに=_nameAAA A2セルに=_nameAAB A3セルに=_nameAAC としておきます。 抽出したいファイルをc:\workにコピーし、参照.xlsmからマクロで セルの値を抽出して表示する様にしたいのです。 マクロ初心者なのでベタを教えていただきたく、よろしくお願いします。

  • CSVファイルもしくはExcelの使い方

    文字列と数字が書いてあるCSVファイルをExcelで開いて、数字の列だけ””(ダブルクォーテーション)で各セルの数字ごとに囲みたいのですが、一つ一つではなく、まとめて出来るようなやり方ってありますか? 最終的には、テキストで開いたときに、例のようになればいいのですが・・・ 例 ”200”,”1000”,ABC株式会社,”983000”, 営業,”351000”,事務,”200”

  • 複数のExcelブックから特定シートの特定セル抽出

    同一フォルダ内にある複数のExcelブックから特定シートの特定セル値を抽出して一覧表にまとめるExcel マクロ(VBA)を教えてください。 よく似ている質問、回答を読んだのですが、私のレベルではとても応用できず質問させていただきます。 全く同じものがあれば、そのアドレスを回答いただくだけでも助かります。 【前提】 ・実行する端末のOSはWindows XP(SP3)、Excelは2003 ・対象フォルダはネットワーク接続フォルダ「\\share\target」  この中に、複数のExcelブックがあります。 ・抽出したい対象は、各ブック内の「概要」シートの「C3」セルで統一されています。 【抽出一覧作成イメージ】 ・「集約.xls」ブックの「Sheet1」の2行目から抽出した結果を一覧表示する。 ・表示はA列に抽出元ブック名(=ファイル名)、B列に抽出元C3セルの値。 ・C3セル値を「集約.xls」ブックの「Sheet1」に貼り付ける際には「値で貼り付ける」が望ましい。 というようなイメージです。 とても勝手なお願いではありますが、宜しくお願いいたします。

  • 複数のエクセルブックから特定シートの特定セル抽出

    同一フォルダ内にある複数のExcelブックから特定シートの特定セル値を抽出して一覧表にまとめるExcel マクロ(VBA)を教えてください。 よく似ている質問、回答を読んだのですが、私のレベルではとても応用できず質問させていただきます。 【前提】 ・実行する端末のOSはWindows XP(SP3)、Excelは2003 ・対象フォルダはネットワーク接続フォルダ「\データ解析\データ」  この中に、複数のExcelブックがあります。 ・抽出したい対象は、各ブック内のシート(シート名はファイル名と同じ)の「BO6からBW16までの□の範囲」で統一されています。 【抽出一覧作成イメージ】 ・「集計.xls」ブックの「Sheet1」の2行目から抽出した結果を一覧表示する。 ・表示はA列に抽出元ブック名(=ファイル名)、B列に抽出元BO6セルの値。以降,C列・D列と 順に値を入れていきたい。 ・BO6~BW16までのセル値を「集計.xls」ブックの「Sheet1」に貼り付ける際には「値で貼り付ける」が望ましい。 というようなイメージです。 とても勝手なお願いではありますが、宜しくお願いいたします。

専門家に質問してみよう